用語集

チャート

Kubernetes リソースのセットを Kubernetes クラスターにインストールするのに 十分な情報が含まれている Helm パッケージ。

チャートには、Chart.yaml ファイル、テンプレート、デフォルト値 (values.yaml)、 依存関係が含まれています。

チャートは明確に定義されたディレクトリ構造で開発され、 Chart アーカイブ と呼ばれるアーカイブ形式にパッケージ化されます。

Chart アーカイブ

Chart アーカイブ は、tar 形式で gzip 圧縮された (オプションで署名された) チャートです。

チャートの依存関係 (サブチャート)

チャートは他のチャートに依存する場合があります。依存関係が発生する方法は2つあります。

  • ソフトな依存関係: 別のチャートがクラスターにインストールされていないと、チャートが機能しない可能性があります。 Helm はこの場合のツールを提供していません。 この場合、依存関係は個別に管理できます。
  • ハードな依存関係: チャートには、(charts/ ディレクトリ内に) 依存する別のチャートが含まれる場合があります。 この場合、チャートをインストールすると、 その依存関係がすべてインストールされます。 この場合、チャートとその依存関係はコレクションとして管理されます。

チャートが (helm package を介して) パッケージ化されると、 そのすべてのハードな依存関係がチャートにバンドルされます。

チャートのバージョン

チャートは、 SemVer 2 仕様 に従ってバージョン管理されています。 すべてのチャートにバージョン番号が必要です。

Chart.yaml

チャートに関する情報は、Chart.yaml と呼ばれる特別なファイルに保存されます。 すべてのチャートにこのファイルが必要です。

Helm (と helm)

Helm は Kubernetes のパッケージマネージャーです。 オペレーティングシステムのパッケージマネージャーを使用すると、OS にツールを簡単にインストールできます。 Helm を使用すると、アプリケーションやリソースを Kubernetes クラスターに簡単にインストールできます。

Helm はプロジェクトの名前ですが、コマンドラインクライアントの名前も helm です。 慣例により、プロジェクトについて言うとき、Helm は大文字です。 クライアントの場合、helm は小文字です。

Helm 設定ファイル (XDG)

Helm は構成ファイルを XDG ディレクトリに保存します。 これらのディレクトリは、helm が初めて実行されたときに作成されます。

Kube Config (KUBECONFIG)

Helm クライアントは、Kube config ファイル形式のファイルを使用して、 Kubernetes クラスターについて学習します。 デフォルトでは、Helm はこのファイルを kubectl が作成した場所 ($HOME/.kube/config) で見つけようとします。

Lint (Linting)

チャートを lint するには、それが Helm チャート標準の規則と要件に従っていることを検証します。 Helm はこれを行うためのツール、 特に helm lint コマンドを提供します。

Provenance (Provenance ファイル)

Helm チャートには、チャートの出所とその内容に関する情報を提供する Provenance ファイル が添付されている場合があります。

Provenance ファイルは、Helm のセキュリティストーリーの一部です。 Provenance には、Chart アーカイブファイルの暗号化ハッシュ、Chart.yaml データ、 および署名ブロック (OpenPGP "clearsign" ブロック) が含まれています。 キーチェーンと組み合わせると、チャートユーザーは次のことができるようになります。

  • チャートが信頼できる当事者によって署名されたことを検証する
  • チャートのファイルが改ざんされていないことを検証する
  • チャートのメタデータ (Chart.yaml) の内容を検証する
  • チャートをその Provenance データにすばやく一致させる

Provenance ファイルには .prov 拡張子が付いており、 チャートリポジトリサーバーまたはその他の HTTP サーバーから提供できます。

リリース

チャートがインストールされると、 Helm ライブラリはそのインストールを追跡するための リリース を作成します。

1 つのチャートを同じクラスターに何度もインストールして、さまざまなリリースを作成できます。 たとえば、helm install を異なるリリース名で 3 回実行することで、 3 つの PostgreSQL データベースをインストールできます。

リリース番号 (リリースバージョン)

1 つのリリースを複数回更新することができます。 シーケンシャルカウンタは、リリースの変更を追跡するために使用されます。 最初に helm install を実行すると、リリース番号 は 1 になります。 リリースがアップグレードされたり、ロールバックされたりするたびに、リリース番号は増加します。

ロールバック

リリースは、新しいチャートまたは構成にアップグレードできます。 ただし、リリース履歴が保存されているため、リリースを前のリリース番号に ロールバックする こともできます。 これは、helm rollback コマンドで行われます。

重要なのは、ロールバックされたリリースには新しいリリース番号が付与されます。

操作リリース番号
インストールリリース 1
アップグレードリリース 2
アップグレードリリース 3
ロールバック 1リリース 4 (ただし リリース 1 と同じ構成を実行している)

上の表は、インストール、アップグレード、およびロールバックで リリース番号がどのように増加するかを示しています。

Helm ライブラリ (または SDK)

Helm ライブラリ (または SDK) は、Kubernetes API サーバーと直接対話して、 Kubernetes リソースをインストール、アップグレード、クエリ、および削除する Go コードを指します。 プロジェクトにインポートして、 CLI の代わりに Helm をクライアントライブラリとして使用できます。

リポジトリ (レポ, チャートリポジトリ)

Helm チャートは、チャートリポジトリ (リポジトリ、または単に_レポ_) と呼ばれる 専用の HTTP サーバに保存できます。

チャートリポジトリサーバは、 チャートのバッチを記述する index.yaml ファイルを提供できるシンプルな HTTP サーバであり、 各チャートのダウンロード元に関する情報を提供します。 (多くのチャートリポジトリは、チャートと index.yaml ファイルを提供します。)

Helm クライアントは、0個以上のチャートリポジトリを指すことができます。 デフォルトでは、Helm クライアントはチャートリポジトリで構成されていません。 チャートリポジトリは、helm repo add コマンドを使用していつでも追加できます。

Values (Values ファイル, values.yaml)

Values は、テンプレートのデフォルトを独自の情報で上書きする方法を提供します。

Helm チャートは「パラメータ化」されています。 つまり、チャートの開発者は、インストール時にオーバーライドできる構成を公開することがあります。 たとえば、チャートは、サービスのユーザー名を設定できる username フィールドを公開する場合があります。

これらの公開された変数は、Helm の用語では values と呼ばれます。

Values は、helm install および helm upgrade の操作中に直接渡すか、 または values.yaml ファイルを使用して設定できます。