Edited at

kubernetes : kubectlコマンド一覧

よく使うkubernetesのkubectlコマンド一覧


1) podを作成

kubectl create -f [Pod定義ファイル]


2) rc(Replication Controller)を作成

kubectl create -f [rc定義ファイル]

rcを作成すると、複数のpodを一括管理できる。また、いくつpodを起動するかを規定し、podが停止すると、自動的に規定数のpodにリカバリしてくれる。


3) Serviceを作成

kubectl create -f [Service定義ファイル]

Pod(コンテナ)を外部と通信させる場合はServiceを定義する。Serviceがプロキシとなり、例えばホストアドレス:Portへのアクセスを、Podの接続先内部アドレス:Portに変換し、相互接続が可能となる。


4) pod一覧を確認

kubectl get pod

$ kubectl get pod

NAME READY STATUS RESTARTS AGE
jenkins-lf3br 1/1 Running 0 3d

STATUS

Running: 稼働中

Pending: Pod起動待ち

ImageNotReady: dockerイメージ取得中

PullImageError: dockerイメージ取得失敗

CreatingContainer: Pod(コンテナ)起動中

Error: エラー

etc.

-o wide

オプションで、各Podの実行ホストIPも表示できる

-o yaml [pod名]

オプションで、指定podのyamlを確認できる

-L [ラベル名]

オプションで、指定ラベルキーと値も出力

-l [ラベルフィルタ条件]

オプションで、指定ラベル条件でフィルタ可能

-n [NameSpace名]

オプションで、NameSpaceを指定して実行

-A

オプションで、全NameSpaceの結果を取得


5) rc(Replication Controller)一覧を確認

kubectl get rc

ReplicaSetの場合は

kubectl get rs

Deploymentの場合は

kubectl get deploy


6) svc(Service)一覧を確認

kubectl get svc


7) podを削除

kubectl delete pod [Pod名]

または

kubectl delete -f [作成時のPod定義ファイル]

強制的にすぐ削除したい場合は以下オプション

—grace-period 0 —force


8) rc(Replication Controller)を削除

kubectl delete rc [rc名]

または

kubectl delete -f [作成時のyaml定義ファイル]

※rcで作成されたpodを個別に削除しても、rcがpodを自動再生成するので、rc自体を削除する必要がある

※ReplicaSetの場合は rc → rs


9) svc(Service)を削除

kubectl delete svc [svc名]

または

kubectl delete -f [作成時のsvc定義ファイル]


10) ログの確認

kubectl logs [pod名]

-fオプションで、tail -f 相当のリアルタイムフォロー出力

--sinse=1hオプションで、最新1時間以内を抽出

--tail=10オプションで、最新10件を抽出

--timestamps=trueオプションで、タイムスタンプ付与


11) pod/rc/rs/svcの詳細を確認する

kubectl describe [Pod名/rc名/rs名/svc名]


12) 起動したPodにログインする

kubectl exec -it [コンテナ名] /bin/bash

ログオフする時はexitコマンド

各種オプション

-i:コンテナへ標準入力(STDIN)を渡す

-t:標準入力(STDIN)をTTY(コンソール入力)とする


13) Podの環境変数を確認

kubectl exec [Pod名] env


14) Podのマウントされたボリュームを確認

kubectl exec [Pod名] ls /[Path]


15) Pod(コンテナ)上でコマンドを実行

kubectl exec [Pod名] [コマンド]

例)

$kubectl get pod

NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 6m

$kubectl exec nginx echo "Hello"
Hello


16) コンテナ(Pod)の複製数を変更(Scale)する

kubectl scale rc [rc名] --replicas=[数]

現状のレプリカ数が1で、上記で3を指定すると、新たに2個追加される

ReplicaSetの場合は rc → rs


17) リソース消費量確認(top)

workerノードとpodのリソース消費量(CPU/MEMORY)を確認できる

kubectl top node

kubectl top pod


18) workerノードを安全に切り離し

kubectl drain [ノード名]

稼働中のpodが順次evictedされた後に、切り離される