Zum Hauptinhalt springen
Version: 3.19.0

Labels und Annotationen

Dieser Teil des Best-Practices-Leitfadens behandelt Best Practices für die Verwendung von Labels und Annotationen in Ihrem Chart.

Ist es ein Label oder eine Annotation?

Ein Metadateneintrag sollte unter folgenden Bedingungen ein Label sein:

  • Es wird von Kubernetes verwendet, um diese Ressource zu identifizieren
  • Es ist nützlich für Administratoren, um das System abzufragen.

Zum Beispiel empfehlen wir, helm.sh/chart: NAME-VERSION als Label zu verwenden, damit Administratoren bequem alle Instanzen eines bestimmten Charts finden können.

Wenn ein Metadateneintrag nicht für Abfragen verwendet wird, sollte er stattdessen als Annotation gesetzt werden.

Helm Hooks sind immer Annotationen.

Standard-Labels

Die folgende Tabelle definiert gängige Labels, die Helm Charts verwenden. Helm selbst erfordert niemals, dass ein bestimmtes Label vorhanden ist. Labels, die mit REC gekennzeichnet sind, werden empfohlen und sollten auf einem Chart für globale Konsistenz gesetzt werden. Die mit OPT gekennzeichneten sind optional. Diese sind üblich oder häufig verwendet, werden aber nicht oft für den Betrieb benötigt.

NameStatusBeschreibung
app.kubernetes.io/nameRECDer App-Name, der die gesamte App widerspiegelt. Üblicherweise wird {{ template "name" . }} dafür verwendet. Wird von vielen Kubernetes-Manifesten verwendet und ist nicht Helm-spezifisch.
helm.sh/chartRECDer Chart-Name und die Version: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}.
app.kubernetes.io/managed-byRECSollte immer auf {{ .Release.Service }} gesetzt werden. Dient dazu, alle von Helm verwalteten Ressourcen zu finden.
app.kubernetes.io/instanceRECSollte {{ .Release.Name }} sein. Hilft bei der Unterscheidung zwischen verschiedenen Instanzen derselben Anwendung.
app.kubernetes.io/versionOPTDie Version der App, kann auf {{ .Chart.AppVersion }} gesetzt werden.
app.kubernetes.io/componentOPTEin gängiges Label zur Kennzeichnung der verschiedenen Rollen, die Komponenten in einer Anwendung spielen können. Zum Beispiel app.kubernetes.io/component: frontend.
app.kubernetes.io/part-ofOPTFür den Fall, dass mehrere Charts oder Software-Komponenten zusammen eine Anwendung bilden. Zum Beispiel Anwendungssoftware und eine Datenbank für eine Website. Kann auf die übergeordnete Anwendung gesetzt werden.

Weitere Informationen zu den Kubernetes-Labels mit dem Präfix app.kubernetes.io finden Sie in der Kubernetes-Dokumentation.