🕌
Helmについて調べてみた
はじめに
現在、kubernetesを勉強しているのですが、「Helm」を使っている事例をよくみるので個人的に調べてまとめてみました。
Helm とは?
Helm は Kubernetes のパッケージマネージャー であり、Kubernetes 上でアプリケーションを簡単にデプロイ・管理するためのツールです。kubectl
を直接ラップしているわけではなく、Kubernetes API を直接操作します。
CNCF と Helm
Helm は Cloud Native Computing Foundation (CNCF) によってホストされているプロジェクトの一つです。CNCF は Kubernetes を含むクラウドネイティブ技術のエコシステムを促進する組織であり、Helm は公式に CNCF の Graduated(成熟プロジェクト) として認定されています。これにより、Helm はエンタープライズ環境でも信頼性の高いツールとして広く採用されています。
なぜ Helm を使うのか?
Kubernetes でアプリをデプロイする際、通常は複数の YAML ファイルを作成・管理する必要があります。Helm を使うことで、これらを 1つのパッケージ(Helm Chart) にまとめ、管理・展開を簡単にすることができます。
Helm のメリット
-
デプロイが簡単:
helm install
だけで複数のリソースを一括デプロイできる。 -
アップグレード管理:
helm upgrade
でアプリの更新が簡単。 -
ロールバックが可能:
helm rollback
で過去のバージョンに戻せる。 -
設定変更が容易:
values.yaml
を変更するだけでパラメータを変更できる。
kubectl
の違い
Helm と 比較項目 | Helm | kubectl |
---|---|---|
役割 | Kubernetes のパッケージ管理ツール | Kubernetes API と直接通信する CLI |
管理単位 | Helm Chart(複数のリソースをまとめたパッケージ) | 個々のリソース(Pod, Deployment など) |
デプロイ方法 | helm install <リリース名> <チャート名> |
kubectl apply -f <yamlファイル> |
アップグレード | helm upgrade <リリース名> <チャート名> |
kubectl apply -f <更新後のYAML> |
ロールバック | helm rollback <リリース名> <バージョン> |
kubectl rollout undo <リソース> |
Helm の基本コマンド
1. Helm チャートのインストール
helm install <リリース名> <チャート名>
例:
helm install my-app oci://docker.io/example/app --version 1.0.0
2. インストール済みの Helm リリースを確認
helm list
3. アプリの削除
helm uninstall <リリース名>
4. アップグレード
helm upgrade <リリース名> <チャート名> --version <バージョン>
5. ロールバック(バージョンを戻す)
helm rollback <リリース名> <バージョン番号>
Helm Chart の構成
Helm Chart は Kubernetes のリソースをまとめたパッケージです。
my-chart/
├── Chart.yaml # チャートのメタデータ
├── values.yaml # 変数や設定ファイル
├── templates/ # Kubernetes YAML テンプレート
├── charts/ # 依存関係のあるチャート
├── README.md # 説明書
まとめ
- Helm は Kubernetes の パッケージ管理ツール であり、
kubectl
とは異なる。 - Helm Chart を使うことで アプリのデプロイ、アップグレード、ロールバックが簡単 になる。
-
helm install
,helm upgrade
,helm rollback
を活用すると、効率的なアプリ管理が可能。 -
values.yaml
を変更するだけで 環境ごとのカスタマイズが容易。
Helm を使えば、Kubernetes 上でのアプリ管理がより簡単かつ柔軟になります!
Discussion