Knotenpool aktualisieren

Nachdem Sie einen Cluster erstellt haben, können Sie seine Knotenpools ändern. Es können nur bestimmte Parameter eines Knotenpools aktualisiert werden, z. B. Größe, Verschlüsselungsschlüssel und Sicherheitsgruppen. In diesem Dokument wird beschrieben, wie Sie diese und andere häufige Aktualisierungen an einem Knotenpool ausführen.

Dieses Dokument enthält jedoch keine vollständige Liste der Updatebefehle. Wenn Sie einen Parameter aktualisieren möchten, der in diesem Dokument nicht beschrieben ist, lesen Sie die Dokumentation zu gcloud container aws node-pools update und projects.locations.awsNodePools.patch.

Hinweise

Zum Aktualisieren eines Knotenpools benötigen Sie die folgende IAM-Berechtigung (Identity and Access Management): gkemulticloud.googleapis.com/awsNodePools.update.

Eine Anleitung zum Verwalten von Berechtigungen finden Sie unter Nutzern IAM-Rollen zuweisen.

Knotenpool aktualisieren

In den folgenden Abschnitten wird beschrieben, wie Sie verschiedene Änderungen an einem Knotenpool vornehmen. Ein Knotenpool besteht aus einer Gruppe von Knoten in einem Cluster, die dieselbe Konfiguration haben. Alle Knoten in einem Cluster müssen zu einem Knotenpool gehören.

Sie können mehrere Parameter eines Knotenpools gleichzeitig aktualisieren, indem Sie sie alle in einem Befehl angeben. Der Vollständigkeit halber wird in diesem Dokument jedoch gezeigt, wie Sie jeweils einen einzelnen Parameter aktualisieren.

Knotenpoolversion ändern

In GKE on AWS bedeutet das Ändern der Knotenpoolversion, dass die GKE-Version geändert wird, die auf den Knoten in diesem Knotenpool ausgeführt wird.

Wenn Sie die Knotenpoolversion ändern möchten, geben Sie die neue Version mit dem Flag node-version in folgendem Befehl an:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --node-version NODE_POOL_VERSION

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME: der Name des Knotenpools, der aktualisiert werden soll.
  • CLUSTER_NAME: ist der Name des Clusters, an den der Knotenpool angehängt werden soll.
  • GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region, die Ihren Cluster verwaltet. Beispiel: us-west1
  • NODE_POOL_VERSION: die neue unterstützte Knotenpoolversion.

Instanztyp des Knotenpools aktualisieren

Der Instanztyp eines Knotenpools ist der Typ der AWS EC2-Instanz, mit der die Knoten in einem Knotenpool erstellt werden. Der Instanztyp m5.xlarge hat beispielsweise 4 vCPUs, 16 GB Arbeitsspeicher und 32 GB SSD-Speicher.

Wenn Sie den Instanztyp Ihres Knotenpools ändern möchten, geben Sie den neuen Instanztyp mit dem Flag instance-type in folgendem Befehl an:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --instance-type=INSTANCE_TYPE

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME: Der Name des Knotenpools.
  • CLUSTER_NAME: Der Name Ihres Clusters.
  • GOOGLE_CLOUD_LOCATION: die Google Cloud Region, die Ihren Cluster verwaltet.
  • INSTANCE_TYPE: der neue AWS-Maschineninstanztyp für diesen Knotenpool. Beispiel: m5.xlarge.

Durch Änderungen am Knotenpool-Instanztyp darf sich die zugrunde liegende CPU-Architektur der EC2-Instanz nicht ändern. Wenn in Ihrem ursprünglichen Knotenpool beispielsweise Instanzen mit x86-CPUs verwendet werden, muss für den aktualisierten Instanztyp weiterhin eine x86-CPU verwendet werden und keine andere Architektur.

Eine vollständige Liste der unterstützten Instanzen und ihrer zugrunde liegenden Architekturen finden Sie unter Unterstützte AWS-Instanztypen.

Verschlüsselungsschlüssel eines Knotenpools rotieren

Informationen zum Aktualisieren der KMS-Verschlüsselungsschlüssel Ihres Knotenpools finden Sie unter Schlüsselrotation.

Sicherheitsgruppen für Knotenpools ersetzen

