Auf dieser Seite wird erläutert, wie Sie auf Knotenpools, auf denen Ihre GKE Standard-Cluster (Google Kubernetes Engine) ausgeführt werden, Vorgänge hinzufügen und ausführen. Informationen zur Funktionsweise von Knotenpools finden Sie in diesem Artikel.
Cluster können Vorgänge wie die automatische Knotenbereitstellung auf mehreren Knotenpools parallel ausführen. Sie können einen Knotenpool manuell erstellen, aktualisieren oder löschen, während bereits ein anderer Knotenpool erstellt, aktualisiert oder gelöscht wird.
Diese Anleitung gilt nicht für Autopilot-Cluster, bei denen GKE die Knoten verwaltet und es keine Knotenpools gibt, die Sie verwalten müssen. Weitere Informationen finden Sie in der Autopilot-Übersicht.
Vorbereitung
Führen Sie die folgenden Schritte durch, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
Knotenpool einem Standardcluster hinzufügen
Sie können einem GKE-Standard-Cluster mithilfe der gcloud CLI, der Google Cloud Console oder Terraform einen neuen Knotenpool hinzufügen. GKE unterstützt auch die automatische Knotenbereitstellung, die die Knotenpools in Ihrem Cluster automatisch basierend auf den Skalierungsanforderungen verwaltet.
Als Best Practice empfehlen wir in beiden Fällen, für Ihre Knotenpools ein IAM-Dienstkonto (Identity and Access Management) mit minimalen Berechtigungen zu erstellen und zu verwenden, das anstelle des Compute Engine-Standarddienstkontos verwendet wird. Eine Anleitung zum Erstellen eines Dienstkontos mit minimalen Berechtigungen finden Sie unter Sicherheit von Clustern erhöhen.
gcloud
Führen Sie zum Erstellen eines Knotenpools den Befehl gcloud container node-pools create
aus:
gcloud container node-pools create POOL_NAME \
--cluster CLUSTER_NAME \
--service-account SERVICE_ACCOUNT
Ersetzen Sie dabei Folgendes:
POOL_NAME
: der Name des neuen Knotenpools.CLUSTER_NAME
ist der Name Ihres vorhandenen Clusters.SERVICE_ACCOUNT
: der Name des IAM-Dienstkontos, das von Ihren Knoten verwendet werden soll. Wenn kein Wert angegeben ist, verwendet der Knotenpool das Compute Engine-Standarddienstkonto.- Fügen Sie das Flag
--enable-private-nodes
hinzu, um Knoten über private IP-Adressen bereitzustellen. Sie können dieses Flag in öffentlichen Clustern verwenden, die Private Service Connect verwenden. Wenn Sie Prüfen wollen, ob Ihr Cluster Private Service Connect verwendet, finden Sie unter Öffentliche Cluster mit Private Service Connect weitere Informationen.
Eine vollständige Liste der optionalen Flags, die Sie angeben können, finden Sie in der Dokumentation zu gcloud container node-pools create
.
Die Ausgabe sieht in etwa so aus:
Creating node pool POOL_NAME...done.
Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/us-central1/clusters/CLUSTER_NAME/nodePools/POOL_NAME].
NAME: POOL_NAME
MACHINE_TYPE: e2-medium
DISK_SIZE_GB: 100
NODE_VERSION: 1.21.5-gke.1302
In dieser Ausgabe sehen Sie Details zum Knotenpool, z. B. den Maschinentyp und die GKE-Version, die auf den Knoten ausgeführt werden.
Gelegentlich wird der Knotenpool zwar erfolgreich erstellt, doch der Befehl gcloud
überschreitet das Zeitlimit, anstatt den Status vom Server zu melden. Mit dem folgenden Befehl können Sie den Status aller Knotenpools prüfen, einschließlich der Pools, die noch nicht vollständig bereitgestellt wurden:
gcloud container node-pools list --cluster CLUSTER_NAME
Console
Führen Sie die folgenden Schritte aus, um einen Knotenpool einem vorhandenen Standard-Cluster hinzuzufügen:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie in der Clusterliste auf den Namen des Standard-Clusters, den Sie ändern möchten.
Klicken Sie auf Knotenpool hinzufügen add_box.
Konfigurieren Sie den Knotenpool.
Klicken Sie im Navigationsmenü auf Sicherheit.
Wählen Sie im Drop-down-Menü Dienstkonto das IAM-Dienstkonto aus, das Ihr Knotenpool verwenden soll. Standardmäßig verwendet der Knotenpool das Compute Engine-Standarddienstkonto.
Klicken Sie auf Erstellen, um den Knotenpool hinzuzufügen.
Terraform
Informationen zum Hinzufügen eines Knotenpools zu einem vorhandenen Standard-Cluster mithilfe von Terraform finden Sie im folgenden Beispiel:
Weitere Informationen zur Verwendung von Terraform finden Sie unter Terraform-Unterstützung für GKE.
Knotenpools in einem Standard-Cluster aufrufen
gcloud
Führen Sie zum Auflisten aller Knotenpools eines Standard-Clusters den Befehl gcloud container node-pools list
aus:
gcloud container node-pools list --cluster CLUSTER_NAME
Führen Sie zum Aufrufen der Details eines bestimmten Knotenpools den Befehl gcloud container node-pools describe
aus:
gcloud container node-pools describe POOL_NAME \
--cluster CLUSTER_NAME
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME
ist der Name des Clusters.POOL_NAME
ist der Name des Knotenpools, den Sie sich ansehen möchten.
Console
Führen Sie die folgenden Schritte aus, um Knotenpools für einen Standard-Cluster anzeigen zu lassen:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie in der Clusterliste auf den Namen des Standard-Clusters.
Klicken Sie auf den Tab Knoten.
Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie aufrufen möchten.
Knotenpool skalieren
Sie können die Knotenpools hoch- oder herunterskalieren, um Leistung und Kosten zu optimieren. Mit GKE-Standard-Knotenpools können Sie einen Knotenpool horizontal skalieren, indem Sie die Anzahl der Knoten im Knotenpool ändern oder einen Knotenpool vertikal skalieren, indem Sie die Maschinenattributkonfiguration der Knoten ändern.
Horizontal skalieren, indem Sie die Knotenzahl ändern
gcloud
Mit dem Befehl gcloud container clusters resize
können Sie die Größe der Knotenpools eines Clusters anpassen:
gcloud container clusters resize CLUSTER_NAME \
--node-pool POOL_NAME \
--num-nodes NUM_NODES
Ersetzen Sie dabei Folgendes:
CLUSTER_NAME
ist der Name des Clusters, dessen Größe geändert werden soll.POOL_NAME
ist der Name des Knotenpools, dessen Größe geändert werden soll.NUM_NODES
ist die Anzahl der Knoten im Pool in einem zonalen Cluster. Wenn Sie multizonale oder regionale Cluster verwenden, ist NUM_NODES die Anzahl der Knoten jeder Zone, in der sich der Knotenpool befindet.
Wiederholen Sie diesen Befehl für weitere Knotenpools. Wenn Ihr Cluster nur einen einzigen Knotenpool hat, lassen Sie das Flag --node-pool
weg.
Console
Führen Sie die folgenden Schritte aus, um die Größe des Knotenpools Ihres Clusters zu ändern:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie in der Clusterliste auf den Namen des Standard-Clusters, den Sie ändern möchten.
Klicken Sie auf den Tab Knoten.
Klicken Sie im Bereich Knotenpools auf den Namen des Knotenpools, dessen Größe Sie anpassen möchten.
Klicken Sie auf Größe ändern edit.
Geben Sie im Feld Anzahl der Knoten den gewünschten Wert für den Knotenpool ein und klicken Sie dann auf Größe ändern.
Wiederholen Sie den Vorgang nach Bedarf für weitere Knotenpools.
Vertikale Skalierung durch Änderung der Knotenmaschinenattribute
Sie können den konfigurierten Maschinentyp, den Laufwerktyp und die Laufwerkgröße des Knotenpools ändern.
Wenn Sie eines oder mehrere dieser Maschinenattribute bearbeiten, aktualisiert GKE die Knoten anhand der für den Knotenpool konfigurierten Upgradestrategie auf die neue Konfiguration. Wenn Sie die Blau/Grün-Upgradestrategie konfigurieren, können Sie die Arbeitslasten von den ursprünglichen Knoten zu den neuen Knoten migrieren und dabei die ursprünglichen Knoten zurücksetzen, wenn die Migration fehlschlägt. Prüfen Sie die Upgrade-Einstellungen des Knotenpools, um sicherzustellen, dass die konfigurierte Strategie so ist, wie Ihre Knoten aktualisiert werden sollen.
Aktualisieren Sie mit dem folgenden Befehl mindestens eines der markierten Maschinenattribute:
gcloud container node-pools update POOL_NAME \
--cluster CLUSTER_NAME \
--machine-type MACHINE_TYPE \
--disk-type DISK_TYPE \
--disk-size DISK_SIZE
Lassen Sie alle Flags für Maschinenattribute weg, die Sie nicht ändern möchten. Sie müssen jedoch mindestens ein Maschinenattribut-Flag verwenden, da der Befehl ansonsten fehlschlägt.
Ersetzen Sie dabei Folgendes:
POOL_NAME
ist der Name des Knotenpools, dessen Größe geändert werden soll.CLUSTER_NAME
ist der Name des Clusters, dessen Größe geändert werden soll.MACHINE_TYPE
: Der Maschinentyp für Knoten. Weitere Informationen finden Sie unter gcloud container node-pools update.DISK_TYPE
: Der Typ des Knoten-VM-Bootlaufwerks muss einer vonpd-standard
,pd-ssd
,pd-balanced
sein.DISK_SIZE
: Die Größe für VM-Bootlaufwerke des Knotens in GB. Der Standardwert ist 100 GB.
Knotenpool aktualisieren
Für die Knoten eines Clusters ist standardmäßig das automatische Upgrade aktiviert. Wir empfehlen, dies nicht zu deaktivieren. Automatische Knotenupgrades sorgen dafür, dass die Steuerungsebene und die Knotenversion Ihres Clusters synchron bleiben und die Versionsinkompatibilitätsrichtlinie von Kubernetes einhalten. Dadurch wird sichergestellt, dass die Steuerungsebenen mit Knoten kompatibel sind, die bis zu zwei Nebenversionen älter als die Steuerungsebene sind. Die Steuerungsebenen von Kubernetes 1.29 sind beispielsweise mit den Knoten von Kubernetes 1.27 kompatibel.
Bei GKE-Knotenpool-Upgrades haben Sie die Wahl zwischen zwei konfigurierbaren Upgradestrategien, nämlich Surge-Upgrades und Blau/Grün-Upgrades.
Wählen Sie eine Strategie aus und verwenden Sie die Parameter, um die Strategie so zu optimieren, dass sie die Anforderungen Ihrer Clusterumgebung am besten erfüllt.
Beim Upgrade von Knoten wird die Planung neuer Pods für diese Knoten in GKE beendet. In diesem Fall werden die neu geplanten Pods nach Möglichkeit auf anderen Knoten geplant. Dies ist mit anderen Ereignissen vergleichbar, bei denen der Knoten neu erstellt wird, z. B. beim Aktivieren oder Deaktivieren eines Features im Knotenpool.
Das Upgrade ist erst abgeschlossen, wenn alle Knoten neu erstellt worden sind und der Cluster den gewünschten Status hat. Die aktualisierten Knoten werden bei der Registrierung auf der Steuerungsebene in GKE als planbar gekennzeichnet.
Neue Knoteninstanzen führen die gewünschte Kubernetes-Version aus sowie:
Manuelles Upgrade für einen Knotenpool ausführen
Sie können die Version eines Knotenpools manuell auf die Version der Steuerungsebene oder auf eine frühere Version aktualisieren, die noch verfügbar und mit der Steuerungsebene kompatibel ist. Sie können mehrere Knotenpools gleichzeitig manuell aktualisieren, während GKE automatisch jeweils nur einen Knotenpool nacheinander aktualisiert.
Wenn Sie einen Knotenpool manuell aktualisieren, entfernt GKE alleLabels, die Sie einzelnen Knoten mit kubectl
hinzugefügt haben.
Um dies zu vermeiden, können Sie stattdessen Labels auf Knotenpools anwenden.
Sie können Knotenpools mithilfe der Google Cloud Console oder der Google Cloud CLI manuell auf eine Version aktualisieren, die mit der Steuerungsebene kompatibel ist.
gcloud
Die folgenden Variablen werden in den Befehlen in diesem Abschnitt verwendet:
CLUSTER_NAME
ist der Name des Clusters des Knotenpools, der aktualisiert werden soll.NODE_POOL_NAME
ist der Name des Knotenpools, der aktualisiert werden soll.VERSION
ist die Kubernetes-Version, auf die die Knoten aktualisiert werden. Beispiel:--cluster-version=1.7.2
odercluster-version=latest
.
Knotenpool aktualisieren:
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME
Wenn Sie für Knoten eine andere Version von GKE angeben möchten, verwenden Sie das optionale Flag --cluster-version
:
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME \
--cluster-version VERSION
Weitere Informationen zum Festlegen von Versionen finden Sie unter Versionsverwaltung.
Weitere Informationen finden Sie in der Dokumentation zu gcloud container clusters upgrade
.
Console
Zum Aktualisieren eines Knotenpools mithilfe der Google Cloud Console führen Sie die folgenden Schritte aus:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie neben dem Cluster, den Sie bearbeiten möchten, auf more_vert Aktionen und dann auf edit Bearbeiten.
Klicken Sie auf der Seite Clusterdetails auf den Tab Knoten.
Klicken Sie im Bereich Knotenpools auf den Namen des Knotenpools, den Sie aktualisieren möchten.
Klicken Sie auf edit Bearbeiten.
Klicken Sie unter Knotenversion auf Ändern.
Wählen Sie die gewünschte Version aus der Drop-down-Liste Knotenversion aus und klicken Sie auf Ändern.
Einen Pod in einem bestimmten Knotenpool bereitstellen
Sie können einen Pod explizit mithilfe eines nodeSelector
in Ihrem Pod-Manifest für einen bestimmten Knotenpool bereitstellen. nodeSelector
plant Pods auf Knoten mit einem passenden Label.
Alle GKE-Knotenpools haben Labels im folgenden Format: cloud.google.com/gke-nodepool: POOL_NAME
.
Fügen Sie dieses Label dem Feld nodeSelector
in Ihrem Pod hinzu, wie im folgenden Beispiel gezeigt:
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
cloud.google.com/gke-nodepool: POOL_NAME
Weitere Informationen finden Sie unter Pods zu Knoten zuweisen.
Alternativ zur Knotenauswahl können Sie auch die Knotenaffinität verwenden. Verwenden Sie die Knotenaffinität, wenn Sie eine „weiche“ Regel wünschen, bei der der Pod versucht, die Einschränkung zu erfüllen, aber selbst dann geplant wird, wenn gegen die Einschränkung verstoßen wird. Weitere Informationen finden Sie unter Knotenaffinität. Sie können auch Ressourcenanfragen für die Container angeben.
Downgrade für Knotenpool ausführen
Sie können beispielsweise ein Downgrade für einen Knotenpool ausführen, um einem fehlgeschlagenen Knotenpool-Upgrade entgegenzuwirken. Überprüfen Sie vor dem Downgrade eines Knotenpools die Einschränkungen.
- Legen Sie einen Wartungsausschluss für den Cluster fest, um zu verhindern, dass der Knotenpool nach dem Downgrade von GKE automatisch aktualisiert wird.
- Geben Sie für das Downgrade eines Knotenpools eine frühere Version an, wenn Sie der Anleitung unter Manuelles Upgrade für einen Knotenpool ausführen folgen.
Knotenpool löschen
Durch das Löschen eines Knotenpools werden die Knoten und alle laufenden Arbeitslasten gelöscht, ohne die Einstellungen von PodDisruptionBudget
zu berücksichtigen. Weitere Informationen dazu, wie sich dies auf Ihre Arbeitslasten auswirkt, einschließlich Interaktionen mit Knotenselektoren, finden Sie unter Knotenpools löschen.
gcloud
Führen Sie zum Löschen eines Knotenpools den Befehl gcloud container node-pools delete
aus:
gcloud container node-pools delete POOL_NAME \
--cluster CLUSTER_NAME
Console
Führen Sie die folgenden Schritte aus, um einen Knotenpool zu löschen:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie in der Clusterliste auf den Namen des Standard-Clusters, den Sie ändern möchten.
Klicken Sie auf den Tab Knoten.
Klicken Sie im Abschnitt Knotenpools neben dem zu löschenden Knotenpool auf delete.
Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Löschen.
Fehlerbehebung
Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Standardknotenpools und Fehlerbehebung bei der Knotenregistrierung.
Nächste Schritte
- Funktionsweise von Knotenpools
- Automatische Bereitstellung von Knotenpools
- Informationen zum automatischen Reparieren nicht betriebsbereiter Knoten in GKE
kubelet
undsysctl
per Knotensystemkonfiguration konfigurieren