AI-200:Developing AI Cloud Solutions on Azure Azure でのコンテナー化されたソリューションの開発 問6
Azure でのコンテナー化されたソリューションの開発/コンテナー オーケストレーションの実装(Container Apps・AKS)Azure Kubernetes Service(AKS)にマニフェスト ファイルでデプロイした API のポッドが、CrashLoopBackOff の状態を繰り返しています。再起動する前のコンテナーが出力したエラーを確認したいと考えています。最初に使うコマンドとして適切なものはどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure でのコンテナー化されたソリューションの開発」に対応。実際の試験問題ではありません)
- Akubectl logs <ポッド名> --previous
- Bkubectl apply -f deployment.yaml
- Ckubectl scale deployment <デプロイ名> --replicas=0
- Dkubectl get nodes
正解:A
解説
CrashLoopBackOff は、コンテナーが起動直後に異常終了し、再起動を繰り返している状態です。kubectl logs に --previous を付けると、直前に終了したコンテナーのログを表示できるため、異常終了の原因となったエラーを確認できます。あわせて kubectl describe pod でポッドのイベントを見ると、メモリ不足による強制終了(OOMKilled)やイメージ取得の失敗などの手がかりが得られます。
選択肢ごとの解説
- A正しい。--previous を付けると、再起動する前に終了したコンテナーのログを確認できます。
- B誤り。kubectl apply はマニフェストを適用し直すコマンドです。原因を調べずに再適用しても、同じ理由でまた異常終了する可能性が高いです。
- C誤り。レプリカ数を0にするとポッドが停止し、異常終了の原因を調べる手がかりが失われます。
- D誤り。kubectl get nodes はノードの一覧を表示するコマンドです。個々のコンテナーが出力したエラーは分かりません。