λ kubectl apply
リソースの管理
YAMLで定義されたリソースを適用
GPT-4.icon
kubectl apply は、Kubernetes において 宣言的なリソースの管理 を行うためのコマンドです。
指定されたマニフェストファイル(YAMLやJSON)を使って、Kubernetesクラスタにリソースを「作成または更新」します。
🔧 基本構文
$ kubectl apply -f <ファイル名>.yaml
例:
$ kubectl apply -f deployment.yaml
🧠 apply の特徴
table:_
特徴 説明
宣言的管理 状態をファイルに「宣言」して、その通りにクラスタを保つ。
差分適用 変更された部分のみを更新する。
再実行しても安全 何度でも同じコマンドを実行できる(idempotent)。
変更の検出に last-applied-configuration を使用 kubectl apply は、過去に適用した設定をアノテーションに保存しており、次の差分適用時に使う。
📦 よく使うオプション
table:_
オプション 説明
-f 対象のマニフェストファイルやディレクトリを指定
--prune マニフェストに存在しないリソースを削除(リソースの削除に使える)
--record コマンドの内容をアノテーションに記録(履歴管理)
🙋‍♂️ 補足: apply vs create vs replace
table:_
コマンド 用途
kubectl create 新規作成のみ。すでにリソースが存在するとエラーになる。
kubectl replace 既存のリソースを完全に置き換える。差分は考慮されない。
kubectl apply 宣言的な差分適用で作成または更新。最もよく使われる。
🧪 例:Deployment を apply する
code:yaml
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx
code:bash
kubectl apply -f deployment.yaml
このコマンドで、Deploymentが存在しなければ作成され、存在すれば差分が適用されます。
✅ よくある用途
GitOps(マニフェストファイルによる管理)
CI/CD パイプラインでの自動デプロイ
環境の一貫性の担保(test, staging, prodなど)