【カスタマイズ】

Kustomize とは?

最終更新:
💡 元のファイルを汚さない、Kubernetesの透明シール式カスタマイズ
📌 このページのポイント
Kustomize: Base + Overlay パターン base/ deployment.yaml service.yaml (共通設定 = 変更しない) overlays/dev/ replicas: 1 image: app:dev kustomization.yaml overlays/prod/ replicas: 5 image: app:v2.1 kustomization.yaml kubectl apply -k base + overlay を マージして適用
KustomizeのBase + Overlayパターン
ひよこ ひよこ
Kustomizeってどんな仕組みなの?
ペンギン先生 ペンギン先生
「base」フォルダに共通のマニフェストを置いて、「overlays/dev」「overlays/prod」みたいなフォルダで環境ごとの差分だけ書くんだ。ベースを汚さずにカスタマイズできるのがポイントだよ
ひよこ ひよこ
Helmみたいなテンプレートは使わないの?
ペンギン先生 ペンギン先生
そう、Kustomizeは素のYAMLのままでいける。JSONパッチやStrategic Merge Patchという仕組みで「この部分だけ上書き」ってやるんだ。YAMLがそのままkubectl applyできるから読みやすいんだよ
ひよこ ひよこ
kubectlに最初から入ってるって本当?
ペンギン先生 ペンギン先生
Kubernetes 1.14からkubectlに統合されてて、「kubectl apply -k overlays/prod/」で使えるんだ。別途インストールしなくていいから導入のハードルが低いんだよ
ひよこ ひよこ
HelmとKustomizeは結局どう使い分ければいいの?
ペンギン先生 ペンギン先生
外部のChartを使うときはHelm、自社サービスのマニフェスト管理はKustomizeという組み合わせが王道だね。実はHelmで生成したYAMLをKustomizeでさらにパッチする「Helm + Kustomize」パターンも実務ではよく見るよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Kustomize」って出てきたら「テンプレートなしでKubernetesの設定を環境ごとに変えられるツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Kustomize」 = カスタマイズ(Kubernetes + Customize の造語)
💬 CustomizeのCをKubernetesのKに置き換えた造語で、Kubernetes専用のカスタマイズツールという意味だよ
← 用語集にもどる