Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird beschrieben, wie Sie Datenbank- und Cluster-Failover-Tests für besonders resiliente Umgebungen ausführen.
Failover-Tests für Ihre Umgebung simulieren einen vollständigen Ausfall einer Zone in einem Rechenzentrum. In einem solchen Szenario kann es gleichzeitig zu einem zonalen Ausfall eines Clusters und zu einem zonalen Ausfall einer Datenbank kommen. Wenn Sie die beiden Failover-Tests ausführen, können Sie beobachten, wie ein Failover in Ihrer hochverfügbaren Umgebung abläuft und welche Auswirkungen dies auf Ihre DAGs und Aufgaben hat.
Hinweis
Damit Sie Failover-Tests durchführen können, muss Ihr Konto die folgenden Rollen und Berechtigungen haben:
Berechtigung
composer.environments.update
. Eine Liste der Rollen mit dieser Berechtigung finden Sie unter Zugriffssteuerung mit IAM.Rolle Kubernetes Engine-Clusteradministrator (
roles/container.clusterAdmin
), umkubectl
-Befehle auf dem Cluster der Umgebung auszuführen. Alternativ können Sie Kubernetes RBAC-Rollen direkt in GKE bereitstellen.
Wenn Sie autorisierte Netzwerke verwenden, müssen Sie
kubectl
-Befehle von einem Computer ausführen, der auf den Endpunkt der Steuerungsebene des GKE-Clusters zugreifen kann. Je nachdem, wie Sie den Zugriff auf den Endpunkt der Steuerebene Ihrer Umgebung eingerichtet haben, stehen Ihnen mehrere Optionen zur Verfügung. Weitere Informationen finden Sie unter Befehle in einer privaten IP-Umgebung ausführen.
Prüfen, ob die Umgebung fehlerfrei ist
Führen Sie die Cluster-Failover-Tests für die Datenbank und die Umgebung nur in fehlerfreien Umgebungen durch.
So prüfen Sie, ob Ihre Umgebung fehlerfrei ist:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Monitoring auf.
Alle Statusmesswerte müssen grün sein.
Datenbank-Failover-Test durchführen
Sie können einen Datenbank-Failover-Test durchführen, der einen zonalen Ausfall simuliert. Dazu müssen Sie ihn mit einem Google Cloud CLI-Befehl auslösen. So können Sie beispielsweise messen, wie lange es dauert, bis die Datenbank Ihrer Umgebung zu einer anderen Zeitzone wechselt.
So führen Sie einen Datenbank-Failover-Test für Ihre Umgebung durch:
Prüfen Sie, ob Ihre Umgebung fehlerfrei ist.
Rufen Sie die primäre Zone der Datenbank Ihrer Umgebung ab:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: Der Name Ihrer Cloud Composer-Umgebung.LOCATION
: die Region, in der sich die Umgebung befindet.
Beispiel:
gcloud composer environments fetch-database-properties \ example-environment \ --location us-central1
Starten Sie den Datenbank-Failover-Test:
gcloud composer environments database-failover \ ENVIRONMENT_NAME \ --location LOCATION
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: Der Name Ihrer Cloud Composer-Umgebung.LOCATION
: die Region, in der sich die Umgebung befindet.
Beispiel:
gcloud composer environments database-failover \ example-environment \ --location us-central1
Warten Sie, bis der Failover-Test der Datenbank abgeschlossen ist. Der Vorgang kann bis zu 3 Minuten dauern.
Prüfen Sie, ob die primäre Zone der Datenbank Ihrer Umgebung geändert wurde:
gcloud composer environments fetch-database-properties \ ENVIRONMENT_NAME \ --location LOCATION
Prüfen Sie die Gesundheitsmesswerte Ihrer Umgebung, um sicherzustellen, dass Ihre Umgebung fehlerfrei funktioniert.
Die Datenbank Ihrer Umgebung ist für ein weiteres Failover bereit, wenn der Umgebungsmesswert Datenbank für Failover verfügbar (
composer.googleapis.com/environment/database/available_for_failover
) den WertTrue
hat. Weitere Informationen zum Ansehen der Messwerte Ihrer Umgebung in Cloud Monitoring finden Sie unter Umgebungen überwachen.
Cluster-Failover-Test für Ihre Umgebung durchführen
Sie können einen Failover-Test für den Cluster Ihrer Umgebung durchführen, bei dem ein Zonenausfall simuliert wird. So können Sie beispielsweise messen, wie lange es dauert, bis Ihre Umgebung zu einer anderen Zone wechselt.
Prüfen, ob die Umgebung fehlerfrei ist
Bevor Sie mit dem Test beginnen, prüfen Sie, ob Ihre Umgebung in Ordnung ist.
Anmeldedaten für den Cluster Ihrer Umgebung konfigurieren
So rufen Sie Clusteranmeldedaten ab:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Klicken Sie auf Clusterdetails ansehen.
Klicken Sie auf Verbinden.
Kopieren Sie den angezeigten Google Cloud CLI-Befehl und führen Sie ihn aus.
Beispiel:
gcloud container clusters get-credentials \ us-central1-exam-db23ee12-gke \ --region us-central1 \ --project example-project
Cluster der Umgebung prüfen
Prüfen Sie die Zonen und Knoten, in denen die Arbeitslasten im Cluster Ihrer Umgebung ausgeführt werden. Anhand dieser Informationen können Sie später einen Zonenausfall simulieren. Sie können diese Befehle auch noch einmal ausführen, während Sie den Failover-Test durchführen, um zu sehen, wie der Cluster Ihrer Umgebung den Failover durchführt.
Knoten und Zonen prüfen:
kubectl get nodes \ -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
Pods prüfen:
kubectl get pods --all-namespaces \ -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName \ --field-selector metadata.namespace!=kube-system
Weitere Informationen zu Pods:
kubectl get pods --all-namespaces -o wide \ --field-selector metadata.namespace!=kube-system
Knoten leeren
Wählen Sie eine Zone aus, in der Sie einen Ausfall simulieren möchten. Wenn Sie den Cluster-Failover-Test zusammen mit dem Datenbank-Failover-Test ausführen, sollten Sie die primäre Zone der hochverfügbaren Cloud SQL-Instanz Ihrer Umgebung auswählen.
Wenn die primäre Cloud SQL-Instanz beispielsweise in us-central1-a
ausgeführt wird, können Sie einen Ausfall in der gesamten Zone us-central1-a
simulieren, indem Sie zuerst den Datenbank-Failover-Test und dann den Failover-Test des Clusters in us-central1-a
ausführen.
Mit dem folgenden Befehl wird simuliert, dass eine Reihe von Knoten in einer bestimmten Zone nicht mehr verfügbar ist. Dadurch werden Pods erzwungenermaßen von Knoten in der angegebenen Zone entfernt und die Neuplanung von Pods auf diesen Knoten verhindert. Da neue Pods nicht geplant werden können, werden dem Cluster neue Knoten hinzugefügt.
Dieser Befehl hat keine Auswirkungen auf Arbeitslasten, die im Namespace composer-system
ausgeführt werden. In der Befehlsausgabe werden möglicherweise entsprechende Fehlermeldungen angezeigt. Dies hat keine Auswirkungen auf den Failover-Test. Die Knoten in der ausgewählten Zone sind weiterhin als nicht planbar gekennzeichnet.
So simulieren Sie einen Clusterzonenausfall in der ausgewählten Zone:
kubectl get nodes -o name -l "topology.gke.io/zone=ZONE" | \
xargs kubectl drain \
--ignore-daemonsets --delete-emptydir-data --force --disable-eviction
Ersetzen Sie Folgendes:
ZONE
: die Zone, in der Sie einen Clusterzonenausfall simulieren möchten.
Umgebungsmesswerte prüfen

Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Monitoring auf.
Prüfen Sie, ob die folgenden Messwerte während des Failover-Vorgangs entweder „grün“ sind oder maximal einige Minuten lang den Status „rot“ haben.
- Umgebungsstatus
- Planer-Heartbeat
- Webserverstatus
- Datenbankstatus
- Aktive Worker
- Aktive Planer
- Aktive Webserver
- Aktive Trigger
Der simulierte Ausfall ist als „Clusterwartung“ gekennzeichnet.
Sie müssen nach dem Test nichts weiter unternehmen, um den Cluster Ihrer Umgebung wieder für den Failover bereitzumachen. Während des Tests werden dem Cluster der Umgebung automatisch neue Knoten hinzugefügt, die die vom simulierten Ausfall betroffenen Knoten ersetzen.