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 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

You Missed

Kubernetes Learning 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

  • 投稿者 mh
  • 6月 24, 2025
  • 72 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第13章:ストレージとデータベースの基礎 : オブジェクトストレージ: Cloud Storage(バケット、オブジェクト、ストレージクラス)- あなたの「データ置き場」

  • 投稿者 mh
  • 6月 23, 2025
  • 90 views

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

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

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第12章:Cloud CDN(Content Delivery Network):あなたのWebサイトを「世界中のユーザーに超高速で届ける宅配便ネットワーク」

  • 投稿者 mh
  • 6月 20, 2025
  • 107 views

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 95 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 108 views