ラベルとアノテーション
ベストプラクティスガイドのこの部分では、チャートでラベルとアノテーションを使用するためのベストプラクティスについて説明します。
ラベルとアノテーションのどちらですか?
メタデータ項目は、以下の条件でラベルにする必要があります。
- Kubernetesがこのリソースを識別するために使用する
- システムのクエリを目的として、オペレーターに公開すると役立つ
たとえば、オペレーターが特定のチャートのすべてのインスタンスを簡単に見つけられるように、helm.sh/chart: NAME-VERSION
をラベルとして使用することをお勧めします。
メタデータ項目がクエリに使用されない場合は、代わりにアノテーションとして設定する必要があります。
Helmフックは常にアノテーションです。
標準ラベル
次の表は、Helmチャートが使用する一般的なラベルを定義しています。Helm自体は、特定のラベルが存在することを決して要求しません。RECとマークされたラベルは推奨されており、グローバルな一貫性のためにチャートに配置する必要があります。OPTとマークされたものはオプションです。これらは慣用的または一般的に使用されていますが、運用上の目的で頻繁に依存することはありません。
名前 | ステータス | 説明 |
---|---|---|
app.kubernetes.io/name | REC | これは、アプリケーション全体を反映したアプリケーション名である必要があります。通常、これには{{ template "name" . }} が使用されます。これは多くのKubernetesマニフェストで使用されており、Helm固有のものではありません。 |
helm.sh/chart | REC | これは、チャート名とバージョンである必要があります:{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 。 |
app.kubernetes.io/managed-by | REC | これは常に{{ .Release.Service }} に設定する必要があります。Helmによって管理されているすべてのものを見つけるためのものです。 |
app.kubernetes.io/instance | REC | これは{{ .Release.Name }} である必要があります。同じアプリケーションの異なるインスタンスを区別するのに役立ちます。 |
app.kubernetes.io/version | OPT | アプリケーションのバージョンであり、{{ .Chart.AppVersion }} に設定できます。 |
app.kubernetes.io/component | OPT | これは、アプリケーション内で各要素が果たす異なる役割をマークするための一般的なラベルです。たとえば、app.kubernetes.io/component: frontend 。 |
app.kubernetes.io/part-of | OPT | 複数のチャートまたはソフトウェアが組み合わせて1つのアプリケーションを作成する場合。たとえば、Webサイトを作成するためのアプリケーションソフトウェアとデータベース。これは、サポートされている最上位のアプリケーションに設定できます。 |
app.kubernetes.io
というプレフィックスが付いたKubernetesラベルの詳細については、Kubernetesドキュメントを参照してください。