Artifact Hub から公開チャートを見つけてインストールする
他の人がすでに書いたチャートを探し、インストール前に内容を確認し、必要なものだけを上書きします。
Kubernetes で動かしたいインフラソフトウェアのほとんど、つまりモニタリングスタック、ingress コントローラー、データベースには、すでに公開されているチャートがあります。このガイドでは、それを見つける方法、導入を決める前に実際に何をインストールするのかを確認する方法、そして環境に合わせてそのデフォルトを上書きする方法を説明します。
先にリポジトリを追加せずに検索する
helm search hub prometheus
helm search hub は、Artifact Hub を検索します。これは CNCF による、多くの異なるリポジトリのチャート(およびその他のクラウドネイティブなパッケージ)のインデックスで、先にそのリポジトリをローカルに追加する必要はありません。何が公開されていて、誰が公開しているかを確認する最も手早い方法です。artifacthub.io を直接閲覧すると、同じカタログを、選択肢の比較、チャートの README の確認、最終更新日の確認に適した、より良いインターフェースで見ることができます。(この検索はかつて別の「Helm Hub」を経由していました。そのサービスは 2020 年に廃止されて Artifact Hub に統合されたので、helm search hub は何年も前から Artifact Hub に対して問い合わせています。)
リポジトリを追加して、追加したものを検索する
ソースを選んだら、それを追加してローカルで検索します。
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm search repo prometheus-community
helm repo add は、名前でチャートリポジトリを登録します。helm repo update は、追加された各リポジトリが提供するものの、Helm のローカルなインデックスを更新します。helm search repo(注:hub ではなく repo)は、すでに追加したリポジトリだけを検索します。チャートの入手先が分かっていれば、日常的にはこれを使います。helm repo list は、現在登録されているものをすべて表示します。
インストール前にチャートを確認する
チャートを、特に広い権限を持つものやストレージを管理するものを、確認せずにインストールしてはいけません。
helm show chart prometheus-community/prometheus
helm show readme prometheus-community/prometheus
helm show values prometheus-community/prometheus
show chart はメタデータ(バージョン、メンテナー、依存関係)を表示します。show readme は公開者自身によるインストールと設定のメモで、通常、チャートが何を期待しているかを知る最も手早い方法です。show values は、デフォルトの values.yaml 全体を出力します。これは上書きできるものの実際のリファレンスであり、どの README よりも網羅的です。
独自の上書きでインストールする
helm install monitoring prometheus-community/prometheus \
-n monitoring --create-namespace \
--set server.retention=15d \
--set alertmanager.persistentVolume.size=10Gi
--create-namespace で、kubectl create namespace を別に実行する手間が省けます。環境ごとの values のガイドの内容は、ここにもすべて当てはまります。簡単なテスト以上のものでは、--set フラグを積み重ねるのではなく、上書きを values ファイルに書いて -f で渡し、インストールしたものが、バージョン管理されたファイルから再現できるようにしてください。
# monitoring-values.yaml
server:
retention: 15d
alertmanager:
persistentVolume:
size: 10Gi
helm upgrade --install monitoring prometheus-community/prometheus \
-n monitoring --create-namespace -f monitoring-values.yaml
バージョンを意図的に固定する
--version がない場合、helm install は利用可能な最新のチャートバージョンを使います。これは、values ファイルを書いた時点と、実際にコマンドを実行する時点の間で変わる可能性があります。
helm search repo prometheus-community/prometheus --versions
helm install monitoring prometheus-community/prometheus --version 25.8.0 -n monitoring
バージョンを固定することは、ローカルな実験を超えるあらゆるものにとって標準的な慣行です。コンテナイメージのタグを latest に浮かせておかずに固定するのと同じ理由です。再現できるデプロイと、前回と同じであったことを願うしかないデプロイとの違いです。
人気のガイド
-
Helm チャートの構造:チャート、values、テンプレート、リリース すべてのチャートに共通するフォルダー構造と、Helm を単なる YAML のバンドラー以上のものにする 3 つの概念。 -
既存のマニフェストから最初の Helm チャートを作成する Deployment、Service、ConfigMap をテンプレート化したチャートに変換し、インストールしてアップグレードします。 -
1 つのチャート、複数の環境:dev、staging、prod 用の values ファイル 環境間で異なる部分だけを上書きし、values がマージされる順序を理解します。 -
リリースを管理する:インストール、アップグレード、ロールバック、アンインストール リリースのライフサイクル全体をカバーするコマンドと、リビジョン履歴がどのようにロールバックを可能にするか。