Ressourcen für Knotenupgrades bereitstellen


Auf dieser Seite wird erläutert, wie Sie sicherstellen können, dass Sie Knotenupgrade-Strategien verwenden können, um Änderungen an den Knoten des Clusters vorzunehmen. Wir empfehlen, je nach ausgewählter Strategie zu prüfen, ob Ihr Projekt genügend Ressourcen hat, um Ihre GKE-Standardknotenpools (Google Kubernetes Engine) zu aktualisieren.

Erforderliche Ressourcen für Knotenupgrades

Bei Knotenupgrades muss GKE je nach ausgewählter Knotenstrategie und -konfiguration möglicherweise vorübergehend zusätzliche Knoten erstellen. Aus diesem Grund benötigt GKE möglicherweise zusätzliche Ressourcen für ein Knotenpool-Upgrade.

Alle von GKE erstellten Knoten, einschließlich der für Upgrades verwendeten Knoten, unterliegen dem Ressourcenkontingent Ihres Projekts, der Ressourcenverfügbarkeit und der Reservierungskapazität für Knotenpools mit bestimmter Reservierungsaffinität.

Wenn Sie spezielle Anforderungen an den Computertyp und Kapazitätsbeschränkungen haben, sollten Sie unbedingt prüfen, ob Sie über ausreichende Ressourcen verfügen. Möglicherweise müssen Sie eine Strategie konfigurieren, die weniger Ressourcen erfordert, um Ihre Knoten zu aktualisieren, oder andere Aktionen ausführen, z. B. eine Reservierung erstellen. Weitere Informationen finden Sie unter Upgrade in einer ressourcenknappen Umgebung.

Ressourcen, die für verschiedene Upgradestrategien benötigt werden

In den folgenden Abschnitten werden die zusätzlichen Ressourcen beschrieben, die für die Verwendung der verfügbaren Upgrade-Strategien erforderlich sind. Wenn Upgradeprobleme auftreten, prüfen Sie die Upgradevorgänge und folgen Sie der Anleitung zum Beheben von Upgradefehlern.

Ressourcen für Surge-Upgrades

Surge-Upgrades sind die Standardstrategie für Knotenupgrades. Da bei Surge-Upgrades zusätzliche VMs erstellt werden, bevor maxSurge auf mehr als null gesetzt ist, bevor alte Knoten geleert und gelöscht werden, können Upgrades fehlschlagen, wenn Ihr Projekt nicht genügend Ressourcen hat.

Wenn die verfügbaren Ressourcen unter der in maxSurge angegebenen Anzahl von Knoten liegen, ist die Anzahl der parallelen Upgrades geringer als maxSurge + maxUnavailable. Wenn Sie keine zusätzliche Kapazität haben, lesen Sie den Hilfeartikel Upgrade in einer ressourcenbeschränkten Umgebung durchführen.

In der folgenden Tabelle werden verschiedene Verhaltensbeispiele für Upgrades beschrieben:

Upgrade-Einstellungen Anzahl der nach verfügbaren Ressourcen zulässigen zusätzlichen Knoten Ergebnis
maxSurge: 5 maxUnavailable: 0 5 Führt für fünf Knoten parallel ein Upgrade durch.
maxSurge: 5 maxUnavailable: 0 2 Führt für nur zwei Knoten parallel ein Upgrade durch.
maxSurge: 5 maxUnavailable: 0 0 Upgrade schlägt fehl, da keine zusätzlichen Knoten eingerichtet werden können und die Upgrade-Einstellungen den Neustart bestehender Knoten nicht zulassen. GKE versucht weiterhin, das automatische Upgrade durchzuführen, bis der Vorgang erfolgreich ist.
maxSurge: 5 maxUnavailable: 1 5 Führt für sechs Knoten parallel ein Upgrade durch und stellt gleichzeitig sicher, dass der Knotenpool aufgrund des Upgrades vorübergehend nur einen Knoten verliert.
maxSurge: 5 maxUnavailable: 1 2 Führt nur für drei Knoten parallel ein Upgrade durch und stellt gleichzeitig sicher, dass dem Knotenpool aufgrund des Upgrades nicht mehr als ein Knoten fehlt.
maxSurge: 5 maxUnavailable: 1 0 Führt nur für jeweils einen Knoten ein Upgrade durch, indem jeder Knoten mit einer Rolling Upgrade-Methode neu erstellt wird.

