Load-Balancing für hochverfügbare Anwendungen verwenden


In dieser Anleitung wird beschrieben, wie Sie Load-Balancing mit einer regionalen verwalteten Instanzgruppe einsetzen, um Traffic von ausgelasteten oder nicht verfügbaren VM-Instanzen umzuleiten und damit auch bei einem Zonenausfall Hochverfügbarkeit bereitzustellen.

Eine regionale verwaltete Instanzgruppe verteilt eine Anwendung auf mehrere Instanzen über mehrere Zonen hinweg. Ein globaler Load-Balancer leitet Traffic über mehrere Regionen hinweg über eine einzige IP-Adresse weiter. Wenn Sie diese beiden Dienste zum Verteilen der Anwendung auf mehrere Zonen verwenden, können Sie dafür sorgen, dass die Anwendung auch in extremen Fällen verfügbar ist, z. B. bei einer zonenweiten Störung.

Mithilfe von Load-Balancern können die verschiedensten Arten von Traffic weitergeleitet werden. In dieser Anleitung erfahren Sie, wie Sie einen globalen Load-Balancer erstellen, der externen HTTP-Traffic weiterleitet. Der größte Teil dieser Anleitung ist jedoch auch für andere Arten von Load-Balancern relevant. Weitere Informationen zu anderen Arten von Traffic, die mit einem Load-Balancer weitergeleitet werden können, finden Sie unter Arten von Cloud Load Balancing.

Diese Anleitung enthält ausführliche Schritte zu folgenden Vorgängen: Starten einer Webanwendung in einer regionalen verwalteten Instanzgruppe, Konfigurieren des Netzwerkzugriffs, Erstellen eines Load-Balancers zum Weiterleiten von Traffic an die Webanwendung und Beobachten des Load Balancers durch Simulation eines Zonenausfalls. Je nachdem, wie vertraut Sie mit diesen Features sind, benötigen Sie für diese Anleitung ungefähr 45 Minuten.

Ziele

  • Demo-Webanwendung in einer regionalen verwalteten Instanzgruppe starten
  • Globalen Load-Balancer konfigurieren, der HTTP-Traffic zonenübergreifend weiterleitet
  • Auswirkungen des Load-Balancers durch Simulation eines Zonenausfalls beobachten

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

  • Compute Engine

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Neuen Google Cloud Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

Anwendungsarchitektur

Die Anwendung enthält die folgenden Compute Engine-Komponenten:

  • VPC-Netzwerk: Ein virtuelles Netzwerk in Google Cloud , das globale Verbindungen über seine eigenen Routen und Firewallregeln bereitstellen kann.
  • Firewallregel: eine Google Cloud-Firewall, die Ihnen ermöglicht, Traffic an Ihre Instanzen zuzulassen oder abzulehnen.
  • Instanzvorlage: eine Vorlage zum Erstellen der einzelnen VM-Instanzen in der verwalteten Instanzgruppe.
  • Regionale verwaltete Instanzgruppe: eine Gruppe von VM-Instanzen, auf denen dieselbe Anwendung in mehreren Zonen ausgeführt wird.
  • Globale statische externe IP-Adresse: eine statische IP-Adresse, die von externen Netzwerken aus zugänglich ist und an eine globale Ressource angehängt werden kann.
  • Globaler Load-Balancer: ein Load-Balancer, der Back-End-Instanzen über mehrere Regionen hinweg verteilen kann. Verwenden Sie einen globalen Load-Balancer, wenn Ihre Nutzer Zugriff auf dieselben Anwendungen und Inhalte benötigen und der Zugriff über eine einzige Anycast-IP-Adresse gewährt werden soll.
  • Systemdiagnose: eine vom Load-Balancer verwendete Richtlinie, um die Reaktionsfähigkeit der Anwendung auf jeder VM-Instanz zu bewerten.

Webanwendung starten

In dieser Anleitung wird eine auf GitHub gespeicherte Webanwendung verwendet. Weitere Informationen zur Implementierung der Anwendung finden Sie im Repository GoogleCloudPlatform/python-docs-samples auf GitHub.

