クラスターの調査とトラブルシューティング
kubectlでノードとPodの状態を調べ、ログを読み、イベントを詳しく確認し、コンテナ内でexecを実行して、最初のクラスターで問題を診断します。
「クラスターの調査とトラブルシューティング」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
問題が起きたとき
最初のデプロイが、ときどき期待どおりに動かないことがあります。幸い、kubectlには何が起きているかを把握し、手順に沿って修正するために必要な機能がすべてそろっています。
Node を確認する
まずは広い範囲から確認します。クラスターの Node は健全で、Ready になっていますか。
kubectl get nodes -o widePod とステータスを一覧表示する
Pod のフェーズを確認します。Running は正常です。Pending、CrashLoopBackOff、ImagePullBackOff は、それぞれ特定の問題を示しています。
kubectl get pods -o wide詳細を describe で確認する
kubectl describeは最も頼りになるコマンドです。仕様、現在の状態、スケジューリングやイメージ取得の失敗を説明するEventsの一覧を表示します。
kubectl describe pod my-app-abc123ログを読む
アプリケーションのエラーは、通常ログに現れます。-fでログをストリーミング表示するか、クラッシュしたコンテナの直前のログを--previousで読み取ります。
kubectl logs -f my-app-abc123クラッシュ時のログ
Podが再起動を繰り返している場合、現在のコンテナにはまだ役立つログがない可能性があります。代わりに、直前のインスタンスを表示してください。
kubectl logs my-app-abc123 --previousコンテナ内でシェルを実行する
実行中のコンテナ内でシェルを開くと、内部からファイル、環境変数、接続性を確認できます。
kubectl exec -it my-app-abc123 -- shクラスタ全体のイベント
名前空間全体の最近のイベントを時系列で確認すると、Podごとの表示では見落とすパターンを発見できます。
kubectl get events --sort-by=.lastTimestampよくある障害: ImagePullBackOff
これは、Kubernetesがイメージを取得できないことを意味します。名前やタグが間違っている、プライベートレジストリの認証情報がない、または入力ミスがある可能性があります。describeで正確な取得エラーを確認できます。
よくある障害: CrashLoopBackOff
コンテナが起動した後、繰り返し終了しています。クラッシュの原因をlogs --previousで確認してください。多くの場合、コマンドの誤り、設定の不足、依存関係の失敗が原因です。
リソースと接続性の確認
ライブCPU使用量とメモリ使用量を確認するにはkubectl topを使用します(metrics-serverが必要です)。また、port-forwardを使うと、手元のマシンからServiceを直接テストできます。
kubectl port-forward pod/my-app-abc123 8080:80クイックチェック
再起動を繰り返すPodを診断します。
まとめ
これでトラブルシューティングのツールキットがそろいました。
- 正常性の確認には
get nodes/pods、イベントの確認にはdescribe - アプリケーションエラーの確認には
logs(および--previous) - 内部からの確認には
exec、テストにはport-forward ImagePullBackOffとCrashLoopBackOffを認識する
これらを落ち着いて体系的に確認すれば、通常は問題をすばやく見つけられます。
よくある質問
「クラスターの調査とトラブルシューティング」レッスンは無料ですか?
はい。「クラスターの調査とトラブルシューティング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「クラスターの調査とトラブルシューティング」で何を学びますか?
kubectlでノードとPodの状態を調べ、ログを読み、イベントを詳しく確認し、コンテナ内でexecを実行して、最初のクラスターで問題を診断します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「クラスターの調査とトラブルシューティング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Minikubeのインストールとセットアップ
- Kubeconfigとコンテキスト
- シンプルなアプリのデプロイ
- クラスターの調査とトラブルシューティング