メインコンテンツへスキップ
Toolsbase Logo

kubectlコマンド一覧

よく使うkubectlコマンドをカテゴリ別にまとめたチートシート。基本操作からPod操作、デプロイメント管理、デバッグまで、実用的なコマンドを検索・コピーできます。

最終更新:

使い方

使い方を開く
  1. 1

    コマンドを検索

    検索欄にコマンド名を入力するか、カテゴリ(基本操作、Pod操作など)でフィルタリングして目的のコマンドを見つけます。

  2. 2

    オプションと使用例を確認

    各コマンドの説明、よく使うオプション、実際の使用例を確認します。

  3. 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-namespace
Namespace内の全リソースを表示

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=value
Secretを作成

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.yaml
URLから適用

kubectl edit
デフォルトエディタでリソースを編集

よく使うオプション

  • -n: Namespaceを指定
  • -o: 編集前の出力形式

使用例

kubectl edit deployment my-deploy
デプロイメントを編集
kubectl edit configmap my-config
ConfigMapを編集
kubectl edit svc my-service
Serviceを編集

kubectl logs
Pod内のコンテナのログを表示

よく使うオプション

  • -f: ログをストリーミング
  • --tail: 末尾から表示する行数
  • -c: マルチコンテナPodのコンテナ名
  • --previous: 前回のコンテナインスタンスのログを表示
  • --since: 指定した時間以降のログを表示(例:1h)

使用例

kubectl logs my-pod
Podのログを表示
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/bash
Podでインタラクティブシェルを起動
kubectl exec my-pod -- ls /app
Podでコマンドを実行
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:80
Serviceのポートにフォワード
kubectl port-forward deployment/my-deploy 8080:80
デプロイメントのポートにフォワード

kubectl cp
コンテナとの間でファイルをコピー

よく使うオプション

  • -c: マルチコンテナPodのコンテナ名

使用例

kubectl cp my-pod:/app/logs ./logs
Podからローカルにコピー
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 pod
PodのCPU・メモリ使用状況を表示

よく使うオプション

  • -n: Namespaceを指定
  • --all-namespaces: 全Namespaceを表示
  • --containers: コンテナ単位で表示
  • --sort-by: cpuまたはmemoryでソート

使用例

kubectl top pod
Podの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=5
StatefulSetをスケール

kubectl autoscale
CPU使用率に基づいてデプロイメントを自動スケール

よく使うオプション

  • --min: 最小レプリカ数
  • --max: 最大レプリカ数
  • --cpu-percent: CPU使用率の目標値(%)

使用例

kubectl autoscale deployment my-deploy --min=2 --max=10 --cpu-percent=80
デプロイメントにHPAを作成
kubectl get hpa
Horizontal Pod Autoscaler一覧を表示

kubectl set image
Podテンプレートのイメージを更新

よく使うオプション

  • --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 ns
Namespace一覧を短縮エイリアスで表示
kubectl get ns -o wide
詳細付きでNamespaceを表示

kubectl create namespace
新しいNamespaceを作成

よく使うオプション

  • --dry-run=client: 実際に作成せずプレビュー

使用例

kubectl create namespace my-namespace
Namespaceを作成
kubectl create ns staging
短縮エイリアスでNamespaceを作成

kubectl config set-context
kubeconfigコンテキストのデフォルトNamespaceを設定

よく使うオプション

  • --current: 現在のコンテキストを変更
  • --namespace: コンテキストのデフォルトNamespace

使用例

kubectl config set-context --current --namespace=my-namespace
現在のコンテキストのデフォルトNamespaceを設定
kubectl config set-context my-context --namespace=staging
特定コンテキストのNamespaceを設定

kubectl config view
kubeconfig設定を表示

よく使うオプション

  • --minify: 未使用のコンテキスト情報を削除して表示
  • --flatten: マージされたkubeconfigをフラット化

使用例

kubectl config view
全kubeconfigを表示
kubectl config view --minify
現在のコンテキストの設定のみ表示

kubectl config use-context
kubeconfigの現在のコンテキストを切り替え

使用例

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-pod
Podのログをストリーミング
kubectl logs -f my-pod --tail=50
最後の50行からストリーミング
kubectl logs -f -l app=my-app
ラベルに一致するPodのログをストリーミング

kubectl get events
Namespace内のイベントをデバッグ用に一覧表示

よく使うオプション

  • -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 debug
PodやノードのデバッグセッションをEphemeralコンテナで作成

よく使うオプション

  • --image: デバッグコンテナのイメージ
  • --target: デバッグ対象のコンテナ
  • -it: インタラクティブ + TTY

使用例

kubectl debug -it my-pod --image=busybox
Ephemeralコンテナでデバッグ
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=nginx
nginxのPodを起動

kubectl patch
Strategic 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=production
Podにラベルを追加
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-data
emptyDir 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はコンテナの既存のメインプロセスに接続します。標準入力を受け付けるプログラムを操作したい場合に便利です。