Starten Sie die Webanwendung auf jeder VM in einer Instanzgruppe. Fügen Sie dazu ein Startskript in eine Instanzvorlage ein. Führen Sie die Instanzgruppe außerdem in einem dedizierten VPC-Netzwerk aus. Damit soll verhindert werden, dass die Firewallregeln aus dieser Anleitung vorhandene Ressourcen in Ihrem Projekt beeinträchtigen.

VPC-Netzwerk erstellen

Durch Verwendung eines VPC-Netzwerks werden vorhandene Ressourcen in Ihrem Projekt vor den Auswirkungen der Ressourcen geschützt, die Sie für diese Anleitung erstellen. Ein VPC-Netzwerk ist außerdem erforderlich, um eingehenden Traffic so einzuschränken, dass dieser den Load-Balancer durchläuft.

Erstellen Sie ein VPC-Netzwerk, um die Firewallregeln für die Demo-Webanwendung zu kapseln:

  1. Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie für Name web-app-vpc ein.

  4. Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.

  5. So erstellen Sie ein neues Subnetz:

    1. Legen Sie im Abschnitt Subnetze das Feld Name auf web-app-vpc-subnet fest.
    2. Wählen Sie im Drop-down-Menü Region die Option us-central1 aus.
    3. Achten Sie darauf, dass die Option IP-Stacktyp auf IPv4 festgelegt ist.
    4. Geben Sie im Abschnitt Primärer IPv4-Bereich den IPv4-Bereich 10.2.0.0/24 ein.
  6. Klicken Sie unten auf der Seite auf Erstellen.

Warten Sie, bis das VPC-Netzwerk erstellt wurde, bevor Sie fortfahren.

Firewallregel erstellen

Richten Sie nach dem Erstellen des VPC-Netzwerks eine Firewallregel ein, um HTTP-Traffic zum VPC-Netzwerk zuzulassen:

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

    Zu Firewalls

  2. Klicken Sie auf Firewallregel erstellen.

  3. Geben Sie im Feld Name allow-web-app-http ein.

  4. Legen Sie für Netzwerk web-app-vpc fest.

  5. Prüfen Sie, ob die folgenden Optionen wie angegeben festgelegt sind:

    • Die Option Traffic-Richtung ist auf Eingehend festgelegt.
    • Die Option Aktion bei Übereinstimmung ist auf Zulassen festgelegt.
  6. Wählen Sie im Drop-down-Menü Ziele die Option Alle Instanzen im Netzwerk aus.

  7. Legen Sie für Quellfilter IPv4 ranges fest.

  8. Geben Sie im Feld Quell-IP-Bereiche 130.211.0.0/22, 35.191.0.0/16 ein, um Systemdiagnosen für den Load Balancer zuzulassen.

  9. Gehen Sie unter Protokolle und Ports so vor:

    1. Wählen Sie Angegebene Protokolle und Ports aus.
    2. Wählen Sie TCP aus.
    3. Geben Sie im Feld Ports 80 ein, um Zugriff für HTTP-Traffic zuzulassen.
  10. Klicken Sie auf Erstellen.

Instanzvorlage erstellen