Führen Sie den folgenden Befehl aus, um die mit einem Knotenpool verknüpften Sicherheitsgruppen zu aktualisieren:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --security-group-ids=SECURITY_GROUP_IDS

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME: der Name des Knotenpools, der aktualisiert werden soll.
  • CLUSTER_NAME: Der Name Ihres Clusters.
  • GOOGLE_CLOUD_LOCATION: die Google Cloud Region, die Ihren Cluster verwaltet.
  • SECURITY_GROUP_IDS: Eine durch Kommas getrennte Liste von Sicherheitsgruppen, die dem Knotenpool hinzugefügt werden sollen.

Bei Clustern mit GKE-Version 1.25 oder höher kann das Update dynamisch durchgeführt werden, ohne dass die Knoten neu gestartet werden müssen. Dies ist die empfohlene Vorgehensweise für Cluster, in denen GKE v1.25 oder höher verwendet wird.

Damit dynamische Aktualisierungen durchgeführt werden können, muss die Rolle des API-Dienstmitarbeiters die folgenden AWS IAM-Berechtigungen haben:

  • ec2:ModifyInstanceAttribute
  • ec2:DescribeInstances

Diese Berechtigungen werden der Rolle „API-Dienst-Agent“ automatisch zugewiesen, wenn Sie beim Erstellen des Clusters die Standardrolle „API-Dienst-Agent“ auswählen.

Bei Clustern mit älteren GKE-Versionen oder Clustern mit Version 1.25 oder höher, bei denen der API-Dienst-Agent jedoch nicht berechtigt ist, ein dynamisches Update durchzuführen, wird das Update per Rolling-Update durchgeführt. Rolling Updates sind störender als dynamische Updates, da bei Rolling Updates Knoten neu gestartet werden, während dies bei dynamischen Updates nicht der Fall ist. Weitere Informationen zu Rolling Updates finden Sie unter Surge-Updates.

Sicherheitsgruppen für Knotenpools entfernen

Mit dem folgenden Befehl können Sie alle nicht standardmäßigen Sicherheitsgruppen entfernen, die mit Ihrem Knotenpool verknüpft sind. Weitere Informationen zu Standardsicherheitsgruppen finden Sie unter Sicherheitsgruppen für Knotenpools.

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --clear-security-group-ids

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME: der Name des Knotenpools, der aktualisiert werden soll.
  • CLUSTER_NAME: Der Name Ihres Clusters.
  • GOOGLE_CLOUD_LOCATION: die Google Cloud Region, die Ihren Cluster verwaltet.

Größe eines Knotenpools ändern

Wenn Sie die Größe Ihres Knotenpools (d. h. die Anzahl der Knoten im Knotenpool) ändern möchten, weisen Sie den Flags min-nodes und max-nodes im folgenden Befehl neue Werte zu:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME: der Name des Knotenpools, der aktualisiert werden soll.
  • CLUSTER_NAME: ist der Name des Clusters, an den der Knotenpool angehängt werden soll.
  • GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region, die Ihren Cluster verwaltet. Beispiel: us-west1
  • MIN_NODES: ist die Mindestanzahl von Knoten, die der Knotenpool enthalten kann. Der Wert kann 0 oder höher sein.
  • MAX_NODES: ist die maximale Anzahl an Knoten, die der Knotenpool enthalten darf. Der Wert muss mindestens 1 und größer oder gleich MIN_NODES sein.

Weitere Informationen zur Größenanpassung von Knotenpools

Bevor Sie die Größe eines Knotenpools ändern, sollten Sie die potenziellen Auswirkungen auf Ihre Arbeitslasten bewerten.

Aktionen zum Ändern der Größe und ihre Auswirkungen

Wenn Sie die Größe von Knotenpools ändern, werden je nach neuer Konfiguration und aktuellem Status der Knoten unterschiedliche Aktionen ausgelöst. Es ist wichtig, diese Aktionen und ihre Auswirkungen zu verstehen:

  • Keine Änderung: Wenn die aktuelle Knotenanzahl bereits dem neuen angegebenen Bereich entspricht, nimmt GKE on AWS keine Anpassungen an der Anzahl der Knoten vor.
  • Mindestgröße erhöhen: Wenn die neue Mindestanzahl von Knoten höher als die aktuelle Anzahl ist, fügt GKE on AWS schrittweise Knoten hinzu, bis die neu definierte Mindestgröße erreicht ist.
  • Maximalwert verringern: Wenn Sie die maximale Knotenanzahl in einen Wert ändern, der unter der aktuellen Anzahl liegt, führt GKE on AWS die folgenden Aktionen aus:
    • Deaktiviert die Cluster Autoscaler.
    • Die Autoscaling-Gruppe für den Knotenpool wird auf die angegebene Mindestgröße festgelegt.
    • Hier können Sie einzelne Knoten zum Entfernen auswählen. Jeder Knoten wird abgesperrt, von seinen Aufgaben befreit und dann beendet. Dieser Vorgang wird fortgesetzt, bis die angegebene maximale Größe erreicht ist.
    • Die Autoscaling-Gruppe des Knotenpools wird an die neue maximale Größe angepasst.
    • Die Cluster Autoscaler wird wieder aktiviert, sobald die maximale Größe erreicht ist.

Weitere Informationen zu Cluster Autoscaler finden Sie unter Cluster Autoscaler.

Arbeitslastschutz bei der Größenanpassung

Um die ständige Verfügbarkeit von Arbeitslasten während der Größenanpassung von Knotenpools zu gewährleisten, bietet GKE on AWS die folgenden Sicherheitsvorkehrungen:

  • Während des Ausrichtens von Knoten berücksichtigt GKE on AWS die PodDisruptionBudget-Konfiguration bis zu eine Stunde lang. Pods, die nach diesem Zeitraum noch auf dem Knoten vorhanden sind, werden gelöscht.

  • Wenn Knoten neu gestartet oder entfernt werden sollen, fährt GKE on AWS sie ordnungsgemäß herunter und wartet bis zu zwei Stunden. Wenn nach diesem Zeitraum noch Pods auf dem Knoten vorhanden sind, wird die zugrunde liegende VM-Instanz gelöscht.

Status des Knotenpools prüfen

Sie können den Status des Knotenpools mit dem folgenden Befehl prüfen, um festzustellen, ob das Update erfolgreich war:

gcloud container aws node-pools describe NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION

Ersetzen Sie Folgendes:

  • NODE_POOL_NAME: Der Name des Knotenpools.
  • CLUSTER_NAME: Der Name Ihres Clusters.
  • GOOGLE_CLOUD_LOCATION: die Google Cloud Region, die Ihren Cluster verwaltet.

GKE on AWS versucht, die angeforderten Updates am Knotenpool auszuführen und führt dann eine Systemdiagnose durch. Wenn einer der Updateschritte fehlschlägt, wird der Knotenpoolstatus als DEGRADED markiert.

Aktualisierungsvorgang abbrechen

Bevor Sie ein laufendes Knotenpool-Update abbrechen können, müssen Sie den Namen des laufenden Vorgangs ermitteln. Führen Sie den folgenden Befehl aus, um die laufenden Vorgänge und ihre jeweiligen Namen aufzulisten:

gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
    --location GOOGLE_CLOUD_LOCATION

Ersetzen Sie GOOGLE_CLOUD_LOCATION durch die unterstützte Google Cloud Region, in der Ihr Cluster verwaltet wird. Beispiel: us-west1

Suchen Sie in der Ausgabe des Befehls nach der OPERATION_NAME der Aktualisierung, die Sie stornieren möchten. Eine Liste der Vorgänge finden Sie unter gcloud container aws operations list.

Nachdem Sie die OPERATION_NAME ermittelt haben, können Sie den Vorgang mit dem folgenden Befehl abbrechen:

gcloud container aws operations cancel OPERATION_NAME
    --location GOOGLE_CLOUD_LOCATION

Ersetzen Sie Folgendes:

  • OPERATION_NAME: Der Name des Aktualisierungsvorgangs.
  • GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region, die Ihren Cluster verwaltet. Beispiel: us-west1

Hinweis: Wenn Sie ein laufendes Knotenpool-Update abbrechen, werden bereits abgeschlossene Knotenupdates nicht rückgängig gemacht. Dies kann zu einem teilweise aktualisierten Knotenpool führen.