この記事では、Kubernetes で Helm を使うための基本を整理します。Helm はよく Kubernetes のパッケージ管理ツールと説明されますが、実際には Chart を使って Kubernetes リソース一式を管理するためのツールとして見る方が分かりやすいです。
単に helm install でアプリケーションを入れるだけではなく、Chart、values、release、namespace、upgrade、rollback の関係を理解しておくと、Kubernetes 上の構成管理がかなり扱いやすくなります。
書籍
Kubernetes 完全ガイド 第 2 版
Kubernetes の基本リソース、Helm、Chart、運用設計を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Helm の位置づけ
Helm は、Kubernetes API Server に対してマニフェストを適用するクライアントツールです。Helm 自体がサーバーとして動作するわけではなく、手元の端末や運用用 Node から Kubernetes クラスタへ操作します。
- Chart は Kubernetes マニフェストをまとめたパッケージ
- values は Chart に渡す環境ごとの設定値
- release は Chart をクラスタへインストールした単位
- upgrade は release の更新
- rollback は過去の release revision へ戻す操作
Helm をインストールする
Helm の導入方法は環境によって異なります。公式ドキュメントでは、バイナリ、インストールスクリプト、各 OS のパッケージマネージャー経由の方法が案内されています。
スクリプトで導入する場合は、取得したスクリプトをそのまま実行する前に内容を確認します。運用環境では、バージョン固定やパッケージ管理経由の導入も検討した方がよいです。
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4
less get_helm.sh
chmod 700 get_helm.sh
./get_helm.sh
helm versionHelm のメジャーバージョンは時期によって変わるため、実際に導入する場合は公式ドキュメントで現在の推奨手順を確認します。既存クラスタや既存 Chart との互換性が重要な場合は、Helm のバージョンを固定して扱う方が安全です。
Chart を探す
公開されている Chart を探すには helm search hub を使います。Artifact Hub などに公開されている Chart を横断的に確認できます。
helm search hub nginx
helm search hub metallb
helm search hub harborリポジトリを追加する
実際に Chart をインストールするには、Chart リポジトリを追加し、ローカルの index を更新します。
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add metallb https://metallb.github.io/metallb
helm repo add harbor https://helm.goharbor.io
helm repo list
helm repo updateChart の内容を確認する
Chart をそのままインストールする前に、デフォルト値や生成されるマニフェストを確認します。特に本番に近い環境では、どのリソースが作られるのかを確認してから適用する方が安全です。
values を確認する
helm show values metallb/metallb
helm show values harbor/harborChart を取得する
helm pull metallb/metallb
helm pull metallb/metallb --untarテンプレートを確認する
helm template metallb metallb/metallb --namespace metallb-systemChart をインストールする
Chart をインストールすると、Kubernetes クラスタ上に release が作成されます。通常は namespace を明示し、必要に応じて values ファイルを指定します。
kubectl create namespace metallb-system
helm install metallb metallb/metallb --namespace metallb-systemvalues ファイルを使う場合は、次のように指定します。
helm install example-release example/chart --namespace example-namespace --create-namespace -f values.yamlRelease を確認する
Helm でインストールしたものは release として管理されます。Kubernetes のリソースだけでなく、Helm の release 状態も確認します。
helm list -A
helm status metallb --namespace metallb-system
helm history metallb --namespace metallb-system更新と削除
Helm では、同じ release に対して upgrade を実行することで設定や Chart バージョンを更新できます。削除する場合は uninstall を使います。
helm upgrade metallb metallb/metallb --namespace metallb-system -f values.yaml
helm rollback metallb 1 --namespace metallb-system
helm uninstall metallb --namespace metallb-system運用上の注意点
Helm は便利ですが、Chart を入れれば構成管理が自動的にきれいになるわけではありません。どの values を正本にするのか、Chart のバージョンをどう固定するのか、クラスタごとの差分をどこで管理するのかを決めておく必要があります。
- Chart のバージョンを固定する
- values ファイルを Git などで管理する
- 本番適用前に
helm templateや差分確認を行う - release 名と namespace の命名を揃える
- 内部レジストリや内部 Chart リポジトリを使う場合は Harbor などの管理方針も決める
関連する記事
Helm は MetalLB や Harbor の導入ともつながります。次の記事と合わせて読むと、Kubernetes 上で Chart を扱う流れが分かりやすくなります。
- Kubernetes 設定マニュアル – オンプレ環境でクラスタ運用を整理する
- Kubernetes MetalLB を Helm で導入する – オンプレ環境で LoadBalancer Service を使う
- Kubernetes 上に Harbor を構築する – Helm で内部コンテナレジストリを運用する意味
- Kubernetes MetalLB を Helm で導入する – Harbor で Chart を管理する考え方
- Helm は自作がおすすめ
公式ドキュメント
まとめ
Helm は Kubernetes のパッケージ管理ツールとして説明されることが多いですが、実際には Chart と values を使って Kubernetes リソース一式を管理するための構成管理ツールとして捉えた方が実用的です。
導入直後は helm repo add、helm repo update、helm search、helm install の基本操作を押さえれば十分です。その後、values の管理、Chart バージョンの固定、release の更新・削除、内部 Chart 管理へ広げていくと、運用に近い形になります。