Erstellen Sie eine Vorlage, um damit eine Gruppe von VM-Instanzen zu erstellen. Jede aus der Vorlage erstellte Instanz startet eine Demo-Webanwendung über ein Startskript.

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

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie für Name load-balancing-web-app-template ein.

  4. Legen Sie unter Maschinenkonfiguration den Maschinentyp auf e2-medium fest.

  5. Klicken Sie auf den Bereich Erweiterte Optionen, um ihn zu maximieren.

  6. Klicken Sie auf den Bereich Netzwerk und gehen Sie so vor:

    1. Löschen Sie im Bereich Netzwerkschnittstellen alle vorhandenen Netzwerkschnittstellen, indem Sie daneben auf das Symbol  klicken.
    2. Klicken Sie auf Netzwerkschnittstelle hinzufügen und wählen Sie dann das Netzwerk web-app-vpc aus. Damit wird erzwungen, dass jede mit dieser Vorlage erstellte Instanz im zuvor erstellten Netzwerk ausgeführt wird.
    3. Wählen Sie im Drop-down-Menü Subnetzwerk die Option web-app-vpc-subnet aus.
    4. Klicken Sie auf Fertig.
  7. Klicken Sie auf den Bereich Verwaltung und gehen Sie so vor:

    1. Geben Sie im Feld Automatisierung folgendes Startskript ein:

      apt-get update
      apt-get -y install git python3-pip python3-venv
      git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
      python3 -m venv venv
      ./venv/bin/pip3 install -Ur ./python-docs-samples/compute/managed-instances/demo/requirements.txt
      ./venv/bin/pip3 install gunicorn
      ./venv/bin/gunicorn --bind 0.0.0.0:80 app:app --daemon --chdir ./python-docs-samples/compute/managed-instances/demo
      

      Das Skript ruft die Webanwendung beim Start einer VM-Instanz ab, installiert sie und startet sie.

  8. Übernehmen Sie für die übrigen Optionen die Standardwerte.

  9. Klicken Sie auf Erstellen.

Warten Sie, bis die Vorlage erstellt ist, bevor Sie fortfahren.

Regionale verwaltete Instanzgruppe erstellen

Verwenden Sie zum Ausführen der Webanwendung die Instanzvorlage, um eine regionale verwaltete Instanzgruppe zu erstellen:

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

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.

  3. Geben Sie für Name load-balancing-web-app-group ein.

  4. Wählen Sie bei Instanzvorlage die Option load-balancing-web-app-template aus.

  5. Legen Sie Anzahl der Instanzen auf 6 fest. Wenn dieses Feld deaktiviert ist, deaktivieren Sie zuerst das Autoscaling.

    Wenn Sie Autoscaling deaktivieren möchten, rufen Sie den Bereich Autoscaling auf. Wählen Sie im Drop-down-Menü Autoscaling-Modus die Option Aus: Nicht automatisch skalieren aus.

  6. Wählen Sie für Standort die Option Mehrere Zonen aus.

  7. Wählen Sie als Region die Option us-central1 aus.

  8. Wählen Sie unter Zonen die folgenden Zonen aus der Drop-down-Liste aus:

    • us-central1-b
    • us-central1-c
    • us-central1-f
  9. Übernehmen Sie für die übrigen Optionen die Standardwerte.

  10. Klicken Sie auf Erstellen. Damit kehren Sie wieder zur Seite Instanzgruppen zurück.

    Möglicherweise müssen Sie einige Minuten warten, bis alle Instanzen in der Gruppe ausgeführt werden.

Load-Balancer konfigurieren

Damit ein Load-Balancer Traffic an die Webanwendung weiterleitet, müssen Sie eine externe IP-Adresse für den Empfang des gesamten eingehenden Traffics reservieren. Erstellen Sie dann einen Load-Balancer, der Traffic von dieser IP-Adresse annimmt und an die Instanzgruppe weiterleitet.

Statische IP-Adresse reservieren

Verwenden Sie eine globale statische externe IP-Adresse, um dem Load-Balancer einen zentralen Eintrittspunkt für den gesamten Nutzertraffic bereitzustellen. Compute Engine behält statische IP-Adressen bei, auch wenn Sie zugehörige Google Cloud Ressourcen ändern oder löschen. Auf diese Weise hat die Webanwendung immer denselben Eintrittspunkt, selbst wenn sich andere Teile der Webanwendung ändern.

  1. Rufen Sie in der Google Cloud Console die Seite IP-Adressen auf.

    "IP-Adressen" aufrufen

  2. Klicken Sie auf Externe statische IP-Adresse reservieren.

  3. Geben Sie im Feld Name web-app-ipv4 ein.

  4. Setzen Sie die IP-Version auf IPv4.

  5. Setzen Sie Typ auf Global.

  6. Klicken Sie auf Reservieren.

Load-Balancer erstellen

Dieser Abschnitt behandelt die Schritte zum Erstellen eines globalen Load-Balancers, der HTTP-Traffic weiterleitet.

