Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird beschrieben, wie Sie Datenbank- und Cluster-Failover-Tests für hochgradig resiliente Umgebungen ausführen.
Failover-Tests für Ihre Umgebung simulieren einen vollständigen Ausfall einer Zone in einem Rechenzentrumsstandort. In einem solchen Szenario kann es gleichzeitig zu einem zonalen Ausfall eines Clusters und zu einem zonalen Ausfall einer Datenbank kommen. Wenn Sie diese beiden Failover-Tests die Leistung Ihrer extrem robusten Umgebung und überprüfen Sie, wie sich dies auf Ihre DAGs und Aufgaben auswirkt.
Hinweise
Zum Durchführen von Failover-Tests benötigt Ihr Konto die folgenden Rollen und Berechtigungen:
Berechtigung
composer.environments.update
. Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM finden Sie eine Liste der Rollen mit dieser Berechtigung.Administrator für Kubernetes Engine-Cluster (
roles/container.clusterAdmin
) Rolle, umkubectl
-Befehle im Cluster der Umgebung auszuführen. Alternativ können Sie Kubernetes RBAC-Rollen direkt in GKE bereitstellen.
Wenn Sie autorisierte Netzwerke verwenden und Ihr muss
kubectl
-Befehle von einer Maschine ausführen, die auf den Endpunkt der Steuerungsebene des GKE-Cluster. 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 Ihre Umgebung intakt ist
Führen Sie die Failover-Tests für Datenbank und Umgebungscluster nur auf unbedenkliche Umgebung.
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, indem Sie 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
: 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
: Region, in der sich die Umgebung befindet.
Beispiel:
gcloud composer environments database-failover \ example-environment \ --location us-central1
Warten Sie, bis der Datenbank-Failover-Test 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 Systemdiagnosewerte Ihrer Umgebung, um sicherzustellen, dass Ihre Umgebung betriebsbereit ist.
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 Anzeigen der der Umgebungsmesswerte in Cloud Monitoring finden Sie 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, der simuliert einen Zonenausfall. So können Sie beispielsweise messen, wie lange es dauert, bis Ihre Umgebung zu einer anderen Zeitzone wechselt.
Prüfen, ob die Umgebung fehlerfrei ist
Stellen Sie vor dem Starten des Tests sicher, dass Ihre Umgebung gesund ist.
Anmeldedaten für den Cluster der 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. Mit diesen Informationen simulieren Sie später einen Zonenausfall. Sie können auch diese Befehle erneut ausführen, während Sie den Failover-Test durchführen, um zu sehen, der Cluster der Umgebung das 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
Drain-Knoten
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.
Beispiel: Die primäre Cloud SQL-Instanz wird in us-central1-a
ausgeführt.
können Sie einen Ausfall in der gesamten us-central1-a
-Zone simulieren,
zuerst den Datenbank-Failover-Test
und dann den Failover-Test
us-central1-a
Der folgende Befehl simuliert eine Gruppe von Knoten, die in einem in einer bestimmten Zone. 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 wirkt sich nicht auf Arbeitslasten aus, die im composer-system
ausgeführt werden
-Namespace auf sie zugegriffen werden. In der Befehlsausgabe werden möglicherweise entsprechende Fehlermeldungen angezeigt. Dieses
hat keinen Einfluss auf den Failover-Test. Die Knoten, die in der ausgewählten Zone vorhanden sind
weiterhin als nicht planbar gekennzeichnet sind.
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 höchstens einige Minuten lang den Status „rot“ haben.
- Umgebungsstatus
- Planer-Heartbeat
- Webserverstatus
- Datenbankstatus
- Aktive Worker
- Aktive Planer
- Aktive Webserver
- Aktive Trigger
Beachten Sie, dass der simulierte Ausfall als „Clusterwartung“ gekennzeichnet ist. Vorgang“.
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.