概要
Kubernetes はコンテナ化したアプリケーションをクラスタ上で管理するための基盤です。このチートシートでは、kubectl でリソースを確認し、Pod の状態を調査し、Deployment を安全に操作するための基本コマンドを整理します。
最初に覚える最小セット
| コマンド | 用途 |
|---|---|
kubectl config current-context | 操作対象クラスタを確認 |
kubectl get pods -A | Pod の一覧を確認 |
kubectl describe pod <name> -n <ns> | イベントと詳細を確認 |
kubectl logs <pod> -n <ns> | アプリログを確認 |
kubectl get events -n <ns> | 失敗理由を確認 |
kubectl diff -f <file.yaml> | 適用前に差分を確認 |
変更系コマンドの前には、current-context と namespace を必ず確認します。特に delete、apply、scale、rollout undo は、本番クラスタでの影響範囲を確認してから実行します。
kubectl 基本
| コマンド | 説明 |
|---|---|
kubectl get pods | Pod一覧 |
kubectl get pods -A | 全NamespaceのPod |
kubectl get services | Service一覧 |
kubectl get deployments | Deployment一覧 |
kubectl get nodes | Node一覧 |
kubectl get all | すべてのリソース |
ポイント: kubectl get pods -Aで全Namespaceのリソースを一覧表示。-o wideを付けるとNode名やIPも表示されます。
Pod操作
| コマンド | 説明 |
|---|---|
kubectl describe pod <name> | Pod詳細 |
kubectl logs <pod> | ログを表示 |
kubectl logs -f <pod> | ログをフォロー |
kubectl exec -it <pod> -- sh | コンテナに入る |
kubectl delete pod <name> | Podを削除 |
kubectl port-forward <pod> 8080:80 | ポートフォワード |
リソース作成・適用
| コマンド | 説明 |
|---|---|
kubectl apply -f <file.yaml> | マニフェストを適用 |
kubectl create -f <file.yaml> | リソースを作成 |
kubectl delete -f <file.yaml> | リソースを削除 |
kubectl edit <resource> <name> | リソースを編集 |
注意: kubectl createは既存リソースがあるとエラーになります。冪等な操作をしたい場合はkubectl applyを使いましょう。
Deployment
| コマンド | 説明 |
|---|---|
kubectl scale deployment <name> --replicas=3 | スケール |
kubectl rollout status deployment/<name> | ロールアウト状態 |
kubectl rollout history deployment/<name> | ロールアウト履歴 |
kubectl rollout undo deployment/<name> | ロールバック |
実践メモ: kubectl rollout undoで即座に前バージョンへロールバックできます。本番障害時の復旧手段として覚えておきましょう。
Namespace
| コマンド | 説明 |
|---|---|
kubectl get namespaces | Namespace一覧 |
kubectl create namespace <name> | Namespace作成 |
kubectl config set-context --current --namespace=<ns> | デフォルトNS変更 |
実践メモ: kubectl config set-context --current --namespace=<ns>でデフォルトNamespaceを変更すると、毎回-nを付ける必要がなくなります。
ポイント: トラブル時はまずkubectl get eventsでイベントを確認。Podが起動しない原因の多くはイベントに表示されます。
デバッグ
| コマンド | 説明 |
|---|---|
kubectl describe <resource> <name> | 詳細情報 |
kubectl get events | イベント一覧 |
kubectl top pods | リソース使用量 |
kubectl top nodes | Nodeリソース使用量 |
このチートシートの使い方
Kubernetesのコマンドは数が多いため、すべてを暗記するよりも、調査の順番を決めておくほうが実務では役に立ちます。まずリソース一覧を見て、次にdescribeでイベントを確認し、最後にlogsやexecで中身を見る流れが基本です。
本番環境では、コマンドを実行するNamespaceとコンテキストを必ず確認します。意図しないクラスタに対してdeleteやapplyを実行すると影響が大きいため、操作前にcurrent-contextとnamespaceを見る習慣をつけることが重要です。
操作前チェック
- kubectl config current-contextで対象クラスタを確認する
- namespaceを明示しているか確認する
- 変更系コマンドはdry-runやdiffで事前確認する
- 障害時はevents、describe、logsの順に見る
まとめ
Kubernetes の調査は、get、describe、events、logs の順に見ると原因を追いやすくなります。操作前には、必ず context、namespace、差分を確認し、削除やロールバックは影響範囲を把握してから実行します。
リソース定義や kubectl の挙動はバージョン差が出るため、詳しいオプションは公式リファレンスを確認してください。
参考リソース
- kubectl Reference - kubectl 公式リファレンス
- kubectl Cheat Sheet - 公式チートシート
- Kubernetes Concepts - 公式コンセプトガイド
- Kubernetes API Reference - APIオブジェクト仕様