Dieser Load-Balancer verwendet ein Frontend, um eingehenden Traffic zu empfangen, und ein Backend, um diesen Traffic auf fehlerfreie Instanzen zu verteilen. Da der Load-Balancer aus mehreren Komponenten besteht, gliedert sich diese Aufgabe in fünf Teile:

  • Load-Balancer-Typ auswählen
  • Namen für Load-Balancer festlegen
  • Frontend konfigurieren
  • Backend konfigurieren
  • Prüfen und abschließen

Führen Sie alle Schritte aus, um den Load-Balancer zu erstellen.

Load-Balancer-Typ auswählen

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  5. Wählen Sie unter Globale oder Einzelregion-Bereitstellung die Option Am besten für globale Arbeitslasten aus und klicken Sie auf Weiter.
  6. Wählen Sie unter Generation des Load Balancers die Option Globaler externer Application Load Balancer aus und klicken Sie auf Weiter.
  7. Klicken Sie auf Konfigurieren.

Namen für Load-Balancer festlegen

  1. Geben Sie im linken Bereich unter Name des Load Balancers web-app-load-balancer ein.

Frontend konfigurieren

  1. Geben Sie auf der Seite Frontend-Konfiguration unter Name den String web-app-ipv4-frontend ein.
  2. Legen Sie als Protokoll HTTP fest.
  3. Setzen Sie die IP-Version auf IPv4.
  4. Legen Sie die IP-Adresse auf web-app-ipv4 fest.
  5. Legen Sie als Port 80 fest.
  6. Klicken Sie auf Fertig, um das Frontend zu erstellen.

Backend konfigurieren

  1. Klicken Sie im linken Bereich auf Back-End-Konfiguration.
  2. Klicken Sie auf das Drop-down-Menü Back-End-Dienste und Back-End-Buckets, um ein Menü zu öffnen, und klicken Sie dann auf Back-End-Dienst erstellen.
  3. Geben Sie im neuen Fenster als Name des Backend-Dienstes den String web-app-backend ein.
  4. Führen Sie im Abschnitt Backends folgende Schritte aus:
    1. Legen Sie Instanzgruppe auf load-balancing-web-app-group fest.
    2. Legen Sie für Portnummern den Wert 80 fest. Damit wird HTTP-Traffic zwischen dem Load-Balancer und der Instanzgruppe zugelassen.
    3. Wählen Sie unter Balancing-Modus die Option Auslastung aus.
    4. Klicken Sie auf Fertig.
  5. Erstellen Sie die Systemdiagnose für das Back-End des Load Balancers so:

    1. Klicken Sie auf das Drop-down-Menü Systemdiagnose und dann auf Systemdiagnose erstellen. Ein neues Fenster wird geöffnet.
    2. Geben Sie im neuen Fenster unter Name den String web-app-load-balancer-check ein.
    3. Legen Sie als Protokoll HTTP fest.
    4. Geben Sie für Port den Wert 80 ein.
    5. Legen Sie den Anfragepfad für diese Anleitung auf /health fest. Dies ist ein Pfad, auf den die Demo-Webanwendung reagiert.
    6. Legen Sie die folgenden Diagnosekriterien fest:

      1. Legen Sie Überprüfungsintervall auf 3 Sekunden fest. Dies definiert die Zeitspanne vom Start einer Prüfung bis zum Start der nächsten.
      2. Legen Sie Zeitlimit auf 3 Sekunden fest. Damit wird definiert, wie lange Google Cloud bei einer Prüfung auf eine Antwort wartet. Der Wert muss kleiner oder gleich dem Überprüfungsintervall sein.
      3. Legen Sie den Schwellenwert für Intaktheit auf 2 aufeinanderfolgende Erfolge fest. Dies definiert die Anzahl der sequenziellen Prüfungen, die erfolgreich verlaufen müssen, damit eine Instanz als intakt erachtet wird.
      4. Setzen Sie Fehlerschwellenwert auf 2 aufeinanderfolgende Fehler fest. Dies definiert die Anzahl der sequenziellen Prüfungen, die fehlschlagen müssen, damit eine Instanz als nicht intakt erachtet wird.
    7. Klicken Sie auf Erstellen, um die Systemdiagnose zu erstellen.

  6. Übernehmen Sie für die übrigen Optionen die Standardwerte.

  7. Klicken Sie auf Erstellen, um den Backend-Dienst zu erstellen.

