Nachdem Sie einen Cluster erstellt haben, können Sie seine Knotenpools ändern. Nur bestimmte Parameter eines Knotenpools können aktualisiert werden, z. B. seine Größe, der Verschlüsselungsschlüssel und die Sicherheitsgruppen. In diesem Dokument wird erläutert, wie Sie diese und andere häufige Aktualisierungen an einem Knotenpool vornehmen.
Dieses Dokument enthält jedoch keine vollständige Liste der Aktualisierungsbefehle.
Wenn Sie einen Parameter aktualisieren müssen, der in diesem Dokument nicht beschrieben wird,
siehe gcloud container aws node-pools
update und
die projects.locations.awsNodePools.patch
Dokumentation.
Hinweis
Zum Aktualisieren eines Knotenpools benötigen Sie die folgende Berechtigung für 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 erläutert, wie Sie verschiedene Aktualisierungen 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 im selben Befehl angeben. Aus Gründen der Übersichtlichkeit wird in diesem Dokument jedoch gezeigt, wie Sie jeweils einen Parameter aktualisieren.
Knotenpoolversion ändern
Wenn Sie in GKE on AWS die Version eines Knotenpools ändern, ändern Sie die GKE-Version, die auf den Knoten in diesem Knotenpool ausgeführt wird.
Geben Sie die neue Knotenpoolversion mit dem Flag node-version im folgenden 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: der Name des Clusters, an den der Knotenpool angehängt werden soll.GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region , in der Ihr Cluster verwaltet wird. 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, die zum Erstellen der Knoten in einem Knotenpool verwendet wird. 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 im folgenden 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, in der Ihr Cluster verwaltet wird.INSTANCE_TYPE: der neue AWS-Maschineninstanztyp für diesen Knotenpool. Beispiel:m5.xlarge.
Durch Aktualisierungen des Instanztyps des Knotenpools darf sich die zugrunde liegende CPU-Architektur der EC2-Instanz nicht ändern. Wenn Ihr ursprünglicher Knotenpool beispielsweise Instanzen mit x86-CPUs verwendet, müssen Sie für den aktualisierten Instanztyp weiterhin x86-CPUs verwenden.
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 des Knotenpools ersetzen
Führen Sie den folgenden Befehl aus, um die Sicherheitsgruppen zu aktualisieren, die an einen Knotenpool angehängt sind:
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, in der Ihr Cluster verwaltet wird.SECURITY_GROUP_IDS: eine durch Kommas getrennte Liste der Sicherheitsgruppen, die an den Knotenpool angehängt werden sollen.
Bei Clustern mit GKE-Version 1.25 oder höher kann die Aktualisierung dynamisch erfolgen, ohne dass die Knoten neu gestartet werden müssen. Dies ist der empfohlene Ansatz für Cluster mit GKE-Version 1.25 oder höher.
Für dynamische Aktualisierungen muss Ihre API-Dienst-Agent-Rolle die folgenden AWS IAM-Berechtigungen haben:
ec2:ModifyInstanceAttributeec2:DescribeInstances
Diese Berechtigungen werden der API-Dienst-Agent-Rolle automatisch zugewiesen, wenn Sie die Standardrolle für den API-Dienst-Agent beim Erstellen des Clusters auswählen.
Bei Clustern mit früheren GKE-Versionen oder Clustern mit Version 1.25 oder höher, bei denen der API-Dienst-Agent nicht die Berechtigungen zum Ausführen einer dynamischen Aktualisierung hat, wird die Aktualisierung mit einem Rolling Update durchgeführt. Rolling Updates sind störender als dynamische Aktualisierungen, da bei Rolling Updates Knoten neu gestartet werden, bei dynamischen Aktualisierungen jedoch nicht. Weitere Informationen zu Rolling Updates finden Sie unter Surge Updates.
Sicherheitsgruppen des Knotenpools entfernen
Sie können alle nicht standardmäßigen Sicherheitsgruppen entfernen, die an Ihren Knotenpool angehängt sind, indem Sie den folgenden Befehl ausführen. Weitere Informationen zu Standardsicherheits gruppen 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, in der Ihr Cluster verwaltet wird.
Größe eines Knotenpools ändern
Wenn Sie die Größe Ihres Knotenpools ändern möchten (d. h. die Anzahl der Knoten im Knotenpool), 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: der Name des Clusters, an den der Knotenpool angehängt werden soll.GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region , in der Ihr Cluster verwaltet wird. Beispiel:us-west1.MIN_NODES: die Mindestanzahl der Knoten, die der Knotenpool enthalten kann. Der Wert kann0oder höher sein.MAX_NODES: die maximale Anzahl der Knoten, die der Knotenpool enthalten kann. Der Wert muss mindestens1und größer oder gleich dem Wert vonMIN_NODESsein.
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 zur Größenanpassung und ihre Folgen
Beim Ändern der Größe von Knotenpools 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 mit dem neuen angegebenen Bereich übereinstimmt, nimmt GKE on AWS keine Anpassungen an der Anzahl der Knoten vor.
- Mindestanzahl erhöhen: Wenn die neue Mindestanzahl von Knoten höher als die vorhandene Anzahl ist, fügt GKE on AWS Knoten schrittweise hinzu, bis die neu definierte Mindestgröße erreicht ist.
- Maximale Anzahl verringern: Wenn Sie die maximale Knotenanzahl auf einen Wert ändern,
der niedriger als die vorhandene Anzahl ist, führt GKE on AWS die folgenden
Aktionen aus:
- Deaktiviert den Cluster Autoscaler.
- Legt die Autoscaling-Gruppe für den Knotenpool auf die angegebene Mindestgröße fest.
- Wählt einzelne Knoten zum Entfernen aus. Jeder Knoten wird isoliert, seine Aufgaben werden entfernt und er wird beendet. Dieser Vorgang wird fortgesetzt, bis die angegebene maximale Größe erreicht ist.
- Ändert die Autoscaling-Gruppe des Knotenpools entsprechend der neuen maximalen Größe.
- Aktiviert den Cluster Autoscaler wieder, sobald die maximale Größe erreicht ist.
Weitere Informationen zum Cluster Autoscaler finden Sie unter Cluster Autoscaler.
Arbeitslastschutz während der Größenanpassung
Um die kontinuierliche Verfügbarkeit von Arbeitslasten während der Größenanpassung von Knotenpools zu gewährleisten, bietet GKE on AWS die folgenden Schutzmaßnahmen:
Während des Entleerens eines Knotens berücksichtigt GKE on AWS die Konfiguration von
PodDisruptionBudgetbis zu einer Stunde. Pods, die nach diesem Zeitraum noch auf dem Knoten vorhanden sind, werden gelöscht.Wenn Knoten neu gestartet oder entfernt werden sollen, sorgt GKE on AWS für ein ordnungsgemäßes Herunterfahren 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
Mit dem folgenden Befehl können Sie den Status des Knotenpools prüfen, um zu bestätigen, dass die Aktualisierung 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, in der Ihr Cluster verwaltet wird.
GKE on AWS versucht, die angeforderten Aktualisierungen am Knotenpool vorzunehmen, und führt dann eine Systemdiagnose durch. Wenn einer der Aktualisierungsschritte fehlschlägt, wird der Knotenpoolstatus als DEGRADED markiert.
Aktualisierungsvorgang abbrechen
Bevor Sie eine laufende Aktualisierung des Knotenpools abbrechen können, müssen Sie den Namen des Vorgangs ermitteln. Führen Sie den folgenden Befehl aus, um die laufenden Vorgänge und ihre 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 dem OPERATION_NAME der Aktualisierung, die Sie abbrechen möchten. Eine Liste der Vorgänge finden Sie unter
gcloud container aws operations list.
Sobald Sie den 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 , in der Ihr Cluster verwaltet wird. Beispiel:us-west1.
Wenn Sie eine laufende Aktualisierung des Knotenpools abbrechen, werden Knotenaktualisierungen, die bereits abgeschlossen sind, nicht rückgängig gemacht. Dies kann zu einem teilweise aktualisierten Knotenpool führen.