Skip to content
Latchkey

kubectl とは何か? Kubernetes の CLI を解説

kubectl は Kubernetes cluster とやり取りするためのコマンドラインツールです。アプリを構成するリソースの調査、作成、更新、削除に使います。

kubectl(「キューブコントロール」と発音)は、人間や pipeline が Kubernetes を操作する手段です。cluster の API サーバーにリクエストを送って状態を読み取り、変更を適用します。pod の一覧表示から新しい deployment の展開までを行います。Kubernetes を扱うなら、kubectl が主要なツールです。

kubectl とは

kubectl は Kubernetes の公式コマンドラインインターフェースです。接続と認証情報に kubeconfig を使い、cluster の API サーバーとやり取りします。コマンドを使ってリソースの調査(get、describe、logs)、変更(apply、delete、scale)、デバッグ(exec、port-forward)ができます。

宣言的な apply

推奨される workflow は宣言的です。望ましい状態を YAML manifest として記述し、"kubectl apply -f" を実行すると、Kubernetes が cluster をその状態へと reconcile します。kubectl は素早い操作のために命令的なコマンドもサポートしますが、deploy を繰り返し可能にするのは、バージョン管理された manifest を用いた apply です。

使用例

リソースを調べ、manifest を適用します。

Common kubectl commands
# list running pods
kubectl get pods

# apply desired state from a manifest
kubectl apply -f deployment.yaml

# wait for a rollout to finish
kubectl rollout status deployment/myapp

CI/CD での役割

CI/CD では、kubectl はしばしば deploy ステップになります。イメージを build して push した後、pipeline は "kubectl apply" を実行するかイメージを更新し、"kubectl rollout status" で待機して、job を green にする前に deployment の成功を確認します。"--dry-run=server" を使うと cluster を変更せずに manifest を検証でき、PR の check として役立ちます。

代替ツール

Helm と Kustomize は設定を管理するために kubectl の上に位置しますが、最終的には同じ API を通じて apply します。Argo CD や Flux のような GitOps ツールは、直接の kubectl apply を、git から同期するコントローラーに置き換えます。kubectl は依然として、cluster とやり取りするための最も基本的で低レベルな方法です。

重要なポイント

  • kubectl は Kubernetes のリソースを調べて管理する CLI である。
  • バージョン管理された manifest を用いた宣言的な "kubectl apply" が標準である。
  • CI では "kubectl rollout status" で deploy と rollout の確認を行う。

関連ガイド