kubectlコマンド一覧
よく使うkubectlコマンドをカテゴリ別にまとめたチートシート。基本操作からPod操作、デプロイメント管理、デバッグまで、実用的なコマンドを検索・コピーできます。
最終更新:
使い方
使い方を開く使い方を閉じる
- 1
コマンドを検索
検索欄にコマンド名を入力するか、カテゴリ(基本操作、Pod操作など)でフィルタリングして目的のコマンドを見つけます。
- 2
オプションと使用例を確認
各コマンドの説明、よく使うオプション、実際の使用例を確認します。
- 3
コマンドをコピー
使用例のコマンドをクリックしてクリップボードにコピーし、ターミナルですぐに実行できます。
kubectl getリソースの一覧を取得
よく使うオプション
- -o wide: 追加情報を列表示
- -o yaml: YAML形式で出力
- -o json: JSON形式で出力
- -n: Namespaceを指定
- --all-namespaces: 全Namespaceのリソースを表示
使用例
kubectl get pods現在のNamespaceのPod一覧を表示kubectl get pods -o wideノードやIP情報付きでPodを表示kubectl get all -n my-namespaceNamespace内の全リソースを表示kubectl describeリソースの詳細情報を表示
よく使うオプション
- -n: Namespaceを指定
- --selector: ラベルセレクターでフィルタ
使用例
kubectl describe pod my-pod特定のPodの詳細を表示kubectl describe deployment my-deployデプロイメントの詳細を表示kubectl describe node my-nodeノードの詳細を表示kubectl createファイルまたは標準入力からリソースを作成
よく使うオプション
- -f: ファイル名、ディレクトリ、またはURL
- --dry-run=client: 実際に適用せずプレビュー
- -n: Namespaceを指定
使用例
kubectl create -f pod.yamlファイルからリソースを作成kubectl create deployment my-app --image=nginxコマンドでデプロイメントを作成kubectl create secret generic my-secret --from-literal=key=valueSecretを作成kubectl deleteリソースをファイル、リソース名、またはラベルセレクターで削除
よく使うオプション
- -f: ファイルから削除
- --grace-period: 強制削除までの猶予時間(秒)
- --force: 即座に強制削除
- -l: ラベルセレクターで削除
使用例
kubectl delete pod my-pod特定のPodを削除kubectl delete -f deployment.yamlファイルで定義されたリソースを削除kubectl delete pods -l app=my-appラベルでPodをまとめて削除kubectl applyファイルまたは標準入力からリソースに設定を適用
よく使うオプション
- -f: ファイル名、ディレクトリ、またはURL
- --dry-run=client: 実際に適用せずプレビュー
- --prune: ファイルに存在しないリソースを削除
- -R: ディレクトリを再帰的に処理
使用例
kubectl apply -f deployment.yamlファイルから設定を適用kubectl apply -f ./manifests/ディレクトリ内の全ファイルを適用kubectl apply -f https://example.com/manifest.yamlURLから適用kubectl editデフォルトエディタでリソースを編集
よく使うオプション
- -n: Namespaceを指定
- -o: 編集前の出力形式
使用例
kubectl edit deployment my-deployデプロイメントを編集kubectl edit configmap my-configConfigMapを編集kubectl edit svc my-serviceServiceを編集kubectl logsPod内のコンテナのログを表示
よく使うオプション
- -f: ログをストリーミング
- --tail: 末尾から表示する行数
- -c: マルチコンテナPodのコンテナ名
- --previous: 前回のコンテナインスタンスのログを表示
- --since: 指定した時間以降のログを表示(例:1h)
使用例
kubectl logs my-podPodのログを表示kubectl logs my-pod --tail=100最後の100行を表示kubectl logs my-pod -c my-container特定コンテナのログを表示kubectl execコンテナ内でコマンドを実行
よく使うオプション
- -it: インタラクティブ + TTY(シェル接続に使用)
- -c: マルチコンテナPodのコンテナ名
- --: 実行コマンドとの区切り
使用例
kubectl exec -it my-pod -- /bin/bashPodでインタラクティブシェルを起動kubectl exec my-pod -- ls /appPodでコマンドを実行kubectl exec -it my-pod -c sidecar -- sh特定コンテナでシェルを起動kubectl port-forwardローカルポートをPodにフォワード
よく使うオプション
- --address: リッスンするローカルアドレス(デフォルト: 127.0.0.1)
使用例
kubectl port-forward pod/my-pod 8080:80ローカル8080をPodのポート80にフォワードkubectl port-forward svc/my-svc 8080:80Serviceのポートにフォワードkubectl port-forward deployment/my-deploy 8080:80デプロイメントのポートにフォワードkubectl cpコンテナとの間でファイルをコピー
よく使うオプション
- -c: マルチコンテナPodのコンテナ名
使用例
kubectl cp my-pod:/app/logs ./logsPodからローカルにコピーkubectl cp ./config.yaml my-pod:/app/config.yamlローカルからPodにコピーkubectl cp my-pod:/app/logs ./logs -c my-container特定コンテナからコピーkubectl attach実行中のコンテナにアタッチ
よく使うオプション
- -it: インタラクティブ + TTY
- -c: コンテナ名
使用例
kubectl attach my-pod -it実行中のPodにインタラクティブでアタッチkubectl attach my-pod -c my-container特定コンテナにアタッチkubectl top podPodのCPU・メモリ使用状況を表示
よく使うオプション
- -n: Namespaceを指定
- --all-namespaces: 全Namespaceを表示
- --containers: コンテナ単位で表示
- --sort-by: cpuまたはmemoryでソート
使用例
kubectl top podPodのCPU・メモリ使用状況を表示kubectl top pod --all-namespaces全Namespaceの使用状況を表示kubectl top pod --containersコンテナ単位のリソース使用状況を表示kubectl rollout statusロールアウトの状態を確認
よく使うオプション
- -w: 完了まで監視
- --timeout: 最大待機時間
使用例
kubectl rollout status deployment/my-deployロールアウトの状態を確認kubectl rollout status deployment/my-deploy -w完了まで監視kubectl rollout historyロールアウトの履歴を表示
よく使うオプション
- --revision: 特定リビジョンの詳細を表示
使用例
kubectl rollout history deployment/my-deployロールアウト履歴を一覧表示kubectl rollout history deployment/my-deploy --revision=2リビジョン2の詳細を表示kubectl rollout undoロールアウトを元に戻す
よく使うオプション
- --to-revision: 特定リビジョンにロールバック
使用例
kubectl rollout undo deployment/my-deploy直前のバージョンにロールバックkubectl rollout undo deployment/my-deploy --to-revision=2特定リビジョンにロールバックkubectl scaleデプロイメントやレプリカセットのレプリカ数を変更
よく使うオプション
- --replicas: レプリカ数
- --current-replicas: 事前条件チェック
使用例
kubectl scale deployment my-deploy --replicas=3デプロイメントを3レプリカにスケールkubectl scale deployment my-deploy --replicas=0レプリカを0にスケールダウンkubectl scale statefulset my-sts --replicas=5StatefulSetをスケールkubectl autoscaleCPU使用率に基づいてデプロイメントを自動スケール
よく使うオプション
- --min: 最小レプリカ数
- --max: 最大レプリカ数
- --cpu-percent: CPU使用率の目標値(%)
使用例
kubectl autoscale deployment my-deploy --min=2 --max=10 --cpu-percent=80デプロイメントにHPAを作成kubectl get hpaHorizontal Pod Autoscaler一覧を表示kubectl set imagePodテンプレートのイメージを更新
よく使うオプション
- --record: ロールアウト履歴にコマンドを記録(非推奨)
使用例
kubectl set image deployment/my-deploy my-container=nginx:1.25コンテナイメージを更新kubectl set image deployment/my-deploy *=nginx:latest全コンテナをlatestに更新kubectl get namespaceクラスター内の全Namespaceを一覧表示
よく使うオプション
- -o wide: 追加情報を表示
- --show-labels: ラベルを表示
使用例
kubectl get namespace全Namespaceを一覧表示kubectl get nsNamespace一覧を短縮エイリアスで表示kubectl get ns -o wide詳細付きでNamespaceを表示kubectl create namespace新しいNamespaceを作成
よく使うオプション
- --dry-run=client: 実際に作成せずプレビュー
使用例
kubectl create namespace my-namespaceNamespaceを作成kubectl create ns staging短縮エイリアスでNamespaceを作成kubectl config set-contextkubeconfigコンテキストのデフォルトNamespaceを設定
よく使うオプション
- --current: 現在のコンテキストを変更
- --namespace: コンテキストのデフォルトNamespace
使用例
kubectl config set-context --current --namespace=my-namespace現在のコンテキストのデフォルトNamespaceを設定kubectl config set-context my-context --namespace=staging特定コンテキストのNamespaceを設定kubectl config viewkubeconfig設定を表示
よく使うオプション
- --minify: 未使用のコンテキスト情報を削除して表示
- --flatten: マージされたkubeconfigをフラット化
使用例
kubectl config view全kubeconfigを表示kubectl config view --minify現在のコンテキストの設定のみ表示kubectl config use-contextkubeconfigの現在のコンテキストを切り替え
使用例
kubectl config use-context my-clusterコンテキストを切り替えkubectl config use-context prod-cluster本番クラスターのコンテキストに切り替えkubectl config get-contextsコンテキストを一覧表示
よく使うオプション
- --no-headers: ヘッダー行を省略
- -o name: コンテキスト名のみ表示
使用例
kubectl config get-contexts利用可能な全コンテキストを一覧表示kubectl config get-contexts -o nameコンテキスト名のみを一覧表示kubectl config current-context現在のコンテキストを表示
使用例
kubectl config current-context現在アクティブなコンテキストを表示kubectl logs --followコンテナのログをリアルタイムでストリーミング
よく使うオプション
- --tail: 最初に表示する行数
- --since: 指定した時間以降のログを表示(例:5m)
- -c: コンテナ名
- --prefix: 各ログ行にPod・コンテナ名を付与
使用例
kubectl logs -f my-podPodのログをストリーミングkubectl logs -f my-pod --tail=50最後の50行からストリーミングkubectl logs -f -l app=my-appラベルに一致するPodのログをストリーミングkubectl get eventsNamespace内のイベントをデバッグ用に一覧表示
よく使うオプション
- -n: Namespaceを指定
- --sort-by: .metadata.creationTimestampまたは.lastTimestampでソート
- --field-selector: フィールドでフィルタ
使用例
kubectl get events現在のNamespaceのイベントを表示kubectl get events --sort-by=.lastTimestamp時刻でソートしてイベントを表示kubectl get events --field-selector involvedObject.name=my-pod特定Podに関するイベントを表示kubectl top nodeノードのCPU・メモリ使用状況を表示
よく使うオプション
- --sort-by: cpuまたはmemoryでソート
使用例
kubectl top nodeノードのCPU・メモリ使用状況を表示kubectl top node --sort-by=memoryメモリ使用量でソートしてノードを表示kubectl debugPodやノードのデバッグセッションをEphemeralコンテナで作成
よく使うオプション
- --image: デバッグコンテナのイメージ
- --target: デバッグ対象のコンテナ
- -it: インタラクティブ + TTY
使用例
kubectl debug -it my-pod --image=busyboxEphemeralコンテナでデバッグkubectl debug node/my-node -it --image=ubuntuノードをデバッグkubectl debug my-pod --copy-to=debug-pod --image=busyboxデバッグ用のPodのコピーを作成kubectl runクラスターで特定のイメージを実行
よく使うオプション
- --image: 実行するコンテナイメージ
- --rm: 終了後にPodを削除
- -it: インタラクティブ + TTY
- --restart: 再起動ポリシー(一時的なPodにはNeverを指定)
使用例
kubectl run test --image=busybox --rm -it --restart=Never -- sh一時的なデバッグPodを起動kubectl run nginx --image=nginxnginxのPodを起動kubectl patchStrategic Merge、JSON Merge、JSONパッチでリソースのフィールドを更新
よく使うオプション
- --type: パッチの種類(strategic、merge、json)
- -p: パッチの内容
使用例
kubectl patch deployment my-deploy -p '{"spec":{"replicas":3}}'デプロイメントのレプリカ数をパッチkubectl patch node my-node -p '{"spec":{"unschedulable":true}}'ノードをスケジュール不可にパッチkubectl labelリソースのラベルを更新
よく使うオプション
- --overwrite: 既存ラベルの上書きを許可
- -l: ラベルでリソースを選択
使用例
kubectl label pod my-pod env=productionPodにラベルを追加kubectl label pod my-pod env-Podからラベルを削除kubectl label pods -l app=my-app version=v2一致するPod全てにラベルを付与kubectl annotateリソースのアノテーションを更新
よく使うオプション
- --overwrite: 既存アノテーションの上書きを許可
使用例
kubectl annotate pod my-pod description='My app pod'Podにアノテーションを追加kubectl annotate deployment my-deploy description-デプロイメントからアノテーションを削除kubectl taintノードのテイントを更新
よく使うオプション
- --overwrite: 既存テイントの上書きを許可
使用例
kubectl taint node my-node key=value:NoScheduleスケジュールを防ぐテイントをノードに付与kubectl taint node my-node key:NoSchedule-ノードからテイントを削除kubectl drainメンテナンスのためにノードをドレイン
よく使うオプション
- --ignore-daemonsets: DaemonSet管理のPodを無視
- --delete-emptydir-data: emptyDirデータを削除
- --force: 管理外のPodがあっても続行
使用例
kubectl drain my-node --ignore-daemonsetsメンテナンスのためにノードをドレインkubectl drain my-node --ignore-daemonsets --delete-emptydir-dataemptyDir Podを含めてドレインkubectl cordonノードをスケジュール不可にマーク
使用例
kubectl cordon my-node新しいPodのスケジューリングを防止kubectl uncordon my-nodeノードのスケジューリングを再開kubectl apply --dry-runクラスターに適用せずに変更内容をプレビュー
よく使うオプション
- --dry-run=client: ローカルバリデーションのみ
- --dry-run=server: サーバーサイドバリデーション
- -f: ファイルまたはディレクトリ
使用例
kubectl apply --dry-run=client -f deployment.yaml変更をプレビュー(クライアントサイド)kubectl apply --dry-run=server -f deployment.yaml変更をプレビュー(サーバーサイド)kubectl diff -f deployment.yaml現在の状態との差分を表示kubectlコマンド一覧について
kubectlコマンド一覧は、Kubernetes CLIでよく使われるコマンドをまとめたチートシートです。基本的なリソース操作からPodのデバッグ、デプロイメントのロールアウト、高度なノード管理まで、クラスター管理に必要なコマンドを網羅しています。各コマンドには説明、よく使うオプション、ワンクリックでコピーできる実用的な使用例が含まれています。
主な機能
- 37以上の必須kubectlコマンドを収録
- 各コマンドのオプションと使用例
- カテゴリフィルタリング(基本操作、Pod、デプロイなど)
- リアルタイム検索機能
- 使用例のワンクリックコピー
活用シーン
- kubectlコマンドの正しい使い方を確認したい時
- よく使うオプションをすぐに調べたい時
- Kubernetes初学者の学習リファレンスとして
- 複雑な操作(drain、debugなど)の構文を確認したい時
- クラスター管理作業中のクイックリファレンスとして
よくある質問
kubectl applyとkubectl createの違いは何ですか?
kubectl createはリソースを新規作成し、既に存在する場合はエラーになります。kubectl applyは宣言的にリソースを作成または更新し、べき等性があります。YAMLファイルでリソースを管理する場合はapplyが推奨されます。
複数のKubernetesクラスターを切り替えるにはどうすればいいですか?
kubectl config use-contextでコンテキストを切り替えます。kubectl config get-contextsで利用可能なコンテキストを一覧表示できます。各コンテキストは通常、異なるクラスターやNamespaceに対応しています。
kubectl deleteとkubectl drainの違いは何ですか?
kubectl deleteは特定のリソースを即座に削除します。kubectl drainはノード上の全Podを丁寧に退避させ(PodDisruptionBudgetを尊重)、スケジュール不可にします。メンテナンス前のノード準備に使います。
CrashLoopBackOffのPodをデバッグするにはどうすればいいですか?
kubectl logs my-pod --previousで以前のコンテナインスタンスのログを確認できます。kubectl describe pod my-podでイベントや状態を確認します。kubectl debugでEphemeralコンテナを作成してより詳しく調査できます。
kubectl execとkubectl attachの違いは何ですか?
kubectl execはコンテナ内で新しいプロセスを実行します(例:シェルの起動)。kubectl attachはコンテナの既存のメインプロセスに接続します。標準入力を受け付けるプログラムを操作したい場合に便利です。
