Clusterlabels erstellen und verwalten

Diese Seite bietet eine Übersicht zu Clusterlabels in GKE.

Was sind Clusterlabels?

Ein Clusterlabel ist ein Schlüssel/Wert-Paar, mit dem Sie Ihre Google Cloud-Cluster organisieren können. Sie können jeder Ressource ein Label zuweisen und dann die Ressourcen nach Labels filtern. Informationen zu Labels werden an das Abrechnungssystem weitergeleitet, sodass Sie Ihre Rechnungsaufstellung nach Labels aufschlüsseln können.

Einsatzmöglichkeiten von Clusterlabels

Es wird empfohlen, nicht zu viele eindeutige Labels zu erstellen, etwa für Zeitstempel oder einzelne Werte für jeden API-Aufruf. 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 und team: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 und component:dashboard.

  • Clusterlabels für Umgebungen oder Stagings: Zum Beispiel environment:production und environment:test.

  • Clusterlabels für Zustände: Zum Beispiel state:active, state:readytodelete und state:archive.

Anforderungen für Clusterlabels

Für die auf Ressourcen angewendeten Clusterlabels gilt Folgendes:

  • Jede Ressource kann mehrere Clusterlabels haben, bis maximal 64.
  • 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.
  • Der Schlüsselabschnitt eines Labels darf nur einmal vergeben worden sein. Sie können jedoch denselben Schlüssel für mehrere Ressourcen verwenden.
  • Schlüssel müssen mit einem Kleinbuchstaben oder einem internationalen Zeichen beginnen.

Hinweise

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

Mit den folgenden Methoden können Sie die gcloud-Einstellungen festlegen:

  • Verwenden Sie gcloud init, wenn Sie die Standardeinstellungen ansehen möchten.
  • Verwenden Sie gcloud config, um Ihre Projekt-ID, Zone und Region individuell festzulegen.

gcloud init verwenden

Wenn Sie die Fehlermeldung One of [--zone, --region] must be supplied: Please specify location erhalten, führen Sie diesen Abschnitt aus.

  1. Führen Sie gcloud init aus und folgen Sie der Anleitung:

    gcloud init

    Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag --console-only verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:

    gcloud init --console-only
  2. Folgen Sie der Anleitung, um gcloud zur Verwendung Ihres Google Cloud-Kontos zu autorisieren.
  3. Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
  4. Wählen Sie ein Google Cloud-Projekt aus.
  5. Wählen Sie eine Compute Engine-Standardzone aus.

gcloud config verwenden

  • Geben Sie Ihre standardmäßige Projekt-ID an:
    gcloud config set project project-id
  • Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Standardzone für Compute Engine fest:
    gcloud config set compute/zone compute-zone
  • Wenn Sie mit regionalen Clustern arbeiten, legen Sie die Standardregion für Compute Engine fest:
    gcloud config set compute/region compute-region
  • Aktualisieren Sie gcloud auf die neueste Version:
    gcloud components update

Automatisch angewendete Labels

Nachdem Cluster erstellt wurden, wendet GKE automatisch mehrere Labels auf die Clusterressourcen an. GKE wendet beispielsweise Labels auf Compute Engine-Instanzen, nichtflüchtige Speicher und Beschleuniger (TPUs) an. Automatisch angewendete Labels haben ein spezielles goog-gke--Präfix.

Die folgenden goog-gke--Labels werden automatisch auf GKE-Ressourcen angewendet. Alle Änderungen, die Sie für die reservierten goog-gke--Labels von der Compute Engine- oder der GKE-Clusterebene vornehmen, werden automatisch abgeglichen. Deshalb wird das Bearbeiten oder Löschen dieser reservierten Labels nicht empfohlen.

Label Angewendete Ressourcen
goog-gke-node GKE-Knoten
goog-gke-volume An GKE-Knoten angehängte nichtflüchtige Speicher
goog-gke-tpu Cloud TPU in GKE

Cluster mit Labels versehen

In GKE werden Labels auf Clusterebene vergeben. Wenn Sie einen Cluster mit einem Label kennzeichnen, wird dieses Label von den einzelnen Ressourcen des Clusters übernommen (z. B. von Knoten und nichtflüchtigem Speicher).

Sie können Clusterlabels mit der Google Cloud Console, dem gcloud-Befehlszeilentool oder der GKE API hinzufügen, aktualisieren und entfernen.

