Container Intelligence Service は、専門家ルールによるチェックと AI アシスト型診断モデルを活用して Pod を診断します。Pod が異常な状態になると、診断エンジンが対象ノードからデータを収集し、異常を検出し、事前定義された診断チェックを実行して根本原因を特定し、推奨される修正策を提示します。
Pod 診断を実行すると、ACK はクラスター内の各ノードにデータ収集プログラムをデプロイします。このプログラムは、システムバージョン、ワークロードのステータス、Docker および kubelet のステータス、およびシステムログからの主要なエラーメッセージを収集します。ただし、業務データや機密情報は一切収集しません。
仕組み
診断結果は、以下の 4 段階で生成されます:

異常の検出 — ノードステータス、Pod ステータス、クラスターイベントストリームを収集し、異常を検出します。
データ収集 — 検出された異常に応じて、Kubernetes 上のノード情報、ECS インスタンス情報、Docker プロセスのステータス、kubelet プロセスのステータスなど、文脈に応じたデータを収集します。
診断項目のチェック — 収集されたデータに対して主要なメトリックをチェックします。ノード診断はカテゴリ別にグループ化されており、各カテゴリには診断項目とその説明が一覧表示されます。
根本原因分析 — 専門家モードと AI モードの両方を用いて、収集されたデータおよびチェック結果に基づき根本原因を分析します。
診断結果
各診断実行では、以下の 2 種類の出力が生成されます:
根本原因分析結果 — 検出された異常、根本原因、および推奨される修正策。
診断項目のチェック結果 — 各診断項目のパス/フェイルステータス。パターンマッチングのみでは見逃されがちな問題を明らかにするため、根本原因分析を補完します。
利用可能な診断項目は、クラスターの構成によって異なります。診断ページに表示される項目が公式の内容です。
対応するシナリオ
以下に、Pod 診断および AI アシスト型診断が対応するシナリオの一覧を示します。
| カテゴリ | シナリオ |
|---|---|
| Pod 診断 | Pod がスケジューラによって処理されていない |
| スケジューリング制約違反により Pod がスケジュールできない | |
| Pod はスケジュールされているが、kubelet によって処理されていない | |
| Pod がボリュームの Ready 状態になるのを待っている | |
| Pod が強制終了(evicted)されている | |
| ディスク領域不足により Pod が強制終了(evicted)されている | |
| ノードのメモリ不足により Pod が強制終了(evicted)されている | |
| ディスクインデックス不足により Pod が強制終了(evicted)されている | |
| Pod 内のサンドボックス化コンテナの起動に失敗している | |
| Pod が Terminating 状態のままになっている | |
| Pod 内のコンテナでメモリ不足(OOM)エラーが発生している | |
| Pod 内のコンテナが予期せず終了している | |
| Pod 内のコンテナが CrashLoopBackOff 状態のままになっている | |
| Pod 内のコンテナが準備完了(Ready)になっていない | |
| Pod がコンテナイメージのプルに失敗している | |
| Pod がコンテナイメージのプル中にタイムアウトしている | |
| AI アシスト型診断 | Pod のステータスが異常である |
| Pod でメモリ不足(OOM)エラーが発生している | |
| Pod 内のコンテナが予期せず終了している | |
| ConfigMap または Secret の構成が無効である | |
| Pod がヘルスチェックに失敗している | |
| 永続ボリューム要求(PVC)の構成が無効である | |
| コンテナイメージのプル時にエラーが発生している |
診断項目のカテゴリ
Pod 診断では、以下の 5 カテゴリのコンポーネントをチェックします:
| カテゴリ | チェック対象 |
|---|---|
| Pod | Pod ステータス、イメージのプル、ネットワーク接続 |
| Node | ノードステータス、ネットワークステータス、カーネルログ、カーネルプロセス、サービス可用性 |
| NodeComponent | ネットワーク(CNI)およびストレージ(CSI)など、主要なノードコンポーネントのステータス |
| ClusterComponent | API サーバーの可用性、DNS サービス、NAT ゲートウェイのステータス |
| ECSControllerManager | ECS インスタンスのステータス、ネットワーク接続、オペレーティングシステム、ディスク I/O |
Pod
| 診断項目 | チェック対象 | ソリューション |
|---|---|---|
| コンテナの再起動回数 | Pod 内のコンテナが再起動した回数 | Pod のステータスおよびログを確認してください。詳細については、「Pod のトラブルシューティング」をご参照ください。 |
| コンテナイメージのダウンロード失敗 | 同一ノード上の他の Pod でもイメージのプルに失敗しているか | Pod のステータスおよびログを確認してください。詳細については、「Pod のトラブルシューティング」をご参照ください。 |
| イメージプル用の Secret の有効性 | イメージプル用の Secret が有効かどうか | Pod のステータスおよびログを確認してください。詳細については、「Pod のトラブルシューティング」をご参照ください。 |
| Pod と CoreDNS Pod 間の接続性 | Pod が CoreDNS Pod に到達できるか | Pod と CoreDNS Pod 間のネットワーク接続性を確認してください。 |
| Pod と CoreDNS サービス間の接続性 | Pod が CoreDNS サービスに到達できるか | Pod と CoreDNS サービス間のネットワーク接続性を確認してください。 |
| Pod とホストネットワークの DNS サーバ間の接続性 | Pod がホストネットワークの DNS サーバに到達できるか | Pod とホストネットワークの DNS サーバ間のネットワーク接続性を確認してください。 |
| コンテナプロセスの D ステート | コンテナプロセスが D ステート(割り込み不能スリープ)で停止していないか | D ステートのプロセスは通常、ディスク I/O を待っています。ECS インスタンスを再起動してください。問題が継続する場合は、チケットを送信してください。 |
| Pod の初期化 | Pod が初期化済みかどうか | Pod のステータスおよびログを確認してください。詳細については、「Pod のトラブルシューティング」をご参照ください。 |
| Pod のスケジューリング | Pod がスケジュール済みかどうか | Pod のステータスおよびログを確認してください。詳細については、「Pod のトラブルシューティング」をご参照ください。 |
Node
上記のソリューションを適用しても問題が解消しない場合は、ノードのログを収集し、チケットを送信してください。
| 診断項目 | チェック対象 | ソリューション |
|---|---|---|
| Kubernetes API サーバーへの接続性 | ノードがクラスターの API サーバーに接続できるか | クラスターの構成を確認してください。ACK クラスターのトラブルシューティング を参照してください。 |
| AUFS マウントのハング | AUFS マウントのハングが発生しているか | チケットを送信してください。 |
| BufferIOError エラー | ノードのカーネルに BufferIOError エラーが表示されているか | チケットを送信してください。 |
| cgroup のリーク | ノード上で cgroup のリークが発生しているか | cgroup のリークは、モニタリングデータの収集を妨害したり、コンテナの起動失敗を引き起こす可能性があります。ノードにログインし、cgroup ディレクトリを削除してください。 |
| 異常な chronyd プロセス | chronyd プロセスが正常に実行されているか | 異常な chronyd プロセスは、システム時計の同期に影響を与えます。systemctl restart chronyd コマンドを実行してプロセスを再起動してください。 |
| containerd によるイメージのプル | containerd ランタイムがイメージをプルできるか | ノードのネットワーク設定およびイメージの構成を確認してください。 |
| containerd のステータス | containerd が実行中かどうか | チケットを送信してください。 |
| CoreDNS Pod の可用性 | ノードが CoreDNS Pod の IP アドレスにアクセスできるか | 「CoreDNS Pod 間で DNS クエリの負荷が均等に分散されない場合はどうすればよいですか?」をご参照ください。 |
| イメージのステータス | イメージが破損していないか | チケットを送信してください。 |
| イメージの overlay2 ステータス | イメージの overlay2 ファイルシステムが破損していないか | チケットを送信してください。 |
| システム時刻 | システム時刻が正しいか | 対処は不要です。 |
| Docker コンテナの起動 | Docker コンテナの起動に失敗しているか | チケットを送信してください。 |
| Docker イメージのプル | ノードが Docker イメージをプルできるか | ノードのネットワーク設定およびイメージの構成を確認してください。 |
| Docker のステータス | Docker が実行中かどうか | チケットを送信してください。 |
| dockerd の起動時間 | dockerd の起動時間 | 対処は不要です。 |
| Docker のハングエラー | Docker のハングエラーが発生しているか | systemctl restart docker コマンドを実行して Docker を再起動してください。 |
| ECS インスタンスの存在 | ECS インスタンスが存在するか | ECS インスタンスステータスを確認します。詳細については、「ノードおよびノードプールに関するよくある質問」をご参照ください。 |
| ECS インスタンスのステータス | ECS インスタンスの現在のステータス | ECS インスタンスステータスを確認します。詳細については、「ノードおよびノードプールに関するよくある質問」をご参照ください。 |
| Ext4FsError エラー | ノードのカーネルに Ext4FsError エラーが表示されているか | チケットを送信してください。 |
| ノードファイルシステムの読み取り専用化 | ノードのファイルシステムが読み取り専用モードになっているか | 読み取り専用のファイルシステムは、通常ディスク障害を示しており、書き込みをブロックします。fsck コマンドを実行してファイルシステムを修復し、その後ノードを再起動してください。 |
| ハードウェア時刻 | ハードウェア時刻とシステム時刻が同期しているか | 2 分を超える差異があると、コンポーネントエラーを引き起こす可能性があります。hwclock --systohc コマンドを実行して、システム時刻をハードウェア時計に同期してください。 |
| DNS 解決 | ノード上でドメイン名を解決できるか | 詳細については、「DNS のトラブルシューティング」をご参照ください。 |
| カーネル Oops エラー | ノードのカーネルにカーネル Oops エラーが存在するか | チケットを送信してください。 |
| カーネルバージョン | カーネルバージョンが古いか | ノードとノードプールに関するよくある質問古いカーネルバージョンは、システム障害を引き起こす可能性があります。ノードのカーネルを更新してください。詳細については、「」をご参照ください。 |
| DNS の可用性 | ノードが DNS 用の kube-dns サービスのクラスター IP にアクセスできるか | CoreDNS Pod のステータスとログを確認します。詳細については、「DNS トラブルシューティング」をご参照ください。 |
| kubelet のステータス | kubelet が実行中かどうか | kubelet ログを確認します。「ACK クラスターのトラブルシューティング」を参照してください。 |
| kubelet の起動時間 | kubelet の起動時間 | 対処は不要です。 |
| CPU 使用率 | CPU 使用率が過剰に高いか | 対処は不要です。 |
| メモリ使用率 | メモリ使用率が過剰に高いか | 対処は不要です。 |
| メモリの断片化 | ノード上にメモリフラグメントが存在するか | ノードにログインし、echo 3 > /proc/sys/vm/drop_caches コマンドを実行してキャッシュをクリアしてください。 |
| スワップメモリ | スワップメモリが有効になっているか | スワップメモリは無効にする必要があります。ノードにログインし、スワップを無効にしてください。 |
| VirtIO ドライバーのロード | ネットワークデバイス上で VirtIO ドライバーがロードされているか | ネットワークデバイスにおける VirtIO ドライバーのエラーを確認してください。 |
| CPU 使用率(週間) | 過去 1 週間で CPU 使用率が継続的に高いか | 多数の Pod がスケジュールされることによる高 CPU 使用率は、リソース競合を引き起こします。ノードの過負荷を回避するために、適切なリソース要求および制限を設定してください。 |
| プライベートノード IP アドレス | ノードがプライベート IP アドレスを持っているか | プライベート IP アドレスが欠落している場合は、ECS インスタンスをリリースせずにクラスターからノードを削除し、再度追加してください。詳細については、「ノードの削除」および「既存の ECS インスタンスの追加」をご参照ください。 |
| メモリ使用率(週間) | 過去 1 週間でメモリ使用率が継続的に高いか | 多数の Pod がスケジュールされることによる高メモリ使用率は、OOM エラーおよびサービス中断を引き起こす可能性があります。適切なリソース要求および制限を設定してください。 |
| ノードのステータス | ノードが Ready 状態かどうか | ノードを再起動します。詳細については、「ノードおよびノードプールに関するよくある質問」をご参照ください。 |
| ノードのスケジューリング可能状態 | ノードがスケジューリング不可状態(unschedulable)になっていないか | ノードがコードンされている場合は、そのスケジューリング構成を確認してください。ノードのドレインとスケジューリングステータスをご参照ください。 |
| OOM エラー | ノードで OOM エラーが発生しているか | チケットを送信してください。 |
| コンテナランタイムの整合性 | ノードのランタイムがクラスターのランタイムと一致しているか | 詳細については、「クラスターのコンテナランタイムを containerd から Docker に変更できますか。」をご参照ください。 |
| OS バージョン(既知のバグ) | OS バージョンに既知のバグまたは安定性に関する問題があるか | 既知の OS バグは、Docker や containerd の不具合を引き起こす可能性があります。OS バージョンを更新してください。 |
| インターネットアクセス | ノードがインターネットにアクセスできるか | クラスターで SNAT が有効になっているかどうかを確認します。詳細については、「既存の ACK クラスターがインターネットにアクセスできるようにする」をご参照ください。 |
| RCUStallError エラー | ノードのカーネルに RCUStallError エラーが表示されているか | チケットを送信してください。 |
| OS バージョン | ノードで現在使用されている OS バージョン | 対処は不要です。 |
| runc プロセスのリーク | runc プロセスのリークが発生しているか | runc のリークは、ノードが定期的に NotReady 状態になる原因となる可能性があります。リークした runc プロセスを特定し、手動で終了してください。 |
| SoftLockupError エラー | ノードのカーネルに SoftLockupError エラーが表示されているか | チケットを送信してください。 |
| systemd のハング | systemd のハングが発生しているか | systemctl daemon-reexec コマンドを実行して systemd を再起動してください。 |
| systemd バージョン(既知のバグ) | systemd バージョンに既知のバグがあるか | 古い systemd のバージョンでは、Docker および containerd の不具合が発生する可能性があります。systemd を更新してください。詳細については、「systemd」をご参照ください。 |
| ハング状態のプロセス | ノード上にハング状態のプロセスが存在するか | チケットを送信してください。 |
| unregister_netdevice エラー | ノードのカーネルに unregister_netdevice エラーが表示されているか | チケットを送信してください。 |
NodeComponent
| 診断項目 | チェック対象 | ソリューション |
|---|---|---|
| CNI コンポーネントのステータス | コンテナネットワークインターフェース(CNI)プラグインが実行中かどうか | ネットワークコンポーネントのステータスを確認してください。詳細については、「ネットワーク管理に関するよくある質問」をご参照ください。 |
| CSI コンポーネントのステータス | コンテナストレージインターフェース(CSI)プラグインが実行中かどうか | ストレージ コンポーネントのステータスを確認します。詳細については、「CSI に関するよくある質問」をご参照ください。 |
ClusterComponent
| 診断項目 | チェック内容 | 解決方法 |
|---|---|---|
| aliyun-acr-credential-helper バージョン | aliyun-acr-credential-helper のバージョンが古くなっていないか | aliyun-acr-credential-helper を更新します。詳細については、「シークレットを使用せずに aliyun-acr-credential-helper でイメージをプルする」をご参照ください。 |
| API サービスの可用性 | クラスターの API サービスが利用可能かどうか | kubectl get apiservice を実行して可用性を確認します。利用できない場合は、kubectl describe apiservice を実行して詳細を表示し、原因を特定してください。 |
| 利用可能な Pod CIDR ブロック数 | 利用可能な Pod CIDR ブロックの数が 5 未満かどうか(Flannel のみ) | 各ノードには 1 つの Pod CIDR ブロックが必要です。すべてのブロックが使用済みの場合、新しいノードをクラスターに参加させることができません。チケットを起票してください。 |
| CoreDNS エンドポイント | アクティブな CoreDNS エンドポイントの数 | CoreDNS Pod のステータスとログを確認します。詳細については、「DNS トラブルシューティング」をご参照ください。 |
| CoreDNS クラスター IP アドレス | CoreDNS Pod にクラスター IP アドレスが割り当てられているかどうか | クラスター IP が割り当てられていない場合、DNS サービス中断が発生する可能性があります。CoreDNS Pod のステータスとログを確認します。詳細については、「DNS トラブルシューティング」をご参照ください。 |
| NAT Gateway ステータス | クラスターの NAT Gateway のステータス | NAT Gateway コンソールにログインし、支払い遅延によりゲートウェイがロックされていないか確認します。 |
| NAT Gateway の同時接続ドロップ率 | NAT Gateway 上の同時接続ドロップ率が高いかどうか | NAT Gateway をアップグレードします。詳細については、「標準インターネット NAT Gateway を拡張インターネット NAT Gateway にアップグレードする際のよくある質問」をご参照ください。 |
ECSControllerManager
| 診断項目 | チェック対象 | ソリューション |
|---|---|---|
| ECS インスタンスのコンポーネントに対する支払い遅延 | 支払い遅延によりディスクまたはネットワーク帯域幅が利用できないか | アカウントにチャージしてください。 |
| ECS インスタンスに対する支払い遅延 | 従量課金 ECS インスタンスが支払い遅延により一時停止しているか | アカウントにチャージし、その後インスタンスを再起動してください。 |
| ECS インスタンスの NIC ステータス | NIC が正常に機能しているか | インスタンスを再起動してください。 |
| ECS インスタンスの起動ステータス | インスタンスが正常に起動できるか | インスタンスが起動できない場合は、新しいインスタンスを作成してください。 |
| ECS インスタンスのバックエンド管理システム | バックエンド管理システムが正常に機能しているか | インスタンスを再起動してください。 |
| ECS インスタンスの CPU ステータス | 基盤レイヤーで CPU 競合またはバインド失敗が発生しているか | CPU 競合は、インスタンスが CPU 時間を取得できなくなる原因となります。インスタンスを再起動してください。 |
| ECS インスタンスの CPU におけるスプリットロック | インスタンスの CPU でスプリットロックが発生しているか | 詳細については、「スプリットロックの検出および対処」をご参照ください。 |
| DDoS 対策のステータス | インスタンスのパブリック IP アドレスが DDoS 攻撃を受けているか | 追加の Anti-DDoS 対策を購入します。詳細については、「Alibaba Cloud Anti-DDoS ソリューションの比較」をご参照ください。 |
| クラウドディスクの読み書き能力 | クラウドディスクの読み書き操作がスロットルされているか | ディスクの IOPS が最大値に達すると、スロットリングが発生します。ディスクのメトリックを確認してください。詳細については、「ブロックストレージパフォーマンス」をご参照ください。 |
| クラウドディスクのロード | インスタンス起動時にクラウドディスクをアタッチできるか | ディスクのアタッチに失敗した場合は、インスタンスを停止してから再起動してください。 |
| ECS インスタンスの有効期限 | サブスクリプションが有効期限切れになっていないか | インスタンスを更新します。詳細については、「サブスクリプションインスタンスを更新する」をご参照ください。 |
| ECS インスタンスの OS クラッシュ | 過去 48 時間以内に OS クラッシュが発生したかどうか | 原因を特定するには、システムログを確認してください。詳細については、「システムログとスクリーンショットの表示」をご参照ください。 |
| ECS インスタンスのホストステータス | インスタンスをホストする物理サーバに障害が発生していないか | 物理サーバの障害は、インスタンスのパフォーマンス低下を引き起こす可能性があります。インスタンスを再起動してください。 |
| ECS インスタンスのイメージロード | 初期化時にインスタンスがイメージをロードできるか | イメージのロードに失敗した場合は、インスタンスを再起動してください。 |
| システムディスクにおける I/O ハング | インスタンスのシステムディスクで I/O ハングが発生しているか | ディスクメトリックを確認します。詳細については、「クラウドディスクのモニタリングデータを表示する」をご参照ください。Alibaba Cloud Linux 2 の場合は、詳細については、「ファイルシステムおよびブロックレイヤーの I/O ハングを検出する」をご参照ください。 |
| ECS インスタンスの帯域幅制限 | 合計帯域幅がインスタンスタイプの最大値に達していないか | 帯域幅がより高いインスタンスタイプにアップグレードしてください。詳細については、「インスタンス構成の変更の概要」をご参照ください。 |
| ECS インスタンスのバースト帯域幅制限 | バースト帯域幅がインスタンスタイプの制限を超えているか | 帯域幅がより高いインスタンスタイプにアップグレードしてください。詳細については、「インスタンス構成の変更に関する概要」をご参照ください。 |
| ECS インスタンスの NIC ロード | NIC をロードできるか | NIC のロードに失敗した場合、ネットワーク接続性に影響が出ます。インスタンスを再起動してください。 |
| NIC セッションの確立 | NIC へのセッションを確立できるか | セッションを確立できない、またはセッション制限に達した場合、ネットワーク接続性またはスループットに影響が出ます。インスタンスを再起動してください。 |
| 最近の主要な操作 | 最近のインスタンス操作(起動、停止、サイズ変更)が成功したか | 操作が失敗した場合は、再度実行してください。 |
| NIC のパケット損失 | NIC でインバウンドまたはアウトバウンドのパケット損失が発生しているか | インスタンスを再起動してください。 |
| ECS インスタンスのパフォーマンス低下 | ハードウェアまたはソフトウェアの問題により、インスタンスのパフォーマンスが一時的に低下していないか | 履歴イベントとシステムログを確認して、原因を特定します。詳細については、「履歴システムイベントを表示する」をご参照ください。 |
| ECS インスタンスのパフォーマンス劣化 | CPU クレジットが不足しているため、インスタンスがベースラインパフォーマンスのみで動作しているか | CPU クレジットをチャージするか、クレジット制限のないインスタンスタイプへアップグレードしてください。 |
| ECS インスタンスのディスクサイズ変更 | ディスクをサイズ変更したが、ファイルシステムが更新されていないか | ディスク拡張後にファイルシステムをサイズ変更しなかった場合は、再度ディスクをサイズ変更してください。 |
| ECS インスタンスのリソース可用性 | インスタンスに対して十分な物理 CPU およびメモリリソースが確保されているか | リソースが不足している場合、インスタンスを起動できません。数分待ってから再度試行するか、別のリージョンでインスタンスを作成してください。 |
| ECS インスタンスの OS ステータス | OS でカーネルパニック、OOM エラー、または内部障害が発生していないか | これらの問題は、OS の誤った構成やユーザーが実行するプログラムによって引き起こされる可能性があります。インスタンスを再起動してください。 |
| ECS インスタンスの仮想化ステータス | 基盤となる仮想化レイヤーに例外が発生していないか | 仮想化例外は、インスタンスのフリーズや予期しない再起動を引き起こす可能性があります。インスタンスを再起動してください。 |