用語集
チャート
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
ファイルを使用することで設定できます。