Skip to content
Latchkey

Helm chart とは?Kubernetes アプリのパッケージング

Helm chart は、テンプレート化された Kubernetes manifest とデフォルト value を含む再利用可能なパッケージです - Kubernetes アプリの「apt パッケージ」です。

実際のアプリを Kubernetes に deploy するということは、関連する manifest の山を意味します: Deployment、Service、ConfigMap、Ingress など。これらを環境をまたいで手作業で保守するのは面倒でエラーを招きやすいです。Helm chart はそれらを設定可能な value を持つテンプレートとしてまとめるため、アプリを 1 つのバージョン管理された単位として install・upgrade できます。

chart の中身

  • Chart.yaml - 名前、バージョン、メタデータ。
  • templates/ - テンプレートのプレースホルダを含む Kubernetes manifest。
  • values.yaml - デフォルトの設定 value。
  • 他の chart への任意の依存関係。

テンプレートと value

テンプレートは {{ .Values.image.tag }} のようなプレースホルダを使います。install 時に、Helm はあなたの value でテンプレートをレンダリングし、具体的な manifest を生成します。異なる環境は異なる value を供給するだけです。

release

chart を install すると、名前付きの「release」が作成されます。helm upgrade がそれを更新し、helm rollback が元に戻し、helm history が過去のリビジョンを表示します - アプリ全体のバージョン管理されたライフサイクル管理です。

典型的なコマンド

helm upgrade --install web ./chart --set image.tag=1.4web release を install または upgrade し、イメージのタグを出荷したい build に上書きします。

CD における Helm chart

デリバリ pipeline は、CI がちょうど生成したイメージのタグまたは digest で chart をレンダリングまたは upgrade します。chart は環境の違いを value ファイルに保つため、同じ chart が staging から prod へきれいに昇格します。

重要なポイント

  • Helm chart はテンプレート化された Kubernetes manifest とデフォルト value をパッケージします。
  • value は環境ごとに 1 つの chart をカスタマイズし、release がライフサイクルを追跡します。
  • CD は新しくビルドされたイメージのタグまたは digest で chart を upgrade します。

関連ガイド