Container Intelligence Service (CIS) は、Pod を診断するための Pod 診断機能を提供します。このトピックでは、Pod の診断項目と、Pod の問題を修正する方法について説明します。
CIS は、専門家の経験に基づいて診断システムを開発し、大量のデータに基づいて AI 支援診断モデルをトレーニングします。Pod 診断機能は、エキスパートモードと AI モードの 2 つの診断モードを提供し、問題の根本原因の特定を支援します。Pod 診断には、診断項目と根本原因が含まれます。
診断項目: Pod とクラスターコンポーネントの診断が含まれます。
根本原因: 問題の根本原因を特定し、問題の修正方法に関する提案を提供します。Pod 診断機能は、クラスターに関する情報を収集し、異常を特定し、詳細な診断を実行します。
Pod 診断機能を使用すると、システムはクラスター内でデータ収集プログラムを実行して診断結果を収集します。収集される情報には、システムバージョン、ワークロード、Docker、kubelet のステータス、およびシステムログの主要なエラー情報が含まれます。データ収集プログラムは、ビジネス情報や機密データを収集しません。
シナリオ
次の表は、Pod 診断と AI 支援診断のシナリオを示しています。
カテゴリ | シナリオ |
Pod 診断 | Pod がスケジューラーによって処理されていません。 |
Pod がスケジューリングの制約の要件を満たしていないため、スケジューリングできません。 | |
Pod はスケジューリングされていますが、kubelet によって処理されていません。 | |
Pod はボリュームが Ready 状態になるのを待っています。 | |
Pod が削除されました。 | |
Pod のサンドボックスコンテナーの作成に失敗しました。 | |
Pod が Terminating 状態のままです。 | |
Pod のコンテナーで Out-of-memory (OOM) エラーが発生しました。 | |
Pod のコンテナーが異常に終了しました。 | |
Pod のコンテナーが CrashLoopBackOff 状態のままです。 | |
Pod のコンテナーが準備できていません。 | |
Pod がコンテナーイメージをプルできませんでした。 | |
Pod がコンテナーイメージをプルするときにタイムアウトエラーが発生しました。 | |
AI 支援診断 | Pod のステータスが異常です。 |
Pod で OOM エラーが発生しました。 | |
Pod のコンテナーが異常に終了しました。 | |
Pod の ConfigMap または Secret の構成が無効です。 | |
Pod がヘルスチェックに合格しませんでした。 | |
Pod の永続ボリューム要求 (PVC) の構成が無効です。 | |
Pod がコンテナーイメージをプルするときにエラーが発生しました。 |
手順
クラスター診断機能は、クラスターに関する情報を収集し、異常を特定し、詳細な診断を実行します。エキスパートモードと AI モードは、問題の根本原因の特定に使用されます。診断結果は、異常の特定、データ収集、診断項目の確認、根本原因分析の手順で生成されます。
異常の特定: Pod のステータスやクラスターイベントストリームなどの基本データを収集し、収集されたデータに基づいて異常を分析します。
データ収集: 異常の特定の結果に基づいて、コンテキスト関連のデータを収集および診断します。
診断項目の確認: 収集されたデータに基づいて、主要なメトリックが正常かどうかを確認します。
根本原因分析: 収集されたデータと診断項目の確認結果に基づいて、問題の根本原因を分析します。
診断結果
診断結果には、根本原因分析の結果と診断項目確認の結果が含まれます。根本原因分析の結果には、検出された異常、根本原因、修正の提案が含まれます。診断項目確認の結果には、各診断項目の確認結果が含まれます。診断項目確認は、根本原因分析では特定できない原因を特定するために使用されます。
Pod 診断項目
カテゴリ | 説明 |
Pod のステータス、イメージのプル、ネットワーク接続など、一般的な Pod の問題を診断します。 | |
API サーバーと DNS サービスの可用性、NAT ゲートウェイのステータスなど、一般的なクラスターの問題を診断します。 |
Pod
診断項目 | 説明 | 解決策 |
コンテナーの再起動回数 | Pod 内のコンテナーが再起動した回数を示します。 | Pod のステータスとログを確認してください。詳細については、Pod のトラブルシューティングを参照してください。 |
コンテナーイメージのダウンロード失敗 | 現在の Pod のノードにある他の Pod がコンテナーイメージのダウンロードに失敗したかどうかを確認します。 | Pod のステータスとログを確認してください。詳細については、Pod のトラブルシューティングを参照してください。 |
Pod がコンテナーイメージをプルするために使用する Secret の有効性 | Pod がコンテナーイメージをプルするために使用する Secret の有効性を確認します。 | Pod のステータスとログを確認してください。詳細については、Pod のトラブルシューティングを参照してください。 |
GPU アクセラレーション Pod の環境変数の有効性 | この変数は kubelet と競合する可能性があるため、NVIDIA_VISIBLE_DEVICES が Pod の環境変数に含まれているかどうかを確認します。 | Pod のステータスとログを確認してください。詳細については、Pod のトラブルシューティングを参照してください。 |
Pod と CoreDNS Pod 間の接続 | Pod と CoreDNS Pod 間の接続を確認します。 | Pod と CoreDNS Pod 間の接続を確認してください。 |
Pod と CoreDNS サービス間の接続 | Pod と CoreDNS サービス間の接続を確認します。 | Pod と CoreDNS Pod 間の接続を確認してください。 |
Pod とホストネットワークの DNS サーバー間の接続 | Pod とホストネットワークの DNS サーバー間の接続を確認します。 | Pod とホストネットワークの DNS サーバー間の接続を確認してください。 |
Pod 内のコンテナー処理の D ステータス | Pod 内のコンテナー処理が D 状態かどうかを確認します。 | ほとんどの場合、コンテナー処理が D 状態の場合、コンテナー処理はディスク I/O を待機しています。DingTalk グループ 44325004118 に参加してテクニカルサポートをリクエストできます。 |
Pod の初期化 | Pod が初期化されているかどうかを確認します。 | Pod のステータスとログを確認してください。詳細については、Pod のトラブルシューティングを参照してください。 |
Pod によって要求された GPU リソース | Pod が GPU リソースを要求しているかどうかを確認します。Pod が GPU を使用できない理由は、Pod が GPU リソースを要求していないためではないことを確認してください。 | Pod が GPU リソースを要求していない場合は、Pod の構成を確認してください。 |
Pod のスケジューリング | Pod がスケジューリングされているかどうかを確認します。 | Pod が GPU リソースを要求していない場合は、Pod の構成を確認してください。 |
ClusterComponent
診断項目 | 説明 | 解決策 |
aliyun-acr-credential-helper のバージョン | クラスターで使用されている aliyun-acr-credential-helper のバージョンが古くなっているかどうかを確認します。 | クラスターで使用されている aliyun-acr-credential-helper のバージョンが古くなっている場合は、aliyun-acr-credential-helper を更新してください。詳細については、aliyun-acr-credential-helper コンポーネントを使用して、シークレットを使用せずにイメージをプルするを参照してください。 |
API サービスの可用性 | クラスターの API サービスが使用可能かどうかを確認します。 | kubectl get apiservice コマンドを実行して、クラスターの API サービスの可用性を確認します。API サービスが使用できない場合は、kubectl describe apiservice コマンドを実行して API サービスに関する情報を表示し、原因を特定します。 |
使用可能な Pod CIDR ブロックの不足 | Flannel がインストールされているクラスターで使用可能な Pod CIDR ブロックの数が 5 未満かどうかを確認します。クラスター内の各ノードは Pod CIDR ブロックに接続されています。すべての Pod CIDR ブロックが使用されている場合、クラスターに追加する新しいノードは期待どおりに動作しません。 | チケットを提出する。 |
CoreDNS エンドポイント | CoreDNS エンドポイントの数をチェックします。 | CoreDNS Pod のステータスとログを確認します。詳細については、DNS のトラブルシューティングを参照してください。 |
CoreDNS クラスター IP アドレス | クラスター IP アドレスが CoreDNS Pod に割り当てられているかどうかを確認します。クラスター IP アドレスが CoreDNS Pod に割り当てられていない場合、サービスの中断が発生する可能性があります。 | CoreDNS Pod のステータスとログを確認します。詳細については、DNS のトラブルシューティングを参照してください。 |
NAT ゲートウェイのステータス | クラスターで使用されている NAT ゲートウェイのステータスを確認します。 | NAT ゲートウェイコンソールにログインして、NAT ゲートウェイが支払い遅延のためにロックされているかどうかを確認します。 |
NAT ゲートウェイでの同時接続ドロップ率が過度に高い | NAT ゲートウェイで同時接続がドロップされる割合が高いかどうかを確認します。 | 割合が高い場合は、NAT ゲートウェイをアップグレードします。詳細については、標準インターネット NAT ゲートウェイを拡張インターネット NAT ゲートウェイにアップグレードする方法に関する FAQを参照してください。 |