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/nginxmy-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 11はロールバックしたいリビジョン番号です(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のデプロイ運用が一気にスムーズになります。