Prüfen und abschließen

Prüfen Sie die Load-Balancing-Einstellungen, bevor Sie den Load-Balancer erstellen:

  1. Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Prüfen und abschließen.
  2. Prüfen Sie auf der Seite Prüfen und abschließen, ob das Frontend eine IP-Adresse mit dem Protokoll HTTP verwendet.

  3. Prüfen Sie auf derselben Seite die folgenden Backend-Einstellungen:

    • Der Back-End-Dienst ist web-app-backend.
    • Das Endpunktprotokoll ist HTTP.
    • Die Systemdiagnose ist web-app-load-balancer-check.
    • Die Instanzgruppe ist load-balancing-web-app-group.
  4. Klicken Sie auf Erstellen, um die Erstellung des Load-Balancers abzuschließen.

Möglicherweise müssen Sie einige Minuten warten, bis der Load-Balancer komplett erstellt ist.

Load-Balancer testen

Prüfen Sie, ob Sie mithilfe des Load-Balancers eine Verbindung zur Webanwendung herstellen können:

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie in der Spalte Name auf web-app-load-balancer, um den soeben erstellten Load-Balancer zu maximieren.

  3. So stellen Sie über die externen statischen IP-Adressen eine Verbindung zur Web-App her:

    1. Kopieren Sie im Abschnitt Frontend die in der Spalte IP:Port angezeigte IP-Adresse.
    2. Öffnen Sie einen neuen Browsertab und fügen Sie die IP-Adresse in die Adressleiste ein. Damit sollte die Demo-Webanwendung angezeigt werden:

      Demo-Webanwendung

    Wann immer Sie die Seite aktualisieren, stellt der Load-Balancer Verbindungen zu anderen Instanzen in unterschiedlichen Zonen her. Dies liegt daran, dass Sie keine direkte Verbindung zu einer Instanz herstellen. Die Verbindung wird vielmehr zum Load-Balancer hergestellt, der die Instanz auswählt, an die Sie weitergeleitet werden.

    Wenn Sie fertig sind, schließen Sie den Browsertab der Demo-Webanwendung.

Zonenausfall simulieren

Sie können die Funktionalität des Load-Balancers beobachten, wenn Sie die vollständige Nichtverfügbarkeit bei einem Zonenausfall simulieren. Für diese Simulation werden alle Instanzen in einer angegebenen Zone gezwungen, einen fehlerhaften Zustand im Anfragepfad /health zu melden. Wenn diese Instanzen einen fehlerhaften Zustand melden, schlägt die Load-Balancing-Systemdiagnose dafür fehl. Der Load-Balancer weiß damit, dass an diese Instanzen kein Traffic mehr weiterzuleiten ist.

  1. Beobachten Sie, an welche Zonen der Load-Balancer Traffic weiterleitet.

    1. Rufen Sie in der Google Cloud Console Cloud Shell auf.

      Cloud Shell öffnen

      Cloud Shell wird in einem Bereich derGoogle Cloud Console geöffnet. Das Initialisieren der Sitzung kann einige Sekunden dauern.

    2. Speichern Sie die statische externe IP-Adresse des Load-Balancers:

      1. Rufen Sie die externe IP-Adresse aus der Front-End-Weiterleitungsregel des Load-Balancers ab. Geben Sie dazu den folgenden Befehl in Ihr Terminal ein:

        gcloud compute forwarding-rules describe web-app-ipv4-frontend --global
        

        Die Ausgabe sieht so aus: Kopieren Sie die EXTERNAl_IP_ADDRESS aus der Ausgabe.

        IPAddress: EXTERNAl_IP_ADDRESS
        ...
        
      2. Erstellen Sie eine lokale Bash-Variable:

        export LOAD_BALANCER_IP=EXTERNAl_IP_ADDRESS
        

        Ersetzen Sie EXTERNAl_IP_ADDRESS durch die externe IP-Adresse, die Sie kopiert haben.

    3. Führen Sie das folgende Bash-Skript aus, um zu überwachen, an welche Zonen der Load-Balancer Traffic weiterleitet:

      while true
      do
          BODY=$(curl -s "$LOAD_BALANCER_IP")
          NAME=$(echo -n "$BODY" | grep "load-balancing-web-app-group" | perl -pe 's/.+?load-balancing-web-app-group-(.+?)<.+/\1/')
          ZONE=$(echo -n "$BODY" | grep "us-" | perl -pe 's/.+?(us-.+?)<.+/\1/')
          echo $ZONE
          sleep 2 # Wait for 2 seconds
      done
      

      Dieses Skript versucht kontinuierlich, über die IP-Adresse für das Front-End des Load-Balancers eine Verbindung zur Webanwendung herzustellen, und gibt für jede Verbindung aus, in welcher Zone die Webanwendung ausgeführt wird.

      Die resultierende Ausgabe sollte die Zonen us-central1-b, us-central1-c und us-central1-f enthalten:

      us-central1-f
      us-central1-b
      us-central1-c
      us-central1-f
      us-central1-f
      us-central1-c
      us-central1-f
      us-central1-c
      us-central1-c
      

      Lassen Sie dieses Terminal geöffnet.

  2. Simulieren Sie jetzt bei laufendem Monitoring den Zonenausfall.

    1. Öffnen Sie in Cloud Shell eine zweite Terminalsitzung. Klicken Sie dazu auf die Schaltfläche  Hinzufügen.
    2. Erstellen Sie eine lokale Bash-Variable für die Projekt-ID:

      export PROJECT_ID=PROJECT_ID
      

      Dabei ist PROJECT_ID die Projekt-ID Ihres aktuellen Projekts, die in jeder neuen Cloud Shell-Zeile angezeigt wird:

      user@cloudshell:~ (PROJECT_ID)$
      
    3. Erstellen Sie eine lokale Bash-Variable für die Zone, die Sie deaktivieren möchten. Verwenden Sie den folgenden Befehl, um einen Ausfall der Zone us-central1-f zu simulieren:

      export DISABLE_ZONE=us-central1-f
      

      Führen Sie dann das unten gezeigte Bash-Skript aus. Dieses Skript bewirkt, dass die Demo-Webanwendungsinstanzen in der deaktivierten Zone mit Fehlern auf die Systemdiagnose des Load-Balancers reagieren. Dies führt dazu, dass der Load-Balancer Traffic von diesen Instanzen umleitet:

      export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --filter="zone:($DISABLE_ZONE)" --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "load-balancing-web-app-group")
      for i in $MACHINES;
      do
        NAME=$(echo "$i" | cut -f1 -d,)
        IP=$(echo "$i" | cut -f2 -d,)
        echo "Simulating zonal failure for zone $DISABLE_ZONE, instance $NAME"
        curl -q -s "http://$IP/makeUnhealthy" >/dev/null --retry 2
      done
      

      Nach einer kurzen Verzögerung leitet der Load-Balancer keinen Traffic mehr an die fehlerhafte Zone weiter. Daher wird im ersten Terminalfenster die Zone us-central1-f nicht mehr in der Ausgabe aufgeführt:

      us-central1-c
      us-central1-c
      us-central1-c
      us-central1-b
      us-central1-b
      us-central1-c
      us-central1-b
      us-central1-c
      us-central1-c
      

      Daran können Sie ablesen, dass der Load-Balancer nur an die fehlerfreien, reagierenden Instanzen Traffic weiterleitet.

      Lassen Sie beide Terminals geöffnet.

    4. Erstellen Sie im zweiten Terminal eine lokale Bash-Variable für die Zone, die Sie wiederherstellen möchten. Verwenden Sie den folgenden Befehl, um wieder Traffic an die Zone us-central1-f weiterzuleiten:

      export ENABLE_ZONE=us-central1-f
      

      Führen Sie dann das unten gezeigte Bash-Skript aus. Dieses Skript bewirkt, dass die Demo-Webanwendungsinstanzen in der deaktivierten Zone ohne Fehler auf die Systemdiagnose des Load-Balancers reagieren. Dies führt dazu, dass der Load-Balancer wieder Traffic an diese Instanzen verteilt:

      export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --filter="zone:($ENABLE_ZONE)" --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "load-balancing-web-app-group")
      for i in $MACHINES;
      do
        NAME=$(echo "$i" | cut -f1 -d,)
        IP=$(echo "$i" | cut -f2 -d,)
        echo "Simulating zonal restoration for zone $ENABLE_ZONE, instance $NAME"
        curl -q -s "http://$IP/makeHealthy" >/dev/null --retry 2
      done
      

      Nach einigen Minuten wird die Zone us-central1-f in der Ausgabe des ersten Terminalfensters schließlich aufgeführt:

      us-central1-b
      us-central1-b
      us-central1-c
      us-central1-f
      us-central1-c
      us-central1-c
      us-central1-b
      us-central1-c
      us-central1-f
      

      Daran können Sie ablesen, dass der Load-Balancer eingehenden Traffic wieder an alle Instanzen weiterleitet.

      Schließen Sie beide Terminals, wenn Sie fertig sind.

Bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Wenn Sie für diese Anleitung ein eigenes Projekt erstellt haben, löschen Sie das gesamte Projekt. Falls das Projekt Ressourcen enthält, die Sie behalten möchten, löschen Sie nur die in dieser Anleitung erstellten Ressourcen.

Projekt löschen

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Bestimmte Ressourcen löschen

In den folgenden Abschnitten wird beschrieben, wie Sie die spezifischen Ressourcen löschen, die Sie in dieser Anleitung erstellt haben.

Load-Balancer löschen

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf das Kästchen neben web-app-load-balancer.

  3. Klicken Sie oben auf der Seite auf  Löschen.

  4. Klicken Sie im neuen Fenster auf alle Kästchen. Klicken Sie anschließend auf Load-Balancer und ausgewählte Ressourcen löschen, um den Löschvorgang zu bestätigen.

Statische externe IP-Adresse löschen

Warten Sie, bis der Load-Balancer gelöscht ist, bevor Sie die statische externe IP-Adresse löschen.

  1. Rufen Sie in der Google Cloud Console die Seite Externe IP-Adressen auf.

    Zu externen IP-Adressen

  2. Klicken Sie auf das Kästchen neben web-app-ipv4.

  3. Klicken Sie oben auf der Seite auf Statische Adresse freigeben. Klicken Sie im neuen Fenster auf Freigeben, um die Freigabe zu bestätigen.

Instanzgruppe löschen

Warten Sie, bis der Load-Balancer gelöscht ist, bevor Sie die Instanzgruppe löschen.

  1. In the Google Cloud console, go to the Instance groups page.

    Go to Instance groups

  2. Select the checkbox for your load-balancing-web-app-group instance group.
  3. To delete the instance group, click Delete.

Instanzvorlage löschen

Sie müssen das Löschen der Instanzgruppe abwarten, bevor Sie die Instanzvorlage löschen. Sie können eine Instanzvorlage nicht löschen, wenn sie von einer verwalteten Instanzgruppe verwendet wird.

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

    Zu Instanzvorlagen

  2. Klicken Sie auf das Kästchen neben load-balancing-web-app-template.

  3. Klicken Sie oben auf der Seite auf  Löschen. Klicken Sie im neuen Fenster auf Löschen, um den Löschvorgang zu bestätigen.

VPC-Netzwerk löschen

Sie müssen das Löschen der Instanzgruppe abwarten, bevor Sie das VPC-Netzwerk löschen. Sie können ein VPC-Netzwerk nicht löschen, wenn es noch von anderen Ressourcen verwendet wird.

  1. Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf web-app-vpc.

  3. Klicken Sie oben auf der Seite auf  VPC-Netzwerk löschen. Klicken Sie im neuen Fenster auf Löschen, um den Löschvorgang zu bestätigen.

Weitere Informationen