Wenn Sie versuchen, Ihren Google Kubernetes Engine-Cluster (GKE) oder seine Knotenpools zu ändern, wird Ihre Aktion möglicherweise vorübergehend blockiert, weil ein anderer Vorgang ausgeführt wird. Dieses Problem kann zu Verzögerungen bei wichtigen Updates, der Clusterverwaltung und der Bereitstellung von Anwendungen führen.
Auf dieser Seite erfahren Sie, wie Sie den laufenden Vorgang identifizieren. Wenn Sie den aktiven Vorgang kennen, können Sie die Verzögerung abschätzen und festlegen, wann Sie die Aktion wiederholen sollten.
Diese Informationen sind sowohl für Anwendungsentwickler wichtig, die bei der Bereitstellung oder Änderung von Anwendungen auf diese Beschränkungen stoßen können, als auch für Plattformadministratoren und ‑betreiber, die den gesamten Clusterlebenszyklus und Upgrades verwalten und blockierte administrative Aufgaben beheben müssen. Weitere Informationen zu den gängigen Rollen und Beispielaufgaben, auf die wir inGoogle Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.
Fehler bei gleichzeitigen Vorgängen
In GKE ist ein Clustervorgang eine Aktion, die den Status der Steuerungsebene oder der Knotenpools Ihres Clusters ändert. Diese Vorgänge werden von GKE verwaltet und können von Ihnen oder von GKE zu Wartungszwecken initiiert werden. Häufige Clusteroperationen sind:
- Der Cluster wird erstellt oder gelöscht.
- Die Version der Steuerungsebene des Clusters wird aktualisiert.
- Knotenpools erstellen, aktualisieren, in der Größe anpassen oder löschen
- Ändern von Einstellungen auf Clusterebene, z. B. Aktivieren oder Deaktivieren von Funktionen.
- Automatische Reparaturen der Steuerungsebene, die von GKE initiiert werden.
Wenn Sie Vorgänge für Ihre Cluster ausführen, werden möglicherweise Fehlermeldungen angezeigt, die den folgenden ähneln:
Cluster is running incompatible operation OPERATION_NAME
Cluster is currently being created, deleted, updated or repaired and cannot be updated
Operation OPERATION_NAME is currently ACTIONING cluster CLUSTER_NAME. Please wait and try again once it is done
Diese Fehler können die folgenden Werte enthalten:
OPERATION_NAME
: die eindeutige ID für einen Vorgang, der bereits in Ihrem Cluster ausgeführt wird. Mit diesem Namen können Sie den Status des vorhandenen Vorgangs verfolgen, der den Start Ihres neuen Vorgangs verhindert.ACTIONING
: Die Aktion, die für den Cluster ausgeführt wird. Beispiel:Creating
oderUpdating
CLUSTER_NAME
: Der Name des Clusters, auf den sich der Vorgang bezieht.
Diese Fehler treten auf, weil GKE die Anzahl der Vorgänge, die gleichzeitig ausgeführt werden können, begrenzt, um Konflikte zu vermeiden. Im Allgemeinen lässt GKE nur einen Vorgang auf Clusterebene oder einen Vorgang pro Knotenpool gleichzeitig zu. GKE führt auch eigene automatische Aktionen aus, z. B. Upgrades der Steuerungsebene, die auf dieses Limit angerechnet werden und Sie vorübergehend daran hindern können, eine neue Aufgabe zu starten.
Fehler bei gleichzeitigen Vorgängen beheben
Wenn Sie eine Fehlermeldung erhalten, die darauf hinweist, dass ein anderer Vorgang ausgeführt wird, ermitteln Sie die laufende Aufgabe und warten Sie, bis sie abgeschlossen ist:
Wenn Sie den Namen des blockierenden Vorgangs nicht kennen, können Sie alle laufenden und ausstehenden Vorgänge für Ihren Cluster auflisten:
gcloud container operations list \ --location=LOCATION \ --filter '(targetLink~/clusters/CLUSTER_NAME$ OR targetLink~/clusters/CLUSTER_NAME/) AND status!=DONE' \ --format json
Ersetzen Sie Folgendes:
LOCATION
: Die Compute Engine-Region oder -Zone (z. B.us-central1
oderus-central1-a
) für den Cluster, je nachdem, ob Ihr Cluster regional oder zonal ist.CLUSTER_NAME
: Der Name des Clusters, in dem der Vorgang fehlgeschlagen ist.Die Ausgabe sieht etwa so aus:
{ "name": "operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff", "operationType": "UPDATE_CLUSTER", "selfLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff", "startTime": "2001-01-01T00:00:00.000000000Z", "status": "RUNNING", "targetLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/nodePools/NODE_POOL_NAME", "zone": "LOCATION" }
Sehen Sie sich in der Ausgabe das Feld
name
für jeden Vorgang an. Dieser Wert ist der Name des Vorgangs, der den Start Ihres neuen Vorgangs verhindert. Sie benötigen diesen Wert für den nächsten Schritt.Weitere Informationen zu den anderen Feldern in der Ausgabe finden Sie in der API-Dokumentation zu
projects.locations.operations
.
Warten Sie, bis der Vorgang abgeschlossen ist:
gcloud container operations wait OPERATION_NAME \ --location=LOCATION
Ersetzen Sie
OPERATION_NAME
durch den Namen eines blockierenden Vorgangs aus einer Fehlermeldung oder dem vorherigen Schritt.Dieser Befehl überwacht den Vorgang aktiv und wird beendet, wenn der Vorgang abgeschlossen ist.
Wenn der blockierende Vorgang den Status
DONE
hat, wiederholen Sie den Vorgang, der den Fehler verursacht hat.
Nächste Schritte
Wenn Sie in der Dokumentation keine Lösung für Ihr Problem finden, lesen Sie den Abschnitt Support erhalten. Dort finden Sie weitere Hilfe, z. B. zu den folgenden Themen:
- Sie können eine Supportanfrage erstellen, indem Sie sich an den Cloud Customer Care wenden.
- Support von der Community erhalten, indem Sie Fragen auf Stack Overflow stellen und mit dem Tag
google-kubernetes-engine
nach ähnlichen Problemen suchen. Sie können auch dem#kubernetes-engine
-Slack-Kanal beitreten, um weiteren Community-Support zu erhalten. - Sie können Fehler melden oder Funktionsanfragen stellen, indem Sie die öffentliche Problemverfolgung verwenden.