| クラスタとコンテキスト |
|---|
| コントロールプレーンと主要サービスがどこで動いているかを表示します。 | kubectl cluster-info |
| 切り替え可能なクラスタとnamespaceの一覧を表示します。 | kubectl config get-contexts |
| 別のクラスタまたはnamespaceのコンテキストに切り替えます。 | kubectl config use-context my-prod |
| 現在のコンテキストの既定namespaceを設定します。 | kubectl config set-context --current --namespace=staging |
| kubeconfigに保存したコンテキストの名前を変更します。 | kubectl config rename-context old-name prod |
| クラスタが認識するすべてのリソース種別を一覧表示します。 | kubectl api-resources |
| クライアントとサーバーのKubernetesバージョンを表示します。 | kubectl version |
| APIスキーマから読み取った、リソースが持つフィールドを表示します。 | kubectl explain pod.spec.containers |
| 現在のユーザーが指定した操作を実行できるか確認します。 | kubectl auth can-i delete pods |
| ワークロードの調査 |
|---|
| Podとその状態を一覧表示します。-o wideでノードとIPも表示します。 | kubectl get pods -A |
| 1回の呼び出しでnamespaceの主要リソースを一覧表示します。 | kubectl get all |
| 任意のgetコマンドにノードとIPの列を追加します。 | kubectl get pods -o wide |
| リソースを、背後にある完全なYAMLマニフェストとして出力します。 | kubectl get deploy/web -o yaml |
| Deploymentとレプリカの準備数を一覧表示します。 | kubectl get deployments |
| StatefulSetと準備済みレプリカを一覧表示します。 | kubectl get statefulsets |
| バッチJobとスケジュールされたCronJobを一覧表示します。 | kubectl get jobs,cronjobs |
| 1つのPodのイベント、ラベル、状態を表示します。 | kubectl describe pod web-abc |
| ノードのキャパシティ、条件、実行中のPodを表示します。 | kubectl describe node node-1 |
| Podのstdoutを出力します。-fで追跡、--previousで最後のクラッシュ分。 | kubectl logs -f web-abc |
| 実行中のPod内でコマンドを実行します。 | kubectl exec -it web-abc -- sh |
| PodまたはノードのライブCPU・メモリ(metrics-serverが必要)。 | kubectl top pods |
| イメージ取得失敗やバックオフなど直近のイベントを一覧表示します。 | kubectl get events -A --sort-by=.lastTimestamp |
| Ingressルールとロードバランサーのアドレスを一覧表示します。 | kubectl get ingress |
| 自分のマシンと実行中のPodの間でファイルをコピーします。 | kubectl cp web-abc:/var/log/app.log ./app.log |
| リソースが条件を満たすまでブロックします。 | kubectl wait --for=condition=ready pod -l app=web |
| イメージから使い捨てのPodを起動します。マニフェストは不要です。 | kubectl run debug --rm -it --image=busybox -- sh |
| 適用・スケール・ロールアウト |
|---|
| applyが変更する内容を、変更せずに表示します。 | kubectl diff -f deploy.yaml |
| マニフェストファイルからリソースを作成または更新します。 | kubectl apply -f deploy.yaml |
| マニフェストを適用し、そこから外れたオブジェクトを削除します。 | kubectl apply -f dir/ --prune -l app=web |
| ライブリソースをエディタで開き、保存時に適用します。 | kubectl edit deploy/web |
| ライブリソースの一部フィールドを変更します。 | kubectl patch deploy/web --patch-file fix.json |
| Deploymentのコンテナを新しいイメージに向けます。 | kubectl set image deploy/web web=nginx:1.27 |
| オブジェクトを置き換えます。必要なら削除して再作成します。 | kubectl replace --force -f deploy.yaml |
| マニフェストファイルで宣言されたリソースを削除します。 | kubectl delete -f deploy.yaml |
| Deploymentのレプリカ数を変更します。 | kubectl scale deploy/web --replicas=4 |
| ロールアウトの完了または失敗を見守ります。 | kubectl rollout status deploy/web |
| ロールアウトが経過してきたリビジョンを一覧表示します。 | kubectl rollout history deploy/web |
| Deploymentの全Podを1つずつ再起動します。 | kubectl rollout restart deploy/web |
| Deploymentを前のリビジョンにロールバックします。 | kubectl rollout undo deploy/web |
| Serviceとネットワーク |
|---|
| Serviceとそのタイプ・クラスタIPを一覧表示します。 | kubectl get svc |
| 現在それぞれのServiceを支えているPodのIPを表示します。 | kubectl get endpoints web |
| Pod群の前に立つServiceを作成します。--type=NodePortまたはLoadBalancerでクラスタ外に届きます。 | kubectl expose deploy/web --port=80 |
| 各Ingressの背後にあるロードバランサーアドレスを表示します(alpha)。 | kubectl ingress status -A |
| Podトラフィックを制限するポリシーを一覧表示します。 | kubectl get networkpolicies |
| ローカルポートをPodまたはServiceへトンネルします。 | kubectl port-forward svc/web 8080:80 |
| ノードとメンテナンス |
|---|
| クラスタのノードとその状態を一覧表示します。 | kubectl get nodes -o wide |
| ノードをスケジュール不可にします(新しいPodは配置されません)。 | kubectl cordon node-1 |
| ノードを再びスケジュール可能にします。 | kubectl uncordon node-1 |
| ノードからPodを退避させ、スケジュール不可にします。 | kubectl drain node-1 --ignore-daemonsets |
| ノードからPodを遠ざけるtaintを追加または削除します。 | kubectl taint node node-1 key=value:NoSchedule |
| 停止処理を省いて、固まったPodを即座に削除します。 | kubectl delete pod web-abc --grace-period=0 --force |
| オブジェクトと設定 |
|---|
| リソースのスコープに使う新しいnamespaceを作成します。 | kubectl create namespace staging |
| namespaceとその状態を一覧表示します。 | kubectl get namespaces |
| 設定キーやファイルをクラスタオブジェクトとして保存します。 | kubectl create configmap app --from-file=config.yaml |
| namespace内のConfigMapを一覧表示します。 | kubectl get configmaps |
| パスワードや証明書をSecretとして保存します。 | kubectl create secret generic db --from-literal=password=s3cret |
| namespace内のSecretを一覧表示します。 | kubectl get secrets |
| リソースにラベルを付けたり削除したりします。 | kubectl label pod web-abc tier=backend |
| セレクターで照合できないメタデータを付けます。 | kubectl annotate deploy/web release=july |