Kubernetesのリソースは通常、YAMLファイルを kubectl apply -f
で適用することでデプロイしますよね。ただし、アプリケーションが大きくなると、関連するYAMLが複数に分かれ、環境ごとの値の切り替えや更新管理が大変になります。
ここで登場するのが、Helm(ヘルム) です。
Helm は、Kubernetes のパッケージマネージャで、Kubernetes アプリケーションを「チャート(Chart)」としてまとめ、簡単にインストール・更新・ロールバックができるようになります。
🧺 Helmって何ができるの?
Helm では、以下のことができるようになります:
- 複数のYAMLを「ひとまとまりのチャート」として管理できる
- 環境ごとの設定を
values.yaml
に切り替えるだけで適用できる - バージョン管理やロールバックも簡単
- 公式チャートやOSSのチャートもそのまま使える
まるで「apt」や「yum」のような存在だと考えると分かりやすいです。
✅ 基本操作:インストール(helm install
)
まずはアプリケーションを新規にインストールしてみましょう。
helm install my-release bitnami/nginx
my-release
: リリース名(この名前で識別される)bitnami/nginx
: Chart名(リポジトリにあるパッケージ)
Helmはこのコマンドで、内部的に複数のKubernetesマニフェストを生成し、まとめてデプロイしてくれます。
🔄 アップグレード(helm upgrade
)
設定やバージョンを変えたいときは、以下のようにアップグレードできます。
helm upgrade my-release bitnami/nginx --set service.type=LoadBalancer
--set
オプションで上書き可能
--values
を使えばカスタムの values.yaml
を適用可能です
helm upgrade my-release -f values-prod.yaml bitnami/nginx
↩️ ロールバック(helm rollback
)
Helmはデプロイ履歴を保持してくれるので、万が一失敗したときも簡単に元に戻せます。
helm rollback my-release 1
1
はロールバックしたいリビジョン番号です(helm history
で確認可能)
📚 履歴確認(helm history
)
ロールバックやデバッグの前に、今までの変更履歴を確認しておくと安心です。
helm history my-release
これで、いつ・どんな変更があったかが一覧で分かります。
🧪 実行前に確認したい場合(helm template
)
実際のYAMLファイルを確認したいときにはこちら:
helm template my-release bitnami/nginx
このコマンドは、デプロイせずに生成されるYAMLファイルを出力するだけです。GitOpsやCI/CDで使う際に便利です。
💡 注意点
- Helmチャートによっては複雑な依存関係やテンプレートが含まれるため、ドキュメントの確認は重要
values.yaml
を明示的に管理しておくと、再現性のあるデプロイができる- Helmは単なるテンプレートツールではなく、「リリースの管理」もしてくれるのが強み
🧩 まとめ
操作 | コマンド例 | 説明 |
---|---|---|
インストール | helm install my-release chart | 新規にデプロイ |
アップグレード | helm upgrade my-release chart | 設定やバージョンの更新 |
ロールバック | helm rollback my-release 1 | 過去の状態に戻す |
履歴確認 | helm history my-release | バージョン履歴を表示 |
Helmを使いこなすと、Kubernetesのデプロイ運用が一気にスムーズになります。