【カスタマイズ】
Kustomize とは?
最終更新:
💡 元のファイルを汚さない、Kubernetesの透明シール式カスタマイズ
テンプレート言語を使わずにKubernetesのマニフェスト(YAML)をカスタマイズできるツール。共通の設定(base)にパッチを重ねて環境ごとの差分を管理する。
📌 このページのポイント
- 共通のbaseを書き換えず、環境ごとのoverlayでパッチを重ねて差分を管理する
- テンプレート構文を使わないので、元のマニフェストは素のYAMLのまま読める
- Kubernetes 1.14からkubectlに組み込まれ、「kubectl apply -k」で使える(組み込み版は単体版より古いことがある)
- kustomization.yamlで、共通ラベルの付与などの横断的な変更やConfigMap・Secretの生成ができる
Kustomizeってどんな仕組みなの?
共通のマニフェストを置いた「base」と、「overlays/dev」「overlays/prod」みたいに環境ごとの差分だけを書いた「overlay」を組み合わせるんだ。baseを書き換えずに環境ごとの設定を作れるのがポイントだよ。
kubectlに最初から入ってるって本当?
本当だよ。Kubernetes 1.14からkubectlに組み込まれていて、「kubectl kustomize」で結果を確認し、「kubectl apply -k overlays/prod/」で適用できるんだ。ただkubectlに入っているKustomizeは単体版より古いことがあるから、新しい機能を使いたいときは単体版を使おうね。
HelmとKustomizeは結局どう使い分ければいいの?
まとめ:ざっくりこれだけ覚えればOK!
「Kustomize」って出てきたら「テンプレートなしでKubernetesの設定を環境ごとに変えられるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Kustomize」 = カスタマイズ
💬 英語のCustomize(カスタマイズする)の頭文字をKubernetesのKにしたつづりだよ