タイトルの通り、Kubernetesでよく使うコマンドをまとめていきます。
公式にまとめられているので、わざわざまとめるのもあれですが…。
コマンドをちょっとずつ使ってみて、内容に納得したうえで、随時追記していきたいと思います。
*2020/8/5更新
リソース一覧確認(kubectl get ~)を加筆しました
もくじ
■リソース生成または更新
kubectl apply -f リソース
例: kubectl apply -f test-pod.yaml
※生成にはapplyでなくcreateコマンドも使うことは一応可能。
applyは、前回適用したマニフェスト、現在クラスタ登録されているリソースの状態、今回適用するマニフェストをそれぞれ比較のうえ、適切なリソース状態で生成・更新を行ってくれる。
createは単に生成するだけであり、生成したものを次のマニフェスト適用の際の差分確認対象として見ることもない。
従って、リソース生成であっても、createではなくapplyを使うべきである。
■リソース削除
kubectl delete (リソース単位) (リソース名)
例: kubectl delete deploynment sample-deployment
※ReplicaSetやDeployment経由でpodをデプロイしていることが普通と思われるが、
これらの機能により、pod単体だけを削除してもまた新たなpodが生成される。
そのため、podそのものを消したい時は、上位に位置するグループごと消す必要がある。
■リソース強制削除&再生成
デプロイされているリソースを強制的に削除し、再編成する時に用いる。
(サービス停止が発生するため注意)
kubectl replace --force -f (マニフェストファイル)
■リソース一覧確認
基本の確認(リソースの一覧表示)
kubectl get リソース単位 [-n ネームスペース名]
<使用例>
① kubectl get pods -n test-namespace
→「test-namespace」という名前のネームスペースにデプロイされたpodの一覧を表示する。
② kubectl get service --all-namespaces
→全ネームスペース上にデプロイされているserviceの一覧を表示する。
③ kubectl get all
→デフォルトネームスペースにデプロイされた、deployment, repricaset, service, podの一覧を表示する。
④ kubectl get po test-pod
→デフォルトネームスペースにデプロイされた、test-podという名前のpodの情報だけを表示する。
("po"は、podの略称。その他リソース名と略称名の関係は公式参照するか、「kubectl api-resources」コマンドをたたいて確認してください)
<get リソースのオプション(主なもの)>
-o wide または --output wide : 詳細まで表示
-o yaml または --output yaml : yaml形式で表示
-o json または --output json : json形式で表示
-o jsonpath : Podの特定の値を表示する。詳細は使用例②参照。
--sort-by=.metadata.name : 名前順にソートして表示する。
--custom-columns : Podの確認したい内容だけを表示。詳細は使用例③参照。
<使用例>
①kubectl get pods -o wide
→Podの一覧表示が詳細化される
②kubectl get pods -o jsonpath="{.metadata.name}"
→Podの情報のうち、 「.metadata.name」の値だけを出力する。
③kubectl get pods --custom-columns="NAME:{.metadata.name},NodeIP:{.status.hostIP}"
→SQLで特定の列だけを指定してSELECTするみたいなやつ。
出力結果は以下のようになる。
NAME NodeIP
test-pod 10.244.0.1
sample-pod 10.244.0.2
■リソース詳細確認
メタ情報やコンテナの状態など、そのリソースに関して詳しい情報を提供してくれる。
kubectl describe (リソース単位) (リソース名)
例: kubectl describe pod test-pod
今回は以上!