Kubernetes Learning 第34章:values.yamlのカスタマイズ ~環境ごとの設定変更をシンプルに~

Helmチャートでは、values.yaml ファイルを使って、テンプレートに渡す設定値を一元管理できます。
このファイルをカスタマイズすることで、「開発用」「本番用」といった環境ごとの差分管理がとても簡単になります。

ここでは values.yaml の基本構造と、カスタマイズ方法について見ていきましょう。


🔧 values.yamlの役割

values.yaml は Helmチャートの「設定ファイル」です。
Deployment や Service などのテンプレートファイル内で .Values.xxx として参照されます。

# values.yaml の例
replicaCount: 2

image:
  repository: nginx
  tag: "1.25"
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80

これをテンプレートで使うと、たとえば以下のようになります:

spec:
  replicas: {{ .Values.replicaCount }}
  containers:
    - image: {{ .Values.image.repository }}:{{ .Values.image.tag }}

🖍️ カスタマイズ方法1:values.yaml を直接編集する

チャートを使う前に、values.yaml を直接書き換える方法です。

helm install myapp ./mychart

このとき mychart/values.yaml の内容が自動で適用されます。


📂 カスタマイズ方法2:別ファイルを用意して環境ごとに切り替え

環境ごとに設定を分けたい場合は、複数の values ファイルを用意しましょう。

例:

values/
├── dev.yaml
├── staging.yaml
└── production.yaml

使うときは -f オプションで指定します。

helm install myapp ./mychart -f values/dev.yaml
helm upgrade myapp ./mychart -f values/production.yaml

これにより、「環境ごとの設定ファイル切り替え」が簡単にできます。


✍️ カスタマイズ方法3:コマンドラインで一部だけ上書き

少しだけ設定を変えたいときは --set オプションが便利です。

helm install myapp ./mychart \
  --set replicaCount=3 \
  --set image.tag="1.26"

ただし複雑になると可読性が下がるので、長い設定は YAMLファイルで管理するのがオススメです。


✅ よく使うカスタマイズ例

用途values.yaml の項目例
コンテナイメージの指定image.repository, image.tag
Pod数の変更replicaCount
Serviceの公開設定service.type, service.port
環境変数の指定env: セクションで定義
リソース制限resources.requests, resources.limits
永続ボリューム設定persistence.enabled, persistence.storageClass など

📘 補足:値のデフォルトとオーバーライド

Helmは以下のように設定値を探して適用します(優先順位の高い順):

  1. --set オプションの値
  2. -f で指定した values ファイルの値
  3. チャートに含まれる values.yaml のデフォルト値

これにより、必要な部分だけ柔軟に上書きできます。


🔚 まとめ

  • values.yaml は Helmチャートの設定集
  • 環境ごとに YAMLファイルを分けると管理しやすい
  • --set-f を使って柔軟にオーバーライドできる
  • 本番運用では Git で管理することも多い

mh

Related Posts

Kubernetes Learning 第35章:GitOpsとは?~Kubernetes運用をもっとスマートにする考え方~

Kubernetes Learning 第33章:Helm Chartの構成 ~Kubernetesアプリをパッケージ化する設計図~

You Missed

Kubernetes Learning 第35章:GitOpsとは?~Kubernetes運用をもっとスマートにする考え方~

  • 投稿者 mh
  • 6月 13, 2025
  • 21 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第8章:ファイアウォールルール:あなたのGCPリソースを守る「交通整理係」

  • 投稿者 mh
  • 6月 12, 2025
  • 27 views

Kubernetes Learning 第34章:values.yamlのカスタマイズ ~環境ごとの設定変更をシンプルに~

  • 投稿者 mh
  • 6月 11, 2025
  • 32 views

現場で使えるChrome DevTools実践ガイド 第13章:拡張機能・Snippetsの活用

  • 投稿者 mh
  • 6月 10, 2025
  • 43 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第7章:VPC(Virtual Private Cloud)ネットワークとサブネット:GCPの「専用プライベートネットワーク」

  • 投稿者 mh
  • 6月 9, 2025
  • 47 views

Kubernetes Learning 第33章:Helm Chartの構成 ~Kubernetesアプリをパッケージ化する設計図~

  • 投稿者 mh
  • 6月 8, 2025
  • 53 views