Ressourcen für Blau/Grün-Upgrades

Blau/Grün-Upgrades verdoppeln vorübergehend die Anzahl der Knoten in einem Knotenpool. Das bedeutet, dass Ihr Knotenpool vorübergehend doppelt so viele Ressourcen benötigt. Wenn nicht genügend Ressourcen verfügbar sind und Sie Ihren Knotenpool für diese Strategie konfiguriert haben, konfigurieren Sie stattdessen Surge-Upgrades, wenn Sie die Blockierung von Upgrades aufheben müssen. Achten Sie bei der Konfiguration dieser Strategie darauf, dass Sie Parameter für Surge-Upgrades konfigurieren, die mit den verfügbaren Ressourcen für die Knoten des Knotenpools funktionieren. Weitere Informationen finden Sie im vorherigen Abschnitt Ressourcen für Surge-Upgrades.

Upgradevorgänge auf ressourcenbezogene Fehler prüfen

Weitere Informationen zu Ihren Upgradevorgängen sowie darüber, ob und warum Upgrades fehlgeschlagen sind, finden Sie in den Vorgangsobjekten der Upgrades. Führen Sie den folgenden Befehl aus, um die Upgrade-Vorgangsobjekte aufzulisten:

gcloud container operations list \
    --filter="STATUS=DONE AND TYPE=UPGRADE_NODES AND targetLink:https://container.googleapis.com/v1/projects/PROJECT_ID/zones/COMPUTE_ZONE/clusters/CLUSTER_NAME"

Dabei gilt:

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts.
  • COMPUTE_ZONE: Die Compute Engine-Zone für Ihren Cluster.
  • CLUSTER_NAME: Der Name Ihres Clusters.

Wenn das letzte Upgrade aufgrund unzureichender Ressourcenkontingente fehlgeschlagen ist, sieht die Ausgabe in etwa so aus:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Insufficient quota to satisfy the request: waiting on IG: instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt errors: [QUOTA_EXCEEDED] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 50.0 in region us-central1.\
...

Wenn der Grund eine unzureichende Reservierung war, sieht die Ausgabe in etwa so aus:

gcloud container operations describe operation-1234567891234-1abc2d3e
detail: "Reservation does not have enough resources for the request: waiting on IG:\
  \ instance https://www.googleapis.com/compute/v1/projects/my-project-123/zones/us-central1-a/instances/gke-my-cluster-default-pool-123ab45c-de67\
  \ is still CREATING. Last attempt error: [CONDITION_NOT_MET] Instance 'gke-my-cluster-default-pool-123ab45c-de67'\
  \ creation failed: Specified reservation 'foo' does not have available resources\
  \ for the request."

Wenn der Grund eine unzureichende Kapazität war, werden Fehlermeldungen zur Ressourcenverfügbarkeit angezeigt.

Upgradefehler beheben

Wenn das Upgrade aufgrund unzureichender Ressourcen fehlgeschlagen ist, führen Sie die folgenden Schritte aus:

  1. Überlegen Sie sich eine weniger ressourcenintensive Upgradestrategie. Wenn Sie Blau/Grün-Upgrades verwenden, sollten Sie Surge-Upgrades in Betracht ziehen.
  2. Prüfen Sie, ob Compute Engine-Ressourcen in Ihrem Projekt vorhanden sind, die Ressourcen nutzen, aber nicht mehr benötigt werden. Wenn Sie welche finden, entfernen Sie sie und wiederholen Sie das Upgrade.
  3. Wenn das Upgrade auch nach Durchführung der ersten beiden Schritte fehlschlägt, fordern Sie eine Kontingenterhöhung an oder erhöhen Sie die Größe der spezifischen Reservierung.
  4. Wenn Sie in einer ressourcenbeschränkten Umgebung arbeiten, z.0B. mit speziellen Maschinentypanforderungen und Kapazitätseinschränkungen, finden Sie im nächsten Abschnitt Schritte zur Aufhebung von Upgrades im nächsten Abschnitt.

