概要
Helmは、Kubernetesクラスターにアプリケーションをデプロイおよび管理するために不可欠なツールです。チャートリポジトリからアプリケーションを検索、インストールし、バージョン管理を通じてアップグレードやロールバックを実行できます。これにより、複雑なKubernetesリソースを単一の論理単位としてまとめて管理できます。
主な機能
Helmが提供するコア機能は以下の通りです。
- Kubernetesアプリケーションのパッケージング(チャート)
- チャートリポジトリの管理と検索
- アプリケーションのデプロイ、アップグレード、ロールバック
- リリース管理と履歴追跡
- テンプレートによる柔軟な設定
インストール
HelmはほとんどのLinuxディストリビューションにデフォルトで含まれていないため、手動でインストールする必要があります。以下に一般的なインストール方法を示します。
スクリプトを使用したインストール(推奨)
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
公式インストールスクリプトを使用してHelmをインストールする、最も一般的で推奨される方法です。
Homebrewを使用したインストール(macOS/Linux)
brew install helm
Homebrewパッケージマネージャーを使用している場合、次のコマンドでHelmをインストールできます。
aptを使用したインストール(Debian/Ubuntu)
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
DebianまたはUbuntuベースのシステムでは、aptパッケージマネージャーを介してHelmをインストールできます。
主なサブコマンド
Helmコマンドは、さまざまなサブコマンド(subcommands)を通じてKubernetesアプリケーションの管理を柔軟に行うことができます。以下は、よく使用される主なサブコマンドです。
リリース管理
チャート管理
情報照会
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`helm` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
Helmの主要機能を使用してKubernetesアプリケーションを管理するいくつかの例です。
チャートリポジトリの追加
helm repo add bitnami https://charts.bitnami.com/bitnami
Bitnamiチャートリポジトリを追加して、さまざまなアプリケーションチャートを使用できるようにします。
チャートリポジトリの更新
helm repo update
追加されたすべてのチャートリポジトリの情報を最新の状態に更新します。
チャートの検索
helm search repo nginx
リポジトリで「nginx」というキーワードを含むチャートを検索します。
チャートのインストール
helm install my-nginx bitnami/nginx
「my-nginx」という名前でBitnamiのNginxチャートをインストールします。
リリース一覧の確認
helm list
現在KubernetesクラスターにデプロイされているすべてのHelmリリースの一覧を確認します。
リリースのアップグレード
helm upgrade my-nginx bitnami/nginx --set service.type=NodePort
既存の「my-nginx」リリースをアップグレードし、同時にNginxサービスタイプをNodePortに変更します。
リリースのアンインストール
helm uninstall my-nginx
「my-nginx」という名前のリリースの関連リソースをすべて削除します。
ヒントと注意点
Helmを効果的に使用し、潜在的な問題を回避するためのヒントと注意点です。
Helmチャートの開発と検証
独自のチャートを開発したり、既存のチャートを修正したりする際に役立つヒントです。
- `helm create <チャート名>`コマンドで基本的なチャート構造を作成し、`values.yaml`とテンプレートファイルを編集してアプリケーションを定義できます。
- `helm lint <チャートパス>`を使用してチャートの有効性を検証し、潜在的なエラーや警告を事前に発見してください。これはデプロイ前に問題を解決するのに役立ちます。
安全なリリース管理
デプロイやアップグレード時に発生する可能性のあるリスクを軽減する方法です。
- `helm install`または`helm upgrade`時に`--dry-run --debug`オプションを併用して、実際のデプロイ前にレンダリングされたYAMLマニフェストを確認してください。これは予期しない変更やエラーを事前に把握するのに非常に役立ちます。
- Helm 3以降、リリース削除時に`--purge`オプションは不要で、デフォルトですべてのリソースが削除されます。リリース履歴を保持したい場合は、`helm uninstall --keep-history <リリース名>`を使用してください。
ネームスペースの指定
リリースを特定のKubernetesネームスペースにデプロイする方法です。
- 説明: `helm install`または`helm upgrade`時に`--namespace <ネームスペース名>`オプションを使用して、特定のネームスペースにリリースをデプロイできます。もしそのネームスペースが存在しない場合は、`--create-namespace`オプションを追加して自動的に作成できます。