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, sein Verschlüsselungsschlüssel und seine Sicherheitsgruppen. In diesem Dokument wird beschrieben, wie Sie diese und andere häufige Aktualisierungen an einem Knotenpool vornehmen.
Dieses Dokument enthält jedoch keine vollständige Liste der Update-Befehle.
Wenn Sie einen Parameter aktualisieren müssen, der in diesem Dokument nicht beschrieben wird, 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 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. Der Übersichtlichkeit halber wird in diesem Dokument jedoch gezeigt, wie jeweils ein einzelner Parameter aktualisiert wird.
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.
Wenn Sie die Knotenpoolversion ändern möchten, geben Sie die neue Version 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, 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, 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, die Ihren Cluster verwaltet.INSTANCE_TYPE
: der neue AWS-Maschineninstanztyp für diesen Knotenpool. Beispiel:m5.xlarge
.
Bei Aktualisierungen des Instanztyps des Knotenpools 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 der aktualisierte Instanztyp weiterhin x86-CPUs verwenden und nicht eine 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 an einen Knotenpool angehängten 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 an den Knotenpool angehängt werden sollen.
Für Cluster mit GKE-Version 1.25 oder höher kann das Update dynamisch ohne Neustart der Knoten durchgeführt werden. Dies ist der empfohlene Ansatz für Cluster mit GKE v1.25 oder höher.
Für dynamische Aktualisierungen muss die Rolle des API-Dienst-Agents die folgenden AWS IAM-Berechtigungen haben:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Diese Berechtigungen werden der API-Dienst-Agent-Rolle automatisch zugewiesen, wenn Sie beim Erstellen des Clusters die Standard-API-Dienst-Agent-Rolle 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 Updates, da bei Rolling Updates Knoten neu gestartet werden, bei dynamischen Updates jedoch nicht. 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 Knotenpool-Sicherheitsgruppen.
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
: 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 kann0
oder höher sein.MAX_NODES
: ist die maximale Anzahl an Knoten, die der Knotenpool enthalten darf. Der Wert muss mindestens1
und größer oder gleich dem Wert vonMIN_NODES
sein.
Weitere Informationen zum Anpassen der Größe 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 Folgen
Beim Anpassen 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 dem neuen angegebenen Bereich entspricht, nimmt GKE on AWS keine Anpassungen an der Anzahl der Knoten vor.
- Mindestanzahl erhöhen: Wenn die neue Mindestanzahl von Knoten höher ist als die vorhandene Anzahl, fügt GKE on AWS Knoten hinzu, bis die neu definierte Mindestgröße erreicht ist.
- Maximum verringern: Wenn Sie die maximale Anzahl von Knoten in einen Wert ändern, der niedriger als die vorhandene Anzahl ist, führt GKE on AWS die folgenden Aktionen aus:
- Deaktiviert 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 beendet und er wird dann beendet. Dieser Vorgang wird fortgesetzt, bis die angegebene maximale Größe erreicht ist.
- Ändert die Autoscaling-Gruppe des Knotenpools, um sie an die neue maximale Größe anzupassen.
- Aktiviert 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
Damit die Verfügbarkeit von Arbeitslasten während der Größenanpassung von Knotenpools gewährleistet ist, bietet GKE on AWS die folgenden Sicherheitsmaßnahmen:
Während des Ausgleichs eines Knotens berücksichtigt GKE on AWS die
PodDisruptionBudget
-Konfiguration bis zu einer Stunde lang. 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
Um zu prüfen, ob das Update erfolgreich war, können Sie den Status des Knotenpools mit dem folgenden Befehl prüfen:
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 Aktualisierungen für den Knotenpool auszuführen, und führt dann eine Systemdiagnose durch. Wenn einer der Aktualisierungsschritte fehlschlägt, wird der Knotenpoolstatus als DEGRADED
markiert.
Updatevorgang 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
des Updates, das Sie abbrechen möchten. Eine Liste der Vorgänge finden Sie unter gcloud container aws operations list.
Nachdem Sie die OPERATION_NAME
identifiziert 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
Wenn Sie ein laufendes Knotenpool-Update abbrechen, werden bereits abgeschlossene Knoten-Updates nicht rückgängig gemacht. Dies kann zu einem teilweise aktualisierten Knotenpool führen.