Labelfingerabdrücke für API-Anfragen abrufen

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

Suchen Sie in der Antwort nach dem Attribut labelFingerprint:

200 OK

{

 "name": "mycluster",
 "description": "test-cluster",
 "initialNodeCount": 3,
 ...
 "resourceLabels": {
    "env": "test",
    ...
  },
  "labelFingerprint": "p1ty_9HoBk0="
}

Cluster mit Labels erstellen

Wenn Sie einen Cluster mit Labels erstellen möchten, können Sie das gcloud-Tool, die Google Cloud Console oder die GKE API verwenden.

gcloud

Führen Sie diesen Befehl aus:

gcloud container clusters create [CLUSTER_NAME] --labels [KEY]=[VALUE]

Beispiel:

gcloud container clusters create example-cluster --labels env=dev

Console

So fügen Sie beim Erstellen eines Clusters Label hinzu:

  1. Rufen Sie in der Cloud Console das Google Kubernetes Engine-Menü auf.

    Google Kubernetes Engine-Menü aufrufen

  2. Klicken Sie auf Cluster erstellen.

  3. Konfigurieren Sie den Cluster nach Bedarf.

  4. Klicken Sie im Navigationsbereich unter Cluster auf Metadaten.

  5. Klicken Sie auf Label hinzufügen.

  6. Fügen Sie Labels hinzu.

  7. 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.

Labels nachträglich Clustern hinzufügen oder aktualisieren

gcloud

Führen Sie den folgenden Befehl aus, um Labels mit dem gcloud-Tool zu aktualisieren:

gcloud container clusters update [CLUSTER_NAME] --update-labels [KEY]=[VALUE]

Beispiel:

gcloud container clusters update example-cluster --update-labels env=dev,release=stable

Durch die Labelaktualisierung werden alle bereits vorhandenen Labels überschrieben. Wenn Sie die bisherigen 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:

  1. Rufen Sie in der Cloud Console das Google Kubernetes Engine-Menü auf.

    Google Kubernetes Engine-Menü aufrufen

  2. Klicken Sie zum Hinzufügen von Labels zu einem einzelnen Cluster auf dessen Schaltfläche "Bearbeiten" (Stiftsymbol).

    1. Klicken Sie auf Labels hinzufügen und fügen Sie ein oder mehrere Labels hinzu.
    2. Klicken Sie auf Speichern.
  3. So fügen Sie Labels mehreren Clustern gleichzeitig hinzu:

    1. Setzen Sie ein Häkchen bei den Clustern, denen Sie ein Label hinzufügen möchten.
    2. Klicken Sie auf Infofeld anzeigen, um die Spalte mit den Labels einzublenden, falls diese nicht bereits angezeigt wird.
    3. Aktualisieren Sie die Labels oder fügen Sie neue hinzu.
    4. Klicken Sie auf Speichern.

API

Senden Sie zum Aktualisieren von Labels die Anfrage POST 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": {
  "env": "test",
  "an-existing-tag": ""
 },
 "labelFingerprint": "42WmSpB8rSM="
}

Clusterlabels entfernen

gcloud

Führen Sie mit dem gcloud-Befehlszeilentool den Befehl update mit dem Flag --remove-labels aus. Geben Sie die Schlüssel der Labels an, die entfernt werden sollen. Beispiel:

gcloud container clusters update example-cluster --remove-labels env

Console

So entfernen Sie ein Label:

  1. Rufen Sie in der Cloud Console das Google Kubernetes Engine-Menü auf.

    Google Kubernetes Engine-Menü aufrufen

  2. Klicken Sie zum Entfernen von Labels aus einem einzelnen Cluster auf dessen Schaltfläche "Bearbeiten" (Stiftsymbol).

    1. Klicken Sie neben einem Label auf X, um es zu entfernen.
    2. Klicken Sie auf Speichern.
  3. So entfernen Sie gleichzeitig Labels aus mehreren Clustern:

    1. Setzen Sie ein Häkchen bei den Clustern, von denen Sie Labels entfernen möchten.
    2. Klicken Sie zum Einblenden der Spalte mit den Labels auf Infofeld anzeigen, falls diese nicht bereits angezeigt wird.
    3. Klicken Sie neben allen Labels, die Sie entfernen möchten, auf X.
    4. Klicken Sie auf Speichern.

API

Stellen Sie in der API 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="
}

Weitere Informationen

GKE-Übersicht