kubectl 基本的なコマンド一覧

■ 目次

■ 目次1. 認証情報とContext(config)1.1. クラスタの定義を追加・変更1.2. 認証情報の定義を追加・変更1.3. Context の定義を追加・変更(クラスタ/認証情報/Namespaceを定義)1.4. Contextの一覧を表示1.5. 現在のContextを表示1.6. Contextの切り替え1.7. コマンドの実行ごとにContextを指定2. マニフェストとリソースの作成/削除/更新(create/delete/apply)2.1. リソースの作成2.2. Podの一覧を表示2.3. リソースの削除2.4. 特定リソースのみ削除2.5. 特定のリソース種別をすべて削除2.6. リソースを削除 (削除完了を待機)2.7. リソースの即時強制削除2.8. 変更の適応3. Server-side apply3.1. Server-side apply を有効化してマニフェストの作成/適用3.2. イメージの更新3.3. コンフリクトを無視して強制的にマニフェストを適用3.4. Pod の sample-pod をyamlとして出力3.5. Manager名を変更の適用(CIツールからの実行場合)4. Podの再起動 (rollout restart)4.1. Deployment リソースのすべてのPodのリスタート5. GenrateName によるランダムな名前のリソースの作成5.1. ランダムな名前作成6. リソースの状態のチェックと待機 (wait)6.1. sample-pod が正常に起動する(Ready状態になる)まで待機する6.2. マニフェストファイルを指定してPodが正常に起動する(Ready状態になる)6.3. すべてのPodがスケジューリングされる(PodScheduled状態になる)まで待機する6.4. すべてのPodが削除されるまでPod毎に最大5秒ずつ待機6.5. すべてのPodを削除、実行語すぐに次のkubectl wait を実行6.7. すべてのPodが削除されるまで待機7. 複数のマニフェストファイルを同時に適用7.1. ディレクトリ配下のすべてのYAMLファイルを指定リソースを作成7.2. 指定したディレクトリ行かのファイルを再帰的に適用8. アノテーション8.1. アノテーションの付与8.2. アノテーションの付与(上書きを許可)8.3. アノテーションの確認8.4. アノテーションの削除9. ラベル9.1. ラベルの付与9.2.ラベルの付与(上書きを許可)9.3. ラベルの確認9.4. ラベルの削除9.5. label1-val1とlabel2ラベルを持つPodを表示9.6. PodとLabel1ラベルを表示9.7. label1ラベルを持つPodとlabel2ラベルを表示9.8. すべてのラベルを表示してPodの一覧を出力10. Prune によるリソースの削除10.1. 初回の作成10.2. ファイルを削除10.2. sample-pod1.yamlふが削除された状態で再度同じコマンドで更新11. リソースの一部情報の更新(set)11.1. sample-pod内のnginx-containerコンテナのコンテナイメージを確認11.2. コンテナイメージをnginx:1.17 からnginx:1.16に変更12. ローカルマニフェストとkubernetes上の登録情報の差分取得(diff)12.1. クラスタの登録情報とマニフェストの差分を確認13. 利用可能なリソース種別の一覧取得(api-resources)13.1. すべてのリソース種別を表示13.2. Namespaceレベルに属しているリソース13.3. Clusterレベルに属しているリソース14. リソースの情報取得(get)14.1. Podの一覧を表示14.2. 特定のPodの情報だけを表示14.3. label1=val1 とlabel2ラベルを持つPodを表示14.4. Podの一覧を表示(より詳しく表示)14.5. YAML形式でPodの詳細情報リストを出力14.6. YAML形式で特定のPodの症状情報を出力14.7. ノードの一覧を表示14.8. 作成されているほぼすべて種類のリソースを表示14.9. リソースの状態変化があるものを出力14.10. リソースの処理工程を表示15. リソースの詳細情報の取得(describe)15.1. ノードの詳細情報を表示16. 実際のリソースの使用量を確認 (top)16.1. ノードのリソース使用量を確認16.2. Podごとのリソース使用量を確認16.3. Podの一覧を表示16.4. コンテナごとのリソース使用量を確認17. コンテナ上でのコマンドの実行(exec)17.1. Pod内のコンテナで/bin/lsを実行17.2. 複数コンテナが入ったPodの特定のコンテナで/bin/lsを実行17.3. Pod内のコンテナで /bin/bash を実行 (終了する際はexitを実行)17.4. パイプなど特殊な文字が含まれる場合は、/bin/bashに引数を渡す形で実行18. ローカルマシンからPodへのポートフォワーディング(port-forward)18.1. localhost:8888宛の通信をPod80/TCPポートに転送18.2. sample-deploymentに紐付くPodのうち1つにポートフォワーディング19. コンテナのログ確認(logs)19.1. Pod内のコンテナのログを出力19.2. 複数コンテナが入ったPodで特定のコンテナのログを出力19.3. follow しながらログを出力19.4. 最新1時間以内、10件取得、タイムスタンプを表示してログを出力19.5. app=sample-app ラベルを持つすべてのPodのログを出力20. コンテナとローカルマシン間でのファイルのコピー(cp)20.1. sample-pod内の/etc/hostnameファイルをローカルマシンにコピー20.2. 取得したローカルファイルをコンテナにコピー21. kubect plugin とパッケージマネージャ(plugin/krew)21.1. プラグインの一覧を表示21.2. プラグインのインストール21.3. kubectl プラグインの一例22. kubectl におけるデバッグ22.1. Http Request / Response レベルのデバッグ22.2. Http Request Body / Response Body レベルのデバッグ22.3. HTTP PATCHリクエストの内容を確認

 

