Kustomize
GPT-4.icon
テンプレートエンジンを使わずに、宣言的な方法で設定の追加・上書き・削除が可能で、Kubernetesの公式CLIツールであるkubectlにも統合されています(v1.14以降)。 (AzukiAzusa Tech Blog) 🌟 Kustomizeの特徴
テンプレート不要: Goテンプレートや変数展開を使わず、純粋なYAMLファイルで構成を管理できます。
環境ごとの差分管理: 共通設定(base)と環境固有の設定(overlays)を分離し、再利用性と可読性を向上させます。
kubectlとの統合: kubectlに組み込まれており、追加のツールなしで利用できます。
📁 ディレクトリ構成の例
Kustomizeでは、以下のようなディレクトリ構成でマニフェストを管理します:(Zenn) code:_
.
├── base/
│ ├── deployment.yaml
│ └── kustomization.yaml
└── overlays/
├── dev/
│ ├── deployment-patch.yaml
│ └── kustomization.yaml
└── prod/
├── deployment-patch.yaml
└── kustomization.yaml
base/: 全環境共通のリソース定義を配置します。
🛠️ 基本的なコマンド
マニフェストのビルド(確認):
$ kubectl kustomize overlays/dev
マニフェストの適用:
$ kubectl apply -k overlays/dev
差分の確認:
$ kubectl diff -k overlays/dev
これらのコマンドにより、環境ごとの設定差分を効率的に管理できます。 (Zenn) 🔧 具体的なユースケース
環境ごとの設定変更: 開発・ステージング・本番など、各環境で異なる設定(例:replica数、リソース制限)を適用できます。
共通設定の再利用: baseディレクトリに共通設定をまとめることで、設定の重複を避け、保守性を向上させます。