Helm とは?Kubernetes のパッケージマネージャ
Helm は Kubernetes のパッケージマネージャです - apt や npm がパッケージを管理するように、chart としてパッケージ化されたアプリケーションをインストール、アップグレード、rollback します。
Helm は Kubernetes にとって、apt が Debian にとってのものです。パッケージ化されたアプリケーションをインストール・管理するツールです。パッケージは chart で、Helm は chart をあなたの values でレンダリングし、その結果をクラスタに apply し、単位としてアップグレードや rollback できるバージョン管理された release として追跡します。
Helm と Helm chart の違い
Helm はツール(helm CLI とそのロジック)で、chart はそれが操作するパッケージです。人はどちらも大まかに「Helm」と呼びますが、区別は重要です。あなたは chart をインストールするために Helm を実行します。
release と lifecycle
chart をインストールすると、名前付きの release が作られます。Helm は各リビジョンを記録するため、helm upgrade、helm rollback、helm history が、manifest 単位ではなくアプリ全体に対する完全な lifecycle 制御を一度に与えます。
values でのテンプレート化
Helm は chart のテンプレートを values ファイルでレンダリングし、具体的な manifest を生成します。同じ chart が異なる values を供給することで多数の環境に対応します - 環境間できれいに昇格するための鍵です。
Helm リポジトリ
- chart は chart repository(および OCI registry)を通じて共有される。
helm repo addとhelm pullが公開された chart を取得する。- 多くの一般的なアプリ(データベース、ingress、monitoring)向けの公開 chart が存在する。
CI/CD における Helm
CD pipeline は一般に、新しいイメージ tag で helm upgrade --install を実行するか、GitOps controller が apply するために chart の変更を commit します。いずれにせよ Helm は deploy を、バージョン管理され rollback 可能な1つの単位にパッケージ化します。
重要なポイント
- Helm はパッケージマネージャで、chart はそれがインストールするパッケージです。
- release は、アプリ全体のバージョン管理されたインストール、アップグレード、rollback を提供します。
- 1つの chart が、異なる values ファイルを通じて多数の環境に対応します。