Ressourcen für Knotenupgrades gewährleisten


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

Erforderliche Ressourcen für Knotenupgrades

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

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.

Wir empfehlen dringend, über ausreichende Ressourcen zu verfügen, wenn Sie spezielle Anforderungen an Maschinentypen und Kapazitätseinschränkungen haben. 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 ressourcenbeschränkter Umgebung.

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

In den folgenden Abschnitten werden die zusätzlichen Ressourcen beschrieben, die erforderlich sind, um die verfügbaren Upgradestrategien zu verwenden. 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 kleiner als die in maxSurge angegebene Anzahl von Knoten sind, beträgt die Anzahl der parallelen Upgrades weniger als maxSurge plus maxUnavailable. Wenn Sie keine zusätzliche Kapazität haben, lesen Sie die Informationen zum Upgrade in einer ressourcenbeschränkten Umgebung.

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

Upgrade-Einstellungen Anzahl der zusätzlichen Knoten, die durch die verfügbaren Ressourcen zugelassen werden 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 automatisch, ein 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, was 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 beim Konfigurieren dieser Strategie darauf, Surge-Upgrade-Parameter zu 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 Ihr Upgrade aufgrund unzureichender Ressourcen fehlgeschlagen ist, führen Sie die folgenden Schritte aus:

  1. Ziehen Sie eine weniger ressourcenintensive Upgradestrategie in Betracht. 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 die Blockierung des Upgrades durch die ersten beiden Schritte nicht aufgehoben werden kann, 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

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 aktualisieren, wenn Sie auf mehr Kapazität zugreifen können, wenn Sie keine Reservierung für die 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 benötigt 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.

Verwenden Sie die folgende Anleitung, je nachdem, ob Sie eine Reservierung für Ihren Knotenpool haben, die aktualisiert werden muss.

Upgrade mit begrenzter Kapazität ohne Reservierung ausführen

Wenn Sie keine Reservierung für die Knoten Ihres Knotenpools haben, empfehlen wir, eine Reservierung zu erstellen. Wenn Sie dies nicht können, empfehlen wir die Verwendung von Surge-Upgrades mit der Standardkonfiguration maxSurge=1;maxUnavailable=0. Bei dieser Konfiguration riskieren Sie nicht, dass vorhandene Kapazitäten verloren gehen. Surge-Upgrades erstellen einen Surge-Knoten jedoch nur, wenn die Kapazität verfügbar ist. Wenn also keine Kapazität verfügbar ist, können Upgrades länger dauern und Ihr Knotenpool kann so lange in einem teilweise aktualisierten Zustand bleiben, bis die Kapazität gesichert ist, um ein Upgrade der einzelnen Knoten durchzuführen.

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

Upgrade mit begrenzter Kapazität mithilfe einer Reservierung ausführen

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

Wenn Sie in der Reservierung zusätzliche Kapazität haben, können Sie maxSurge zum Erstellen von Surge-Knoten verwenden. Legen Sie maxSurge fest, je nachdem, wie viele Knoten Sie gleichzeitig stören möchten und wie viel zusätzliche Kapazität Sie haben. Legen Sie beispielsweise maxSurge=1;maxUnavailable=0 fest, wenn Sie nur einen Knoten auf einmal unterbrechen möchten oder nur die Kapazität haben, einen zusätzlichen Knoten zu erstellen.

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 der Knoten wird neu erstellt, um ihn zu aktualisieren.

Nächste Schritte