Kubernetesクラスタを操作するための最重要ツールが kubectl
です。
これは「Kubernetes APIサーバーと対話するためのコマンドラインツール」で、ほぼすべての操作がこれを通じて行えます。
ここでは、特に使用頻度が高く、トラブル対応でも役立つ基本4コマンドを紹介します。
🔍 1. kubectl get
:リソースの一覧を確認する
Kubernetes上で動いているPodやService、Deploymentなどのリソースを一覧で確認できます。
kubectl get pods # Pod一覧を表示(カレントnamespace)
kubectl get pods -n kube-system # kube-system namespace のPod一覧
kubectl get svc # Service一覧
kubectl get deployment # Deployment一覧
目的:何が動いているのか、今の状態は正常かをざっくり見る
よく使うオプション:
-A
(全namespace)-o wide
(IPアドレスやノード情報など詳細付き)
🧾 2. kubectl describe
:リソースの詳細情報を確認する
あるリソースの状態やイベント履歴、関連するオブジェクトを詳しく知りたいときに使います。
kubectl describe pod my-pod-name
- 表示される内容:
- Podの状態(Running / Pending / Failed)
- コンテナのイメージ、マウント情報
- 最後に発生したイベント(失敗理由など)
- トラブル時に特に有効:
- Podが起動しない
- イメージが見つからない
- マウントエラーなどの確認に最適
📜 3. kubectl logs
:アプリケーションログを確認する
Pod内で動いているアプリケーションの標準出力/標準エラーを取得します。
kubectl logs my-pod-name
複数コンテナがある場合:
kubectl logs my-pod-name -c コンテナ名
リアルタイムで監視:
kubectl logs -f my-pod-name
よくある使い方:
- Webアプリのエラーメッセージを見る
- バッチ処理の進行状況を見る
- 起動直後にクラッシュした理由を探す
🛠️ 4. kubectl exec
:Pod内でコマンドを実行する
Podの中に入り込んで、直接 ls
や cat
、curl
などを実行できます。まるでリモートシェルのように使えます。
kubectl exec -it my-pod-name -- bash
-it
はインタラクティブモードで接続するためのオプション--
の後にシェルコマンドを記述- 具体的な利用例:
- 環境変数の確認:
env
- ログファイルの中身を見る:
cat /var/log/...
- ネットワーク疎通確認:
curl
やping
- 環境変数の確認:
✅ まとめ:この4つでKubernetesの観察とデバッグができる!
コマンド | 主な用途 |
---|---|
kubectl get | 全体の一覧を見て状況をつかむ |
kubectl describe | 詳細な状態やエラー、イベントの確認 |
kubectl logs | アプリケーションの出力ログを確認 |
kubectl exec | Pod内でコマンド実行、問題の直接調査 |
💡 補足Tips
- 使い慣れてきたら
alias k=kubectl
を設定すると操作が楽になります。 kubectl get all
で主要リソースまとめて見られます(ただしPod以外も混在)。- 実際に使うときはリソース名の補完が面倒なので
kubectl get pods | grep
やwatch
コマンドと組み合わせると便利です。