Knotenlabels und -markierungen für vorhandene Knotenpools aktualisieren


Diese Seite enthält eine Anleitung zum dynamischen Aktualisieren der Knotenlabels und Knotenmarkierungen eines vorhandenen Knotenpools in einem GKE-Standardcluster (Google Kubernetes Engine).

Außerdem können Sie Netzwerk-Tags in GKE Autopilot- oder Standard-Clustern dynamisch anwenden und aktualisieren. Eine Anleitung finden Sie unter Netzwerk-Tags verwenden, um Firewallregeln auf Knoten anzuwenden.

Übersicht

Knoten-Markierungen und Labels befinden sich in den Objektmetadaten von Kubernetes-Knoten. Labels werden verwendet, um Pods für bestimmte Knoten zu planen. Dabei können Markierungen verwendet werden, um Pods voneinander zu trennen.

Mit der Kubernetes Engine API können Sie Aktualisierungen auf den Knotenlabels und Knotenmarkierungen eines vorhandenen GKE-Knotenpools anwenden, ohne den Knotenpool neu erstellen oder laufende Arbeitslasten unterbrechen zu müssen. Die aktualisierte Knotenpoolkonfiguration wird in GKE beibehalten, sodass zukünftige Knotenpools und neue Knotenbereitstellungen im Knotenpool die neue Konfiguration verwenden.

Beschränkungen

Es gibt einige Einschränkungen bei der Verwendung der Kubernetes Engine API zum dynamischen Aktualisieren von Knotenpoolkonfigurationen:

  • Die Version für den Knotenpool muss mindestens 1.19.7-gke.1500 sein.
  • Die Version der Steuerungsebene des Clusters muss mindestens 1.23.4-gke.300 sein, um Aktualisierungen auf Knotenlabels oder Knotenmarkierungen auf vorhandene Knotenpools mit aktiviertem Cluster Autoscaler anzuwenden. Für Cluster mit früheren Versionen können Sie die folgende Problemumgehung verwenden: Autoscaling deaktivieren für den Knotenpool und aktualisieren Sie dann die Knotenlabels und/oder Markierungen. Nachdem Sie die Updates angewendet haben, aktivieren Sie das Autoscaling wieder.

Knotenlabels aktualisieren

Verwenden Sie den folgenden Befehl, um Knotenlabels für einen Knotenpool zu aktualisieren:

gcloud container node-pools update NODEPOOL_NAME \
    --node-labels=[NODE_LABEL,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG ]

Dabei gilt:

  • NODEPOOL_NAME: der Name des Knotenpools, der aktualisiert werden soll.
  • [NODE_LABEL,...]: die gewünschten neuen Knotenlabels (z. B. label1=value1,label2=value2).
  • CLUSTER_NAME: der Name des Clusters.
  • REGION: die Compute Engine-Region für den Cluster.
  • ZONE: die Compute Engine-Zone für den Cluster.

Knotenmarkierungen aktualisieren

Verwenden Sie den folgenden Befehl, um Knotenmarkierungen für einen Knotenpool zu aktualisieren:

gcloud container node-pools update NODEPOOL_NAME \
    --node-taints=[NODE_TAINT,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG ]

Dabei gilt:

  • NODEPOOL_NAME: der Name des Knotenpools, der aktualisiert werden soll.
  • [NODE_TAINT,...]: die gewünschten neuen Knotenmarkierungen (z. B. key1=val1:NoSchedule,key2=val2:PreferNoSchedule).
  • CLUSTER_NAME ist der Name des Clusters.
  • REGION: die Compute Engine-Region für den Cluster.
  • ZONE: die Compute Engine-Zone für den Cluster.

Nächste Schritte