手当たり次第に書くんだ

飽きっぽいのは本能

Kubernetes Helm の導入 – Chart でアプリケーション構成を管理する

この記事では、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 version

Helm のメジャーバージョンは時期によって変わるため、実際に導入する場合は公式ドキュメントで現在の推奨手順を確認します。既存クラスタや既存 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 update

Chart の内容を確認する

Chart をそのままインストールする前に、デフォルト値や生成されるマニフェストを確認します。特に本番に近い環境では、どのリソースが作られるのかを確認してから適用する方が安全です。

values を確認する

helm show values metallb/metallb
helm show values harbor/harbor

Chart を取得する

helm pull metallb/metallb
helm pull metallb/metallb --untar

テンプレートを確認する

helm template metallb metallb/metallb   --namespace metallb-system

Chart をインストールする

Chart をインストールすると、Kubernetes クラスタ上に release が作成されます。通常は namespace を明示し、必要に応じて values ファイルを指定します。

kubectl create namespace metallb-system

helm install metallb metallb/metallb   --namespace metallb-system

values ファイルを使う場合は、次のように指定します。

helm install example-release example/chart   --namespace example-namespace   --create-namespace   -f values.yaml

Release を確認する

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 を扱う流れが分かりやすくなります。

公式ドキュメント

まとめ

Helm は Kubernetes のパッケージ管理ツールとして説明されることが多いですが、実際には Chart と values を使って Kubernetes リソース一式を管理するための構成管理ツールとして捉えた方が実用的です。

導入直後は helm repo addhelm repo updatehelm searchhelm install の基本操作を押さえれば十分です。その後、values の管理、Chart バージョンの固定、release の更新・削除、内部 Chart 管理へ広げていくと、運用に近い形になります。

Kubernetes Helm の導入 – Chart でアプリケーション構成を管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る