mcpField
H
helm

helm

github.com/alphaonedevクラウド・DevOps45 回インストール
リポジトリ

helm について

helm は Kubernetes アプリケーションをクラスターにデプロイ、管理するチーム向けのパッケージマネージャーです。Chart、テンプレート、バージョン管理されたリポジトリを使い、リリースの更新やロールバックを行えます。

主な機能

  1. 01Chart によるアプリのパッケージ化
  2. 02テンプレートと values ファイルでのデプロイ調整
  3. 03バージョン管理された Chart リポジトリ
  4. 04リリースの更新とロールバック
  5. 05Kubernetes RBAC による操作制御

活用シーン

  1. 01Kubernetes クラスターへのアプリ導入
  2. 02環境ごとのデプロイ設定の調整
  3. 03CI/CD ワークフローでのマイクロサービス展開
  4. 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 イベントを確認してください。

具体的な使用例

  1. 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 が環境変数として設定されていることを確認してください。
  2. 既存の 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(クラスター内の類似スキルへのリンク)

コメント