🕌

Helmについて調べてみた

2025/02/14に公開

はじめに

現在、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 を変更するだけでパラメータを変更できる。

Helm と kubectl の違い

比較項目 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 上でのアプリ管理がより簡単かつ柔軟になります!

BIDIRE

Discussion