Failover-Tests für extrem robuste Cloud Composer-Umgebungen ausführen

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird beschrieben, wie Sie Datenbank- und Cluster-Failover-Tests für äußerst stabile Cloud Composer-Umgebungen durchführen.

Failover-Tests für Ihre Umgebung simulieren einen vollständigen Ausfall einer Zone in einem Rechenzentrum. In einem solchen Szenario kann gleichzeitig ein zonaler Ausfall eines Clusters und ein zonaler Ausfall einer Datenbank auftreten. Mit den beiden Failover-Tests können Sie beobachten, wie in Ihrer äußerst robusten Umgebung ein Failover durchgeführt wird und wie sich dies auf Ihre DAGs und Aufgaben auswirkt.

Hinweise

  • Zum Ausführen von Failover-Tests 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), um kubectl-Befehle im 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 auf einer Maschine ausführen, die auf den Endpunkt der Steuerungsebene des GKE-Cluster zugreifen kann. Je nachdem, wie Sie den Zugriff auf den Endpunkt der Steuerungsebene Ihrer Umgebung einrichten, haben Sie mehrere Möglichkeiten. Weitere Informationen finden Sie unter Befehle in einer privaten IP-Umgebung ausführen.

Prüfen, ob Ihre Umgebung intakt ist

Führen Sie die Cluster-Failover-Tests der Datenbank und der Umgebung nur in fehlerfreien Umgebungen durch.

So prüfen Sie, ob Ihre Umgebung fehlerfrei ist:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Rufen Sie den Tab Monitoring auf.

  4. Achte darauf, dass alle Gesundheitsmesswerte grün sind.

Datenbank-Failover-Test durchführen

Sie können einen Datenbank-Failover-Test durchführen, der einen zonalen Ausfall simuliert, indem Sie ihn mit einem Google Cloud CLI-Befehl auslösen. Sie können damit beispielsweise die Zeit messen, die die Datenbank Ihrer Umgebung benötigt, um zu einer anderen Zone zu wechseln.

So führen Sie einen Datenbank-Failover-Test für Ihre Umgebung aus:

  1. Prüfen Sie, ob Ihre Umgebung intakt ist.

  2. 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
    
  3. 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
    
  4. Warten Sie, bis der Datenbank-Failover-Test abgeschlossen ist. Der Vorgang kann bis zu 3 Minuten dauern.

  5. 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
    
  6. Prüfen Sie anhand der Statusmesswerte Ihrer Umgebung, ob Ihre Umgebung fehlerfrei ist.

  7. Die Datenbank der 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) zu True wird. Weitere Informationen zum Aufrufen der Messwerte Ihrer Umgebung in Cloud Monitoring finden Sie unter Umgebungen überwachen.

Cluster-Failover-Test für die Umgebung ausführen

Sie können einen Failover-Test für den Cluster Ihrer Umgebung durchführen, der einen zonalen Ausfall simuliert. Sie können damit beispielsweise messen, wie lange es dauert, bis Ihre Umgebung zu einer anderen Zone wechselt.

Prüfen, ob Ihre Umgebung intakt ist

Prüfen Sie vor dem Start des Tests, ob Ihre Umgebung fehlerfrei ist.

Anmeldedaten für den Cluster Ihrer Umgebung konfigurieren

So rufen Sie Clusteranmeldedaten ab:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie auf Clusterdetails ansehen.

  5. Klicken Sie auf Verbinden.

  6. 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, auf denen die Arbeitslasten im Cluster Ihrer Umgebung ausgeführt werden. Anhand dieser Informationen simulieren Sie später einen zonalen Ausfall. 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 das Failover ausführt.

  1. Knoten und Zonen prüfen:

    kubectl get nodes \
      -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
    
  2. Prüfen Sie die Pods:

    kubectl get pods --all-namespaces \
    -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName \
    --field-selector metadata.namespace!=kube-system
    
  3. Detailliertere Informationen zu Pods ansehen:

    kubectl get pods --all-namespaces -o wide \
    --field-selector metadata.namespace!=kube-system
    

Knoten per Drain beenden

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 durchfü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 us-central1-a-Zone simulieren. Führen Sie dazu zuerst den Datenbank-Failover-Test und dann den Failover-Test des Clusters in us-central1-a aus.

Der folgende Befehl simuliert, dass eine Reihe von Knoten in einer bestimmten Zone nicht mehr verfügbar ist. Damit werden Pods zwangsweise aus Knoten in der angegebenen Zone entfernt und die Neuplanung von Pods auf diesen Knoten wird verhindert. Da keine neuen Pods geplant werden können, werden dem Cluster neue Knoten hinzugefügt.

Dieser Befehl wirkt sich nicht auf Arbeitslasten aus, die im Namespace composer-system ausgeführt werden. In der Befehlsausgabe werden möglicherweise entsprechende Fehlermeldungen angezeigt. Dies wirkt sich nicht auf den Failover-Test aus. Die in der ausgewählten Zone vorhandenen Knoten sind weiterhin als nicht planbar gekennzeichnet.

So simulieren Sie einen Ausfall einer Clusterzone 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 Ausfall einer Clusterzone simulieren möchten.

Umgebungsmesswerte prüfen

Umgebungsmesswerte während eines simulierten Zonenausfalls
Abbildung 1. Umgebungsmesswerte während eines simulierten Zonenausfalls (zum Vergrößern klicken)
  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Rufen Sie den Tab Monitoring auf.

  4. Prüfen Sie, ob die folgenden Messwerte während des Failovers entweder „grün“ sind oder für höchstens mehrere Minuten im roten Status bleiben.

    • Umgebungsstatus
    • Planer-Heartbeat
    • Webserverstatus
    • Datenbankstatus
    • Aktive Worker
    • Aktive Planer
    • Aktive Webserver
    • Aktive Trigger

    Der simulierte Ausfall ist als „Clusterwartungsvorgang“ gekennzeichnet.

  5. Sie müssen keine weiteren Maßnahmen ergreifen, um den Cluster Ihrer Umgebung nach dem Test in die Failover-Bereitschaft zurückzuversetzen. Während des Tests fügt der Cluster der Umgebung automatisch neue Knoten hinzu, die die vom simulierten Ausfall betroffenen Knoten ersetzen.

Nächste Schritte