1. 認証情報とContext(config)

  • kubectl は Kubernetes Master(~/.kube/config) に書かれている情報を元に接続
  • 複数作成する事も可能
ファイル名 : ~/.kube/config
 

1.1. クラスタの定義を追加・変更

 

1.2. 認証情報の定義を追加・変更

(未検証の為・・・・不明)
 

1.3. Context の定義を追加・変更(クラスタ/認証情報/Namespaceを定義)

  • 複数作成する場合は  などに変更すれば作成が可能
 

1.4. Contextの一覧を表示

 

1.5. 現在のContextを表示

 

1.6. Contextの切り替え

  • 再度Contextの一覧を表示すると指定されたContextに変更が確認出来る
 

1.7. コマンドの実行ごとにContextを指定

(未検証の為・・・・不明)

 

2. マニフェストとリソースの作成/削除/更新(create/delete/apply)

ファイル名 : sample-pod1.ymal
 

2.1. リソースの作成

 

2.2. Podの一覧を表示

項目概要
NAME名前
READY
STATUS起動状態Running : 稼働中Stopping : 停止(作成中)
RESTARTTS
AGE
 

2.3. リソースの削除

 

2.4. 特定リソースのみ削除

 

2.5. 特定のリソース種別をすべて削除

 

2.6. リソースを削除 (削除完了を待機)

 

2.7. リソースの即時強制削除

 

2.8. 変更の適応

項目出力結果
変更点がある場合pod “sample-pod” configured
変更点がない場合pod “sample-pod” unchanged
リソースが存在しない場合pod “sample-pod” created

 

3. Server-side apply

3.1. Server-side apply を有効化してマニフェストの作成/適用

 

3.2. イメージの更新

 

3.3. コンフリクトを無視して強制的にマニフェストを適用

 

3.4. Pod の sample-pod をyamlとして出力

 

3.5. Manager名を変更の適用(CIツールからの実行場合)


 

4. Podの再起動 (rollout restart)

4.1. Deployment リソースのすべてのPodのリスタート


 

5. GenrateName によるランダムな名前のリソースの作成

5.1. ランダムな名前作成

  • サンプルソース : sample-pod.yaml

 

6. リソースの状態のチェックと待機 (wait)

6.1. sample-pod が正常に起動する(Ready状態になる)まで待機する

 

6.2. マニフェストファイルを指定してPodが正常に起動する(Ready状態になる)

 

6.3. すべてのPodがスケジューリングされる(PodScheduled状態になる)まで待機する

 

6.4. すべてのPodが削除されるまでPod毎に最大5秒ずつ待機

 

6.5. すべてのPodを削除、実行語すぐに次のkubectl wait を実行

 

6.7. すべてのPodが削除されるまで待機


 

7. 複数のマニフェストファイルを同時に適用

7.1. ディレクトリ配下のすべてのYAMLファイルを指定リソースを作成

 

7.2. 指定したディレクトリ行かのファイルを再帰的に適用


 

8. アノテーション

8.1. アノテーションの付与

 

8.2. アノテーションの付与(上書きを許可)

 

8.3. アノテーションの確認

 

8.4. アノテーションの削除


 

9. ラベル

9.1. ラベルの付与

 

9.2.ラベルの付与(上書きを許可)

 

9.3. ラベルの確認

 

9.4. ラベルの削除

 

9.5. label1-val1とlabel2ラベルを持つPodを表示

 

9.6. PodとLabel1ラベルを表示

 

9.7. label1ラベルを持つPodとlabel2ラベルを表示

 

9.8. すべてのラベルを表示してPodの一覧を出力


 

10. Prune によるリソースの削除

10.1. 初回の作成

 

10.2. ファイルを削除

 

10.2. sample-pod1.yamlふが削除された状態で再度同じコマンドで更新


 

11. リソースの一部情報の更新(set)

11.1. sample-pod内のnginx-containerコンテナのコンテナイメージを確認

 

11.2. コンテナイメージをnginx:1.17 からnginx:1.16に変更


 

12. ローカルマニフェストとkubernetes上の登録情報の差分取得(diff)

12.1. クラスタの登録情報とマニフェストの差分を確認


 

13. 利用可能なリソース種別の一覧取得(api-resources)

13.1. すべてのリソース種別を表示

 

13.2. Namespaceレベルに属しているリソース

 

13.3. Clusterレベルに属しているリソース


 

14. リソースの情報取得(get)

14.1. Podの一覧を表示

 

14.2. 特定のPodの情報だけを表示

 

14.3. label1=val1 とlabel2ラベルを持つPodを表示

 

14.4. Podの一覧を表示(より詳しく表示)

 

14.5. YAML形式でPodの詳細情報リストを出力

 

14.6. YAML形式で特定のPodの症状情報を出力

 

14.7. ノードの一覧を表示

 

14.8. 作成されているほぼすべて種類のリソースを表示

 

14.9. リソースの状態変化があるものを出力

 

14.10. リソースの処理工程を表示


 

15. リソースの詳細情報の取得(describe)

15.1. ノードの詳細情報を表示


 

16. 実際のリソースの使用量を確認 (top)

16.1. ノードのリソース使用量を確認

 

16.2. Podごとのリソース使用量を確認

 

16.3. Podの一覧を表示

 

16.4. コンテナごとのリソース使用量を確認


 

17. コンテナ上でのコマンドの実行(exec)

17.1. Pod内のコンテナで/bin/lsを実行

 

17.2. 複数コンテナが入ったPodの特定のコンテナで/bin/lsを実行

 

17.3. Pod内のコンテナで /bin/bash を実行 (終了する際はexitを実行)

 

17.4. パイプなど特殊な文字が含まれる場合は、/bin/bashに引数を渡す形で実行


 

18. ローカルマシンからPodへのポートフォワーディング(port-forward)

18.1. localhost:8888宛の通信をPod80/TCPポートに転送

  • 終了する際はCtrl+cを入力
  • 疎通確認
 

18.2. sample-deploymentに紐付くPodのうち1つにポートフォワーディング


 

19. コンテナのログ確認(logs)

19.1. Pod内のコンテナのログを出力

 

19.2. 複数コンテナが入ったPodで特定のコンテナのログを出力

 

19.3. follow しながらログを出力

 

19.4. 最新1時間以内、10件取得、タイムスタンプを表示してログを出力

19.5. app=sample-app ラベルを持つすべてのPodのログを出力


 

20. コンテナとローカルマシン間でのファイルのコピー(cp)

20.1. sample-pod内の/etc/hostnameファイルをローカルマシンにコピー

  • ローカルマシン内の hostname ファイルの確認
 

20.2. 取得したローカルファイルをコンテナにコピー

  • コンテナ内の tmp 配下を確認

 

21. kubect plugin とパッケージマネージャ(plugin/krew)

21.1. プラグインの一覧を表示

 

21.2. プラグインのインストール

 

21.3. kubectl プラグインの一例

💡
📝 編集中
プラグイン名概要
treeリソースの親子関係を表示
neat
sick-pods
podevents
resource-capacity
get-all
sort-manifests
ctx
ns
images
outdated
open-svc
iexec
tmux-exec
cssh
node-shell
node-restart
view-secret
modify-secret
konfig
view-serviceaccount-kubeconfig
rolesum
who-can

 

22. kubectl におけるデバッグ

22.1. Http Request / Response レベルのデバッグ

 

22.2. Http Request Body / Response Body レベルのデバッグ

 

22.3. HTTP PATCHリクエストの内容を確認