Kubernetes の設定を管理・反映していく上で、kubectl
コマンドは欠かせません。特に、日常的な運用でよく使うのが:
kubectl apply
kubectl diff
kubectl delete
この3つの役割と使い分けを理解することで、マニフェストの運用がグッとスムーズになります。
🔹 kubectl apply
:マニフェストの適用(=反映)
kubectl apply -f deployment.yaml
apply
は YAMLファイルに書かれた内容をクラスタに反映します。- すでに存在しているリソースがあれば 差分を反映(上書き) し、無ければ新規作成します。
- デプロイや設定変更のたびに基本的にこれを使います。
✅ よく使うオプション:
kubectl apply -f . # ディレクトリ内のすべてのマニフェストを適用
🔹 kubectl diff
:変更点の事前確認
kubectl diff -f deployment.yaml
- 現在のクラスタの状態と、マニフェストで適用しようとしている内容の差分を確認できます。
git diff
に近い感覚で使えます。- CI/CD の前に差分を確認したいときに便利。
📌 注意:
kubectl diff
は 実際の変更を加えません。確認だけ です。- 変更がない場合は何も表示されません。
🔹 kubectl delete
:リソースの削除
kubectl delete -f deployment.yaml
- マニフェストファイルに対応するリソースを クラスタから削除します。
- 主に一時的なテストリソースや不要になった設定を消すときに使います。
✅ よく使う例:
kubectl delete deployment my-deployment
kubectl delete pod mypod --namespace=test
🧩 運用のベストプラクティス
操作 | 目的 | タイミング |
---|---|---|
apply | クラスタへの反映 | マニフェストに変更を加えたとき |
diff | 変更点の確認 | apply 実行前、CI/CDチェック前 |
delete | 不要なリソースの削除 | テスト終了時、構成変更時 |
💡 実践Tips
- Git管理しているマニフェストを使って「GitOps」的に運用する場合、この3つは不可欠です。
kubectl apply -f .
を定期的にCIパイプラインに組み込むと、定義と現実がズレない運用が可能です。kubectl delete -f
は事故につながることもあるので、削除前にkubectl get
やkubectl describe
で状況確認を!
📘 例:差分確認 → 適用 の流れ
kubectl diff -f deployment.yaml # まずは差分確認
kubectl apply -f deployment.yaml # 問題なければ適用
🧹 リソース整理にも delete
を
特に test
, dev
環境では、不要になったリソースをこまめに kubectl delete
することで、クラスタをクリーンに保つことができます。
🧭 まとめ
kubectl apply
は 現実をマニフェストに合わせるコマンドkubectl diff
は 安全な確認kubectl delete
は 削除の明示的操作
この3つをうまく使い分ければ、Kubernetesの運用が安定し、ミスも減らせます。