Kubernetes 応用コース 解説

Kustomizeでつくる、環境差分だけを持つマニフェスト

環境ごとにマニフェストを丸ごと複製すると、共通部分の更新が漏れます。Kustomizeはbaseに共通を置き、overlayに環境差分だけを書く構成です。

TL;DR

  1. baseは共通の意図、overlayは環境固有の差分を持つ。
  2. 生成結果を確認してから適用し、差分の置き場所を一貫させる。
  3. Strategic Merge Patchは対象リソースの一部を上書きするための仕組み。

01baseとoverlayの役割を分ける

baseからstg/prd overlayへ枝分かれし、最終マニフェストを作る図

baseからstg/prd overlayへ枝分かれし、最終マニフェストを作る図
baseとoverlayの役割を分けるを図解

baseにはDeploymentやServiceなど環境共通の構造を置きます。stgやprdなどのoverlayは、イメージタグ・レプリカ数・設定値など、その環境でだけ変わる部分を重ねます。

押さえること:baseは共通の意図、overlayは環境固有の差分を持つ。

02差分は合成して読む

入力ファイル群→kustomize build→完成YAML→kubectl/Argo CD

入力ファイル群→kustomize build→完成YAML→kubectl/Argo CD
差分は合成して読むを図解

Kustomizeは指定したリソースやパッチを合成して出力します。手元で完成形を見て、意図したラベル・名前・設定に展開されていることを確認してからクラスタへ渡すのが安全です。

押さえること:生成結果を確認してから適用し、差分の置き場所を一貫させる。

03パッチは小さく、対象を明確に

baseマニフェストの特定フィールドだけがpatchで変わる比較図

baseマニフェストの特定フィールドだけがpatchで変わる比較図
パッチは小さく、対象を明確にを図解

Strategic Merge Patchは同じリソースを見つけて一部を上書きします。名前・kind・namespaceが曖昧だと読みにくくなるため、環境ごとの違いだけを小さく保ち、baseに共通変更を戻します。

押さえること:Strategic Merge Patchは対象リソースの一部を上書きするための仕組み。

結論

  1. baseは共通の意図、overlayは環境固有の差分を持つ。
  2. 生成結果を確認してから適用し、差分の置き場所を一貫させる。
  3. Strategic Merge Patchは対象リソースの一部を上書きするための仕組み。