kubectl とは?Kubernetes のためのコマンドライン
kubectl は、あなたのリクエストを Kubernetes API server に送るコマンドラインツールです - 人間と pipeline がクラスタと対話する主要な手段です。
Kubernetes クラスタに対して行うすべてはその API server を通り、kubectl はそのための標準的な client です。何が実行中かを検査するにせよ、新しい manifest を適用するにせよ、kubectl はあなたのコマンドを、kubeconfig が指すクラスタに対する API 呼び出しに変換します。
状態を検査する
kubectl get pods- pod を一覧表示する。kubectl describe deployment web- 詳細な status とイベント。kubectl logs <pod>- コンテナのログを読む。kubectl get events- デバッグ用の最近のクラスタイベント。
状態を変更する
kubectl apply -f manifest.yaml は宣言的な主力です - ファイルに一致するようオブジェクトを作成または更新します。kubectl rollout status と kubectl rollout undo は rollout を管理し元に戻します。
context と kubeconfig
kubectl は cluster、user、context を保持する kubeconfig ファイルを読みます。kubectl config use-context は対象とするクラスタを切り替えます - 誤ったクラスタに対して prod コマンドを決して実行しないために極めて重要です。
命令的 vs 宣言的
kubectl create や scale を命令的に行うこともできますが、バージョン管理された YAML を適用する方が望ましいです - 再現可能でレビュー可能であり、それが CI/CD にとって重要です。
CD pipeline における kubectl
deploy job はクラスタに認証し、それから kubectl apply(または kubectl set image)を実行して CI がビルドしたイメージを展開します。環境をまたぐミスを避けるため、pipeline では常に対象の context を確認しましょう。
重要なポイント
- kubectl は Kubernetes API server のための CLI client です。
- 再現性のため、命令的なコマンドより宣言的な
kubectl applyを優先しましょう。 - context が対象のクラスタを選びます - 変更の前にそれを確認しましょう。