Diese Seite bietet eine Übersicht zu Clusterlabels und Knotenpoollabels in Google Kubernetes Engine (GKE).
GKE-Cluster- und -Knotenpoollabels und Kubernetes-Labels
GKE-Cluster- und Knotenpoollabels unterscheiden sich von Labels in Kubernetes. Die beiden Labeling-Systeme funktionieren unabhängig und übernehmen keine Labels oder teilen sie.
GKE-Cluster- und Knotenpoollabels sind beliebige Metadaten, die an Ihre Ressourcen angehängt werden. Sie können damit Nutzungs- und Zahlungsinformationen verfolgen.
Unabhängig davon verwendet das System in Kubernetes Labels intern, um Clusterkomponenten und -ressourcen (z. B. Pods und Knoten) miteinander zu verknüpfen und Ressourcenlebenszyklen zu verwalten. Sie können Kuberneteslabels mit der Kubernetes API bearbeiten. Sie können die GKE API auch verwenden, um Kuberneteslabels auf Ihren Knoten mit Clustererstellung oder mit einem Clusterupdate zu bearbeiten.
Was sind Clusterlabels?
Ein Clusterlabel ist ein Schlüssel/Wert-Paar, das Sie Google Cloud-Clustern zuweisen können. Clusterlabels helfen Ihnen dabei, diese Ressourcen zu organisieren und Ihre Kosten in großem Umfang mit der erforderlichen Detailgenauigkeit zu verwalten. Sie können jeder Ressource ein Label zuweisen und dann die Ressourcen basierend auf ihren Labels filtern. Informationen zu Labels werden an das Abrechnungssystem weitergeleitet, sodass Sie die abgerechneten Gebühren nach Label aufschlüsseln können. Dank integrierter Abrechnungsberichte können Sie Kosten nach Ressourcenlabels filtern und gruppieren. Sie können Labels auch verwenden, um Abrechnungsdatenexporte abzufragen.
Anforderungen für Clusterlabels
Für die auf Ressourcen angewendeten Clusterlabels gilt Folgendes:
- Jede Ressource kann bis zu 64 Clusterlabels haben.
- Jedes Clusterlabel muss ein Schlüssel/Wert-Paar sein.
- Schlüssel haben eine Mindestlänge von einem Zeichen und eine maximale Länge von 63 Zeichen und dürfen nicht leer sein. Werte dürfen leer sein und haben eine maximale Länge von 63 Zeichen.
- Schlüssel und Werte dürfen nur Kleinbuchstaben, Ziffern, Unterstriche und Bindestriche enthalten. Alle Zeichen müssen UTF-8-codiert sein. Internationale Zeichen sind zulässig. Schlüssel müssen mit einem Kleinbuchstaben oder einem internationalen Zeichen beginnen.
- Der Schlüsselabschnitt eines Cluster-Labels darf in einer einzelnen Ressource nur einmal vorkommen. Sie können jedoch denselben Schlüssel für mehrere Ressourcen verwenden.
Die Limits gelten für den Schlüssel und den Wert für jedes Clusterlabel und für die einzelnen Google Cloud-Ressourcen, die Clusterlabels haben. Es gibt keine Beschränkung, wie viele Clusterlabels Sie auf alle Ressourcen in einem Projekt anwenden können.
Einsatzmöglichkeiten von Clusterlabels
Im Folgenden werden einige gängige Anwendungsfälle für Clusterlabels aufgeführt:
Clusterlabels für Teams oder Kostenstellen: Fügen Sie Labels basierend auf einem Team oder einer Kostenstelle hinzu, um zwischen den Clustern zu unterscheiden, die verschiedenen Teams angehören (z. B.
team:research
undteam:analytics
). Sie können diese Art von Label für die Kostenabrechnung oder Budgetplanung nutzen.Clusterlabels für Komponenten: Zum Beispiel
component:redis
,component:frontend
,component:ingest
undcomponent:dashboard
.Clusterlabels für Umgebungen oder Stagings: Zum Beispiel
environment:production
undenvironment:test
.Clusterlabels für Zustände: Zum Beispiel
state:active
,state:readytodelete
undstate:archive
.Clusterlabels für Eigentumsrechte: Werden verwendet, um die Teams zu identifizieren, die für den Betrieb verantwortlich sind, z. B.
team:shopping-cart
.
- Abrechnungsaufschlüsselung: Verwenden Sie Knotenpoollabels, um Ihre in Rechnung gestellten Gebühren nach Knotenpool aufzuschlüsseln. Weitere Informationen finden Sie unter Detaillierte Aufschlüsselung der Clusterkosten ansehen.
Es wird empfohlen, nicht zu viele eindeutige Labels zu erstellen, etwa für Zeitstempel oder einzelne Werte für jeden API-Aufruf. Das Problem bei diesem Ansatz besteht darin, dass es schwierig ist, Ressourcen effektiv zu filtern und Berichte über sie zu erstellen, wenn sich die Werte häufig ändern oder wenn Schlüssel verwendet werden, die den Katalog überlasten.
Labels und Tags
Labels können als abfragbare Annotationen für Ressourcen verwendet werden, aber nicht zum Festlegen von Bedingungen für Richtlinien. Mit Tags können Sie Richtlinien auf Basis der Bedingung genehmigen oder ablehnen, ob eine Ressource ein bestimmtes Tag hat. Dazu müssen Sie eine detaillierte Richtlinienkontrolle ermöglichen. Weitere Informationen finden Sie in der Tag-Übersicht.
Automatisch angewendete Labels
GKE wendet automatisch mehrere Labels auf Clusterressourcen an.
GKE wendet beispielsweise Labels auf Compute Engine-Instanzen, nichtflüchtige Speicher und Beschleuniger (TPUs) an.
Die folgende Tabelle enthält die -Labels, die GKE automatisch auf Ressourcen anwendet:
Label | Angewendete Ressourcen |
---|---|
goog-gke-node |
Compute Engine-VM-Instanz, die einem GKE-Knoten zugrunde liegt |
goog-gke-volume |
Nichtflüchtiger Compute Engine-Speicher, der an eine VM-Instanz angehängt ist, die einem GKE-Knoten zugrunde liegt |
goog-gke-tpu |
Cloud TPU in GKE |
goog-k8s-cluster-name |
Compute Engine-VM-Instanz und nichtflüchtige Speicher, die an eine VM-Instanz angehängt sind, die einem GKE-Knoten zugrunde liegt. |
goog-k8s-cluster-location |
Compute Engine-VM-Instanz und nichtflüchtige Speicher, die an eine VM-Instanz angehängt sind, die einem GKE-Knoten zugrunde liegt. |
goog-k8s-node-pool-name |
Compute Engine-VM-Instanzen und ihre Bootlaufwerke, die einem GKE-Knoten zugrunde liegen. |
goog-fleet-project |
Compute Engine-VM-Instanzen und nichtflüchtige Speicher, die an eine VM-Instanz angehängt sind, die einem GKE-Knoten zugrunde liegt, wenn der Cluster bei einer Flotte registriert ist. |
Bearbeiten und löschen Sie keine reservierten Labels. Alle Änderungen, die Sie an reservierten -Labels vornehmen, werden automatisch abgeglichen.
Labelverteilung
In GKE können Sie Labels auf Cluster und auf Knotenpools im Standardmodus anwenden. Wenn Sie einen Cluster mit einem Label versehen, wird dieses Label an alle einzelnen Ressourcen des Clusters weitergegeben, z. B. an Knoten, Instanzen und nichtflüchtige Speicher. Wenn Sie einen Knotenpool mit einem Label versehen, wird dieses Label an die einzelnen Ressourcen des Knotenpools wie Instanzen und nichtflüchtige Speicher weitergegeben. Wenn in Standardclustern die Clusterlabels mit Knotenpoollabels in Konflikt stehen, z. B. wenn der Labelschlüssel derselbe ist, der Wert aber unterschiedlich ist, haben Knotenpoollabels Vorrang vor den Clusterlabels.
Alle Labels, die Sie auf Ihre Cluster oder Knotenpools anwenden, werden stündlich über einen Hintergrundprozess weitergegeben. Es kann bis zu eine Stunde dauern, bis ein Label auf alle Ressourcen in einem Cluster angewendet wurde. Darüber hinaus werden Labels nur an Compute Engine-Instanzen und nichtflüchtige Speicher weitergegeben, die an Compute Engine-Instanzen angehängt sind. Andere Ressourcen wie Arbeitslasten, Weiterleitungsregeln, IP-Adressen und nicht angehängte nichtflüchtige Speicher erhalten kein Label.
Wenn in Standardclustern Cluster- und Knotenpool-Labels auf Compute Engine-Ressourcen angewendet werden, können Sie die Ressourcenlabels manuell ändern, ohne dass diese Änderungen von GKE genehmigt werden. In Autopilot-Clustern können Sie die Labels für die Compute Engine-Ressourcen nicht manuell ändern, da GKE die Knoten für Sie verwaltet. Wir empfehlen jedoch, diese Labels über GKE zu verwalten. Vorhandene Labels in diesen Compute Engine-Ressourcen werden von GKE nur entfernt, wenn sie mit den automatisch angewendeten Labels in Konflikt stehen.
Hinweis
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
Labelfingerabdrücke für API-Requests abrufen
Sie können diesen Schritt überspringen, wenn Sie die Google Cloud Console oder die gcloud CLI verwenden.
Wenn Sie Labels in der GKE API aktualisieren oder einfügen, müssen Sie mit der Anfrage den neuesten Clusterlabel-Fingerabdruck angeben, um Konflikte mit anderen Anfragen zu vermeiden.
Stellen Sie eine GET
-Anfrage beim entsprechenden Cluster, um den neuesten Clusterlabel-Fingerabdruck abzurufen. Beispiel:
GET https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster
Die Ausgabe sieht etwa so aus:
200 OK
{
"name": "mycluster",
"description": "production-cluster",
"initialNodeCount": 3,
...
"resourceLabels": {
"environment": "production",
...
},
"labelFingerprint": "p1ty_9HoBk0="
}
In dieser Ausgabe ist das Attribut labelFingerprint
der Fingerabdruck des Clusterlabels.
Cluster mit Labels erstellen
Sie können mithilfe der gcloud CLI, der Google Cloud Console, der GKE API oder Terraform Autopilot- und Standard-Cluster mit Labels erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um einen Autopilot-Cluster mit Labels zu erstellen:
gcloud container clusters create-auto CLUSTER_NAME \
--labels=KEY=VALUE
Mit dem folgenden Befehl erstellen Sie einen Standard-Cluster mit Labels:
gcloud container clusters create CLUSTER_NAME \
--labels=KEY=VALUE
Ersetzen Sie Folgendes:
CLUSTER_NAME
ist der Name des Clusters.KEY
: Der Schlüssel für das Schlüssel/Wert-Paar des Labels.VALUE
: Der Wert für das Schlüssel/Wert-Paar des Labels.
Console
So fügen Sie beim Erstellen eines Clusters Labels hinzu:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie auf add_box Erstellen.
Klicken Sie für Autopilot oder Standard auf Konfigurieren.
Konfigurieren Sie den Cluster.
Klicken Sie im Navigationsbereich unter Cluster auf Metadaten.
Klicken Sie auf add Label hinzufügen.
Fügen Sie Labels hinzu.
Klicken Sie auf Erstellen.
API
Wenn Sie beim Erstellen eines Clusters ein Label einfügen möchten, geben Sie das Objekt resourceLabels
im Objekt cluster
an, das Sie für projects.zones.clusters.create zur Verfügung stellen.
Terraform
Informationen zum Erstellen eines Autopilot-Clusters mit Labels mithilfe von Terraform finden Sie im folgenden Beispiel:
Informationen zum Erstellen eines Standard-Clusters mit Labels mithilfe von Terraform finden Sie im folgenden Beispiel:
Weitere Informationen zur Verwendung von Terraform finden Sie unter Terraform-Unterstützung für GKE.
Labels zu vorhandenen Clustern hinzufügen oder aktualisieren
Sie können Labels für vorhandene Autopilot- und Standardcluster über die gcloud CLI, die Google Cloud Console oder die GKE API hinzufügen oder aktualisieren.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud container clusters update CLUSTER_NAME \
--region=COMPUTE_REGION \
--update-labels=KEY=VALUE
Ersetzen Sie Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters.COMPUTE_REGION
: die Compute Engine-Region für den neuen Cluster. Verwenden Sie für zonale Standardcluster--zone=COMPUTE_ZONE
.KEY
: Der Schlüssel für das Schlüssel/Wert-Paar des Labels.VALUE
: Der Wert für das Schlüssel/Wert-Paar des Labels.
Durch die Labelaktualisierung werden alle vorhandenen Labels im Cluster überschrieben. Wenn Sie vorhandene Labels des Clusters übernehmen möchten, müssen Sie diese Labels zusammen mit allen neu hinzuzufügenden Labels in die Anfrage aufnehmen.
Console
So fügen Sie Labels hinzu oder aktualisieren sie:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie auf der Seite Clusterdetails die Kästchen für einen oder mehrere Cluster an, die Sie ändern möchten.
Klicken Sie auf
Labels.Fügen Sie Labels hinzu oder aktualisieren Sie welche.
Klicken Sie auf Speichern.
API
Senden Sie eine POST
-Anfrage an die Methode resourceLabels
des Clusters. Die Anfrage muss den neuesten Fingerabdruck und eine vollständige Liste der anzuwendenden Labels enthalten.
Wenn Sie die bisherigen Labels des Clusters übernehmen möchten, muss die Anfrage, ähnlich wie bei Metadaten und Tags, neben den neu hinzuzufügenden auch diese bisherigen Labels enthalten.
Durch das folgende Snippet wird beispielsweise eine Anfrage an die Methode resourceLabels
gestellt:
POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels
{
"resourceLabels": {
"environment": "production",
"an-existing-tag": ""
},
"labelFingerprint": "42WmSpB8rSM="
}
Clusterlabels entfernen
Sie können Labels aus Autopilot- und Standardclustern über die gcloud CLI, die Google Cloud Console oder die GKE API entfernen.
gcloud
Führen Sie den Befehl update
mit dem Flag --remove-labels
aus:
gcloud container clusters update CLUSTER_NAME \
--remove-labels=KEYS
Dabei gilt:
CLUSTER_NAME
ist der Name des Clusters.KEYS
ist eine durch Kommas getrennte Liste von Schlüsseln für die Labels, die Sie entfernen möchten.
Console
So entfernen Sie Labels:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf die Kästchen für einen oder mehrere Cluster, die Sie ändern möchten.
Klicken Sie auf
Labels.Klicken Sie für die Labels, die Sie löschen möchten, neben dem Feld Wert auf delete Element löschen.
Klicken Sie auf Speichern.
API
Stellen Sie für den entsprechenden Cluster eine POST
-Anfrage an die Methode resourceLabels
. Geben Sie den aktuellen labelsFingerprint
und eine leere Labelliste an, um alle Labels zu entfernen, oder geben Sie eine Liste mit den Labels an, die Sie beibehalten möchten. Geben Sie in diesem Fall nicht die Labels an, die Sie entfernen möchten. Beispiel:
Request
POST https://container.googleapis.com/v1/projects/myproject/zones/us-central1-f/clusters/example-cluster/resourceLabels
{
"resourceLabels": { },
"labelFingerprint": "42WmSpB8rSM="
}
Standard-Knotenpool mit Labels erstellen
Sie können einen Knotenpool mit Labels in einem Standardcluster mit der gcloud CLI, der Google Cloud Console oder der GKE API erstellen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--region=COMPUTE_REGION \
--labels=KEY=VALUE
Dabei gilt:
NODE_POOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.KEY
: Der Schlüssel für das Schlüssel/Wert-Paar des Labels.VALUE
: Der Wert für das Schlüssel/Wert-Paar des Labels.
API
Wenn Sie beim Erstellen eines Knotenpools ein Label einfügen möchten, geben Sie das Objekt resourceLabels
im Knotenpoolobjekt an, das Sie für projects.zones.clusters.nodePools.create
bereitstellen.
Console
So fügen Sie einem neuen Knotenpool Labels hinzu:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie auf der Seite Clusterdetails auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie auf Knotenpool hinzufügen add_box.
Konfigurieren Sie den neuen Knotenpool.
Klicken Sie im Navigationsbereich auf Metadaten.
Klicken Sie auf add Label hinzufügen.
Fügen Sie Labels hinzu.
Klicken Sie auf Erstellen.
Labels zu einem vorhandenen Knotenpool hinzufügen oder aktualisieren
Sie können Labels über die gcloud CLI, die Google Cloud Console oder die GKE API hinzufügen oder aktualisieren.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--region=COMPUTE_REGION \
--labels=KEY=VALUE
Dabei gilt:
NODE_POOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.KEY
: Der Schlüssel für das Schlüssel/Wert-Paar des Labels.VALUE
: Der Wert für das Schlüssel/Wert-Paar des Labels.
Durch die Labelaktualisierung werden alle vorhandenen Labels im Knotenpool überschrieben. Wenn Sie vorhandene Labels des Knotenpools übernehmen möchten, müssen Sie diese Labels zusammen mit allen neu hinzuzufügenden Labels in die Anfrage aufnehmen.
API
Wenn Sie beim Ändern des Knotenpools ein Label einfügen möchten, geben Sie das Objekt resourceLabels
im Knotenpoolobjekt an, das Sie für projects.zones.clusters.nodePools.update
bereitstellen.
Console
So fügen Sie Labels hinzu oder aktualisieren sie:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, der den Knotenpool enthält, den Sie ändern möchten.
Klicken Sie im Bereich Knotenpools auf den Namen des Knotenpools, dessen Größe Sie anpassen möchten.
Klicken Sie auf editBearbeiten .
Fügen Sie im Bereich Labels Labels hinzu oder aktualisieren Sie welche.
Klicken Sie auf Speichern.
Knotenpoollabels entfernen
Sie können Labels aus Knotenpools mithilfe der gcloud CLI, der Google Cloud Console oder der GKE API entfernen.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--region=COMPUTE_REGION \
--labels=KEY=VALUE
Dabei gilt:
NODE_POOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.KEY
: Der Schlüssel für das Schlüssel/Wert-Paar des Labels.VALUE
: Der Wert für das Schlüssel/Wert-Paar des Labels.
Durch die Labelaktualisierung werden alle vorhandenen Labels im Knotenpool überschrieben. Wenn der Knotenpool bereits vorhandene Labels hat, die Sie beibehalten möchten, müssen Sie alle Labels ausschließen, die Sie entfernen möchten. Wenn Sie alle Labels entfernen möchten, verwenden Sie --labels=
ohne Schlüssel/Wert-Paare.
API
Wenn Sie beim Ändern des Knotenpools ein Label einfügen möchten, geben Sie das Objekt resourceLabels
im Knotenpoolobjekt an, das Sie für projects.zones.clusters.nodePools.update
bereitstellen.
Geben Sie eine leere Labelliste an, um alle Labels zu entfernen, oder geben Sie eine Liste mit den Labels an, die Sie beibehalten möchten. Lassen Sie die zu entfernenden Labels weg.
Console
So entfernen Sie Labels aus einem Knotenpool:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, der den Knotenpool enthält, den Sie ändern möchten.
Klicken Sie im Bereich Knotenpools auf den Namen des Knotenpools, dessen Größe Sie anpassen möchten.
Klicken Sie für die Labels, die Sie löschen möchten, neben dem Feld Wert auf delete Element löschen.
Klicken Sie auf Speichern.