ホーム > その他外部パッケージ > helm

helm: Kubernetesパッケージマネージャー

Helmは、Kubernetesアプリケーションの定義、インストール、アップグレードに使用されるパッケージマネージャーです。「チャート(Charts)」というパッケージング形式を使用して、複雑なアプリケーションのデプロイと管理を容易にします。Kubernetes環境でのアプリケーションのデプロイとライフサイクル管理を簡素化するために不可欠なツールです。

概要

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`オプションを追加して自動的に作成できます。

同じカテゴリのコマンド