【へるむ】

Helm とは?

最終更新:
💡 KubernetesのアプリをChartで管理する道具

Kubernetesアプリに必要なリソースの定義を、チャートというパッケージで管理するツール。設定値とテンプレートからマニフェストを生成し、インストールや更新を行う。導入したチャートの一つの実体をリリースと呼ぶ。

📌 このページのポイント
チャートから、リリースを導入する チャート:配布するパッケージ Chart.yaml 名前・版 templates/ 定義のひな形 values replicas: 3 Helmで生成 Kubernetes上のリリース Service Pod Pod Pod
テンプレートが設定値を参照し、Kubernetesの定義を生成する。レプリカ数3の例。
ひよこ ひよこ
HelmってKubernetesがあれば不要じゃないの?
ペンギン先生 ペンギン先生
Kubernetesに渡すDeploymentやServiceなどの定義を、まとめて扱える道具だよ。Helmのチャートはテンプレートや設定値などを含むパッケージ。必要なクラスタ・権限・チャートの要件を満たした上で、インストールや更新に使うんだ。
ひよこ ひよこ
開発環境と本番環境で設定を変えたいときは?
ペンギン先生 ペンギン先生
values.yamlの初期値に、環境ごとの値を上書きして使えるよ。たとえばレプリカ数を設定できるチャートなら、開発では1、本番では3にする。ただし、書いた値が反映されるのはテンプレートがその値を参照する場合だね。
ひよこ ひよこ
チャートとリリースはどう違うの?
ペンギン先生 ペンギン先生
チャートは配布するパッケージ、リリースはインストールした実体だよ。同じチャートでも別の名前で導入すれば、それぞれのリリースとして管理できる。チャートの版と、リリースの更新履歴も分けて考えるんだ。
ひよこ ひよこ
公開チャートはそのまま使える?
ペンギン先生 ペンギン先生
Artifact Hubはさまざまな配布元のチャートを探す場所だよ。配布元、対応するKubernetesの版、必要な権限やストレージ、設定値を確認する。公開されているだけで、自分の環境や運用に合うとは限らないんだ。
ひよこ ひよこ
フックが失敗したら、自動で元通りになる?
ペンギン先生 ペンギン先生
JobやPodのフックが失敗するとリリースも失敗するよ。hook-delete-policyはフックのリソースをいつ削除するかの設定で、失敗を無視するものではないんだ。ロールバックしてもDBなどへの変更まで自動で元通りになるとは限らないよ。
もっと詳しく知りたい人へ

更新失敗時のロールバックはどう設定する?

Helm 4ではhelm upgradeの--rollback-on-failureで失敗時に以前の成功リリースへの復元を要求できる。フックで変更したDBデータや外部サービスまで巻き戻す保証はないので、バックアップと復旧手順を別に用意する。利用中の版のヘルプでオプションを確認しよう。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Helm」って出てきたら「Kubernetesアプリをパッケージでまとめてデプロイするツールのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Helm」 = 舵・操舵装置
💬 Helmは英語で舵や操舵装置を表す言葉だよ。Kubernetesアプリを扱うパッケージマネージャーの名前なんだ

参考資料

← 用語集にもどる