用語集

チャート

Kubernetesクラスターに一連のKubernetesリソースをインストールするのに十分な情報を含むHelmパッケージ。

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

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

チャートアーカイブ

*チャートアーカイブ*は、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`コマンドです。

来歴(来歴ファイル)

Helmチャートには、チャートの出所と内容に関する情報を提供する*来歴ファイル*が付属している場合があります。

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

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

来歴ファイルには`.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リソースのインストール、アップグレード、クエリ、および削除のためにKubernetes APIサーバーと直接やり取りするGoコードを指します。CLIの代わりにHelmをクライアントライブラリとして使用するために、プロジェクトにインポートできます。

リポジトリ(リポジトリ、チャートリポジトリ)

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

チャートリポジトリサーバーは、チャートのバッチを記述する`index.yaml`ファイルを提供し、各チャートをどこからダウンロードできるかに関する情報を提供する単純なHTTPサーバーです。(多くのチャートリポジトリは、`index.yaml`ファイルだけでなくチャートも提供します。)

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

チャートレジストリ(OCIベースのレジストリ)

Helmチャートレジストリは、Helmチャートパッケージをホストおよび共有するために使用されるOCIベースのストレージおよび配信システムです。詳細については、レジストリに関するHelmドキュメントを参照してください。

値(値ファイル、values.yaml)

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

Helm Chartsは「パラメータ化」されており、チャートの開発者はインストール時に上書き可能な設定を公開することができます。たとえば、チャートはサービスのユーザー名を設定できるusernameフィールドを公開することがあります。

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

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