helm について
helm は Kubernetes アプリケーションをクラスターにデプロイ、管理するチーム向けのパッケージマネージャーです。Chart、テンプレート、バージョン管理されたリポジトリを使い、リリースの更新やロールバックを行えます。
主な機能
- 01Chart によるアプリのパッケージ化
- 02テンプレートと values ファイルでのデプロイ調整
- 03バージョン管理された Chart リポジトリ
- 04リリースの更新とロールバック
- 05Kubernetes RBAC による操作制御
活用シーン
- 01Kubernetes クラスターへのアプリ導入
- 02環境ごとのデプロイ設定の調整
- 03CI/CD ワークフローでのマイクロサービス展開
- 04失敗したアプリリリースのロールバック
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill helmインストール後、Claude Code で/helmを入力して読み込まれたか確認します。
詳細
helm
目的
Helm は Kubernetes 用のパッケージマネージャーで、チャートを使ってアプリケーションの定義、インストール、アップグレードを行えます。Kubernetes リソースを再利用可能なテンプレートにパッケージ化することで、管理を簡素化します。
使用する場面
Kubernetes クラスターにアプリケーションをデプロイして管理する際、特に複数の環境を扱う場合、依存関係のバージョンを管理する場合、またはデプロイを自動化する場合に Helm を使用します。CI/CD パイプラインでスケーラブルなアプリを扱う場合など、一貫したアプリケーションのパッケージ化が必要なマイクロサービスを含む DevOps ワークフローに最適です。
主な機能
- YAML マニフェストとテンプレートを含むディレクトリであるチャートとして、アプリケーションをパッケージ化します。
- バージョン管理されたチャートの保存と取得を可能にする、チャートリポジトリをサポートします。
- 値ファイル(例:パラメーターを上書きする YAML 形式)を使ってデプロイをカスタマイズするためのテンプレートエンジンを備えています。
- リリースのライフサイクルを管理するためのロールバックおよびアップグレード機能を備えています。
- 安全な操作のために Kubernetes RBAC と統合します。
使用パターン
Helm を使用するには、まず kubectl で Kubernetes にアクセスできることを確認するか、KUBECONFIG 環境変数を設定します(例:export KUBECONFIG=~/.kube/config)。必要に応じて helm init で Helm を初期化し、リポジトリを追加してチャートをインストールします。カスタムデプロイの場合は、helm create mychart でチャートを作成し、values.yaml を編集してからインストールします。マルチテナントクラスターでは、必ず --namespace フラグで名前空間を指定してください。
一般的なコマンド/API
Helm は CLI コマンドで操作します。直接利用できる REST API はありませんが、Kubernetes API サーバーと連携します。
- チャートをインストールする:
helm install myrelease stable/nginx --set service.type=LoadBalancer --namespace dev- フラグ:インラインで値を上書きする場合は
--set、外部 YAML ファイルを指定する場合は--values(例:helm install --values values.yaml)。
- フラグ:インラインで値を上書きする場合は
- リリースをアップグレードする:
helm upgrade myrelease stable/nginx --set replicas=3- 失敗時にロールバックするには
--atomicを使用します。
- 失敗時にロールバックするには
- リリースを一覧表示する:
helm list --all-namespaces - リリースを削除する:
helm uninstall myrelease --namespace dev - リポジトリを検索する:
helm search repo nginx基本的な values.yaml ファイルのコード例:
replicaCount: 2
image:
repository: nginx
tag: latest
リポジトリを追加するには、helm repo add stable https://charts.helm.sh/stable を実行し、続けて helm repo update で更新します。
統合に関する注意事項
Helm は Kubernetes ツールと統合されるため、Kubernetes API 経由でクラスターにアクセスできることを確認してください。認証には、クライアント証明書またはトークン用の $KUBECONFIG を使用します。CI/CD(例:GitHub Actions)では、kubectl がインストールされたコンテナー内で Helm を実行します。export HELM_REPOSITORY_CONFIG=repo.yaml のように環境変数を設定してください。Terraform と統合する場合は Helm プロバイダーを使用します。HCL で次のように定義します:resource "helm_release" "nginx" { name = "myrelease" chart = "stable/nginx" set { name = "service.type" value = "LoadBalancer" } }。競合を避けるには、Helm の --wait フラグを Kubernetes オペレーターと併用してください。
エラー処理
よくあるエラーには、「chart not found」(helm repo update の実行で解決)、権限の問題(kubectl create clusterrolebinding で RBAC を設定)、フックの失敗(helm status で確認)などがあります。デプロイに失敗した場合は、helm history release-name でリビジョンを確認し、helm rollback release-name 0 でロールバックします。無効な値が原因でチャートのインストールに失敗する場合は、まず yamllint values.yaml などのリンターで YAML を検証してください。根本原因を調べるには、必ず kubectl get events --namespace dev で Kubernetes イベントを確認してください。
具体的な使用例
- WordPress のチャートをインストールする:
helm repo add bitnami https://charts.bitnami.com/bitnamiでリポジトリを追加し、次にインストールします:helm install mywordpress bitnami/wordpress --set wordpressUsername=admin --set wordpressPassword=$WP_PASSWORD --namespace web。これにより、カスタム認証情報で WordPress がデプロイされます。セキュリティのため、$WP_PASSWORDが環境変数として設定されていることを確認してください。 - 既存の MongoDB リリースをアップグレードする:まず、
helm install mymongo bitnami/mongodb --set auth.enabled=trueでインストールし、次にアップグレードします:helm upgrade mymongo bitnami/mongodb --set resources.requests.memory=512Mi --namespace db。これによりリソースがスケールされます。helm status mymongoで状態を確認してください。
グラフ上の関係
- 関連:kubernetes(デプロイに不可欠な依存関係)
- 同じ場所に配置:devops-sre クラスター(kubectl、terraform などのツールと共有)
- タグ:helm、kubernetes、package-manager(クラスター内の類似スキルへのリンク)