Upgrade in einer ressourcenbeschränkten Umgebung durchführen

Wenn Google Cloud eine begrenzte Kapazität für eine bestimmte Ressource (z. B. GPUs oder TPUs) hat, die Ihr Knotenpool verwendet, empfehlen wir Ihnen, eine Reservierung zu nutzen um sicherzustellen, dass Sie über ausreichende Ressourcen verfügen. Wenn Sie nicht über ausreichende Ressourcen verfügen, können Sie Ihre Knoten möglicherweise erst dann aktualisieren, wenn Sie auf mehr Kapazität zugreifen können, sofern Sie keine Reservierung für Ihre vorhandene Kapazität haben.

Wenn Sie keine zusätzliche Kapazität erhalten, können Sie keine Blau/Grün-Upgrades verwenden. Für Surge-Upgrades erfordert maxSurge zusätzliche Knoten. Wenn die Kapazität bei maxUnavailable nicht aus einer Reservierung stammt, gibt GKE die Kapazität des Knotens bei einem Upgrade vorübergehend frei. D. h., wenn ist die Kapazität begrenzt ist, laufen Sie Gefahr, die Kapazität zu verlieren.

Folgen Sie der folgenden Anleitung, je nachdem, ob Sie eine Reservierung für Ihren Knotenpool haben, der aktualisiert werden muss.

Upgrade mit begrenzter Kapazität ohne Reservierung

Wenn Sie keine Reservierung für die Knoten Ihres Knotenpools haben, empfehlen wir, eine Reservierung zu erstellen. Wenn dies nicht möglich ist, empfehlen wir die Verwendung von Surge-Upgrades mit der Standardkonfiguration von maxSurge=1;maxUnavailable=0. Bei dieser Konfiguration riskieren Sie nicht, vorhandene Kapazitäten zu verlieren. Bei einem Surge-Upgrade wird jedoch nur dann ein Surge-Knoten erstellt, wenn die Kapazität verfügbar ist. Wenn keine Kapazität verfügbar ist, können Upgrades länger dauern und der Knotenpool könnte in einem teilweise aktualisierten Zustand verbleiben, bis die Kapazität für das Upgrade jedes Knotens gesichert ist.

Wir empfehlen, eine Reservierung zu erstellen oder die Größe einer vorhandenen Reservierung zu erhöhen.

Upgrade mit begrenzter Kapazität mit Reservierung

Wenn Sie eine Reservierung für die Knoten Ihres Knotenpools haben, können Sie Ihre Knotenpools in einer kapazitätsbeschränkten Umgebung aktualisieren und Surge-Upgrade-Einstellungen für Geschwindigkeit und Zuverlässigkeit optimieren.

Wenn Sie zusätzliche Kapazität in der Reservierung haben, können Sie mit maxSurge Spitzenknoten erstellen. Legen Sie maxSurge fest, je nachdem, wie viele Knoten Sie gleichzeitig unterbrechen möchten und wie viel zusätzliche Kapazität Sie haben. Legen Sie beispielsweise maxSurge=1;maxUnavailable=0 fest, wenn Sie jeweils nur einen Knoten unterbrechen möchten oder nur Kapazität zum Erstellen eines zusätzlichen Knotens haben.

Wenn Sie keine zusätzliche Kapazität haben, können Sie maxUnavailable mit einer Konfiguration wie maxSurge=0;maxUnavailable=1 verwenden, da die Kapazität reserviert ist. Bei dieser Konfiguration wird jeweils ein Knoten unterbrochen und dann neu erstellt, um ihn zu aktualisieren.

Nächste Schritte