Diese Anleitung vermittelt anhand eines Beispiels, wie Sie Failover für einen externen Passthrough-Network-Load-Balancer mit einem Backend-Dienst konfigurieren. Bevor Sie diese Anleitung durcharbeiten, sollten Sie sich mit Folgendem vertraut machen:
- Externer Passthrough-Network-Load-Balancer mit Backend-Dienst – Übersicht
- Failover-Konzepte für externe Passthrough-Network-Load-Balancer
- Übersicht über Firewallregeln
- Systemdiagnosekonzepte
Berechtigungen
Damit Sie dieser Anleitung folgen können, müssen Sie Instanzen erstellen und ein Netzwerk in einem Projekt ändern. Sie sollten daher entweder Inhaber oder Bearbeiter des Projekts sein oder über alle folgenden IAM-Rollen für Compute Engine verfügen:
Aufgabe | Erforderliche Rolle |
---|---|
Load-Balancer-Komponenten erstellen | Netzwerkadministrator |
Firewallregeln hinzufügen und löschen | Sicherheitsadministrator |
Instanzen erstellen | Compute-Instanzadministrator |
Weitere Informationen finden Sie in folgenden Leitfäden:
Einrichtung
In dieser Anleitung erfahren Sie, wie Sie einen externen Passthrough-Network-Load-Balancer konfigurieren und testen, der Failover verwendet. Die Schritte in diesem Abschnitt erläutern, wie Sie folgende Elemente konfigurieren:
- Back-End-VMs:
- Ein primäres Back-End in einer nicht verwalteten Instanzgruppe in Zone
us-west1-a
- Ein Failover-Back-End in einer nicht verwalteten Instanzgruppe in Zone
us-west1-c
- Ein primäres Back-End in einer nicht verwalteten Instanzgruppe in Zone
- Firewall-Regeln, die eingehende Verbindung zu Backend-VMs ermöglichen
- Eine Client-VM zum Testen von Verbindungen und Beobachten des Failover-Verhaltens
- Die folgenden Komponenten für externe Passthrough-Network-Load-Balancer:
- Eine Systemdiagnose für den Backend-Dienst
- Ein Back-End-Dienst in der Region
us-west1
, um die Verteilung von Verbindungen zwischen den Back-End-VMs zu verwalten - Eine Weiterleitungsregel und eine IP-Adresse für das Frontend des Load-Balancers
Die Architektur dieses Beispiels sieht so aus:
Back-End-VMs und Instanzgruppen erstellen
In diesem Schritt erstellen Sie die Back-End-VMs und nicht verwalteten Instanzgruppen:
- Die Instanzgruppe
ig-a
inus-west1-a
ist ein primäres Back-End mit zwei VMs:vm-a1
vm-a2
- Die Instanzgruppe
ig-c
inus-west1-c
ist ein Failover-Back-End mit zwei VMs:vm-c1
vm-c2
Das primäre und das Failover-Back-End werden in getrennten Zonen platziert, um die Anleitung zu vereinfachen und das Failover zu ermöglichen, falls eine Zone ausfällt.
Jede primäre und Backup-VM ist so konfiguriert, dass ein Apache-Webserver auf TCP-Port 80 ausgeführt wird. Apache ist standardmäßig für die Bindung an eine beliebige IP-Adresse konfiguriert. Network-Load-Balancer liefern Pakete und behalten dabei die Ziel-IP-Adresse bei.
Achten Sie darauf, dass die auf Ihren primären und Backup-VMs ausgeführte Serversoftware die IP-Adresse der Weiterleitungsregel des Load-Balancers überwacht. Die Ziel-IP-Adresse eines Pakets, das ein externer Passthrough-Network-Load-Balancer an eine Backend-VM liefert, ist die IP-Adresse der Weiterleitungsregel.
Zur Vereinfachung der Anleitung führen alle primären und Backend-VMs Debian GNU/Linux 9 aus.
Console
Backend-VMs erstellen
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf. Zu Seite „VM-Instanzen“
- Wiederholen Sie die nachstehenden Schritte, um vier VMs mit den folgenden Namen- und Zonenkombinationen zu erstellen.
- Name:
vm-a1
, Zone:us-west1-a
- Name:
vm-a2
, Zone:us-west1-a
- Name:
vm-c1
, Zone:us-west1-c
- Name:
vm-c2
, Zone:us-west1-c
- Name:
- Klicken Sie auf Instanz erstellen.
- Legen Sie den Namen wie in Schritt 2 angegeben fest.
- Wählen Sie für die Region
us-west1
aus und legen Sie die Zone wie in Schritt 2 angegeben fest. - Prüfen Sie im Bereich Bootlaufwerk, ob das ausgewählte Image Debian GNU/Linux 12 (Bookworm) ist. Klicken Sie auf Auswählen, wenn Sie das Image ändern möchten.
- Klicken Sie auf Erweiterte Optionen.
- Klicken Sie auf Netzwerk und konfigurieren Sie das folgende Feld:
- Geben Sie bei Netzwerk-Tags den Wert
network-lb
ein.
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Verwaltung. Fügen Sie im Feld Startskript das nachfolgende Skript ein. Der Skriptinhalt ist für alle vier VMs gleich:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Klicken Sie auf Erstellen.
Instanzgruppen erstellen
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wiederholen Sie die folgenden Schritte, um mit diesen Kombinationen zwei nicht verwaltete Instanzgruppen mit jeweils zwei VMs zu erstellen.
- Instanzgruppe:
ig-a
, Zone:us-west1-a
, VMs:vm-a1
undvm-a2
- Instanzgruppe:
ig-c
, Zone:us-west1-c
, VMs:vm-c1
undvm-c2
- Instanzgruppe:
Klicken Sie auf Instanzgruppe erstellen.
Klicken Sie auf Neue nicht verwaltete Instanzgruppe.
Legen Sie Name wie in Schritt 2 angegeben fest.
Wählen Sie im Bereich Standort als Region
us-west1
aus und legen Sie dann wie in Schritt 2 angegeben eine Zone fest.Geben Sie bei Netzwerk den Parameter
default
ein.Fügen Sie im Bereich VM-Instanzen die in Schritt 2 angegebenen VMs hinzu.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie vier VMs, indem Sie den folgenden Befehl viermal ausführen und die nachstehenden vier Kombinationen für
VM-NAME
undZONE
verwenden. Der Skriptinhalt ist für alle vier VMs identisch.VM-NAME
:vm-a1
;ZONE
:us-west1-a
VM-NAME
:vm-a2
;ZONE
:us-west1-a
VM-NAME
:vm-c1
;ZONE
:us-west1-c
VM-NAME
:vm-c2
;ZONE
:us-west1-c
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=network-lb \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Erstellen Sie die zwei nicht verwalteten Instanzgruppen in jeder Zone:
gcloud compute instance-groups unmanaged create ig-a \ --zone us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone us-west1-c
Fügen Sie den entsprechenden Instanzgruppen die VMs hinzu:
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone us-west1-a \ --instances vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone us-west1-c \ --instances vm-c1,vm-c2
Firewallregeln konfigurieren
Erstellen Sie eine Firewallregel, die externen Traffic zu den Back-End-Instanzen zulässt.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die Traffic von jeder Quelle zulässt. Verwenden Sie die folgenden Werte:
- Name:
allow-network-lb
. - Netzwerk:
default
- Priorität:
1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen.
- Ziele: Angegebene Zieltags
- Zieltags:
network-lb
- Quellfilter: IPv4-Bereiche.
- Quell-IP-Bereiche:
0.0.0.0/0
, der Traffic von jeder Quelle zulässt. Dadurch können sowohl der externe Traffic als auch die Systemdiagnose die Backend-Instanzen erreichen. - Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus.
Klicken Sie das Kästchen TCP an und geben Sie
80
ein.
- Name:
Klicken Sie auf Erstellen.
Klicken Sie noch einmal auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen zu den Instanzen zulässt. Verwenden Sie die folgenden Werte:
- Name:
allow-ssh
- Netzwerk:
default
- Priorität:
1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Zieltags
- Zieltags:
network-lb
- Quellfilter: IPv4-Bereiche.
- IPv4-Quellbereiche:
0.0.0.0/0
- Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus.
Klicken Sie das Kästchen TCP an und geben Sie
22
ein.
- Name:
Klicken Sie auf Erstellen.
gcloud
gcloud compute firewall-rules create allow-network-lb \ --target-tags network-lb \ --allow tcp:80
gcloud compute firewall-rules create allow-ssh \ --target-tags network-lb \ --allow tcp:22
Komponenten für den Load-Balancer konfigurieren
Mit den folgenden Schritten werden die folgenden Komponenten für den externen Passthrough-Network-Load-Balancer konfiguriert:
Systemdiagnose: Dieses Beispiel verwendet eine HTTP-Systemdiagnose, die nur auf die HTTP-Antwort
200
(OK) prüft.Backend-Dienst: Da im Beispiel HTTP-Traffic über den internen Load-Balancer weitergeleitet wird, gibt die Konfiguration TCP und nicht UDP an. Zur Illustration von Failover hat dieser Backend-Dienst eine Failover-Quote von
0.75
.Weiterleitungsregel: Dieses Beispiel erstellt eine einzelne interne Weiterleitungsregel.
Console
Konfiguration starten
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
- Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Backend-Konfiguration
- Geben Sie auf der Seite Externen Passthrough-Network-Load-Balancer erstellen für den neuen Load Balancer den Namen
tcp-network-lb
ein. - Klicken Sie auf Backend-Konfiguration. Der zuvor für den Load-Balancer unter Name eingegebene Wert wird angezeigt, kann aber nicht geändert werden.
- Click Backend configuration and make the following changes:
- Wählen Sie als Region us-west1 aus.
- Wählen Sie unter Backends im Drop-down-Menü Instanzgruppe
ig-a
aus. Klicken Sie auf Fertig. - Klicken Sie auf Backend hinzufügen und wiederholen Sie diesen Schritt, um
ig-c
hinzuzufügen. Klicken Sie das Kästchen für Diese Instanzgruppe als Failover-Gruppe für Sicherungen verwenden an. - Wählen Sie unter Systemdiagnose die Option Weitere Systemdiagnose erstellen oder Weitere Systemdiagnose erstellen aus und geben Sie die folgenden Informationen ein:
- Name:
hc-http-80
- Protokoll:
TCP
- Port:
80
- Name:
- Klicken Sie auf Speichern und fortfahren.
- Klicken Sie auf Erweiterte Konfigurationen.
- Geben Sie für Failover-Quote den Wert
0.75
ein. - Überprüfen Sie, bevor Sie fortfahren, ob sich neben Back-End-Konfiguration ein blaues Häkchen befindet.
Frontend-Konfiguration
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie für
network-lb-forwarding-rule
einen Namen ein. - Klicken Sie unter IP auf das Drop-down-Menü und wählen Sie IP-Adresse erstellen aus.
- Legen Sie im Bildschirm Neue statische IP-Adresse reservieren für Name den Wert
network-lb-ip
fest. - Klicken Sie auf Reservieren.
- Legen Sie im Bildschirm Neue statische IP-Adresse reservieren für Name den Wert
- Wählen Sie Einzeln aus und geben Sie als Portnummer
80
ein. Klicken Sie auf die Schaltfläche Fertig.
Bei erfolgreicher Einrichtung wird links neben Frontend-Konfiguration ein blauer Kreis mit einem Häkchen angezeigt.
Konfiguration überprüfen
- Klicken Sie auf die Schaltfläche Prüfen und abschließen, um alle Konfigurationseinstellungen für den Load-Balancer zu überprüfen.
Klicken Sie, wenn die Einstellungen korrekt sind, auf Erstellen. Es kann ein paar Minuten dauern, bis der Load-Balancer erstellt ist.
Auf dem Load-Balancing-Bildschirm sollte in der Spalte „Back-End“ ein grünes Häkchen für den neuen Load-Balancer angezeigt werden. Dies weist darauf hin, dass der neue Load-Balancer fehlerfrei ist.
gcloud
Erstellen Sie eine statische externe IP-Adresse für den Load-Balancer.
gcloud compute addresses create network-lb-ip \ --region us-west1
Erstellen Sie eine neue HTTP-Systemdiagnose, um die TCP-Konnektivität zu den VMs auf Port 80 zu testen.
gcloud compute health-checks create http hc-http-80 \ --region us-west1 \ --port 80
Erstellen Sie den Back-End-Dienst für HTTP-Traffic:
gcloud compute backend-services create network-lb-backend-service \ --protocol tcp \ --region us-west1 \ --health-checks hc-http-80 \ --health-checks-region us-west1 \ --failover-ratio 0.75
Fügen Sie dem Back-End-Dienst ein primäres Back-End hinzu:
gcloud compute backend-services add-backend network-lb-backend-service \ --region us-west1 \ --instance-group ig-a \ --instance-group-zone us-west1-a
Fügen Sie dem Back-End-Dienst ein Failover-Back-End hinzu:
gcloud compute backend-services add-backend network-lb-backend-service \ --region us-west1 \ --instance-group ig-c \ --instance-group-zone us-west1-c \ --failover
Erstellen Sie eine Weiterleitungsregel für den Backend-Dienst. Verwenden Sie die in Schritt 1 reservierte IP-Adresse als statische externe IP-Adresse des Load-Balancers.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --region us-west1 \ --load-balancing-scheme external \ --address network-lb-ip\ --ports 80 \ --backend-service network-lb-backend-service
Tests
Diese Tests zeigen Ihnen, wie Sie die Konfiguration des Load-Balancers validieren und das erwartete Verhalten ermitteln können.
Traffic an den Load-Balancer senden
Dieses Verfahren sendet externen Traffic an den Load-Balancer. Dieses Verfahren gilt für die anderen Tests.
Stellen Sie eine Verbindung zur Client-VM-Instanz her.
gcloud compute forwarding-rules describe network-lb-forwarding-rule \ --region us-west1
Stellen Sie mit
curl
eine Webanfrage an den Load-Balancer, um dessen IP-Adresse zu kontaktieren.curl http://IP_ADDRESS
Beachten Sie den vom Befehl
curl
zurückgegebenen Text. Der Name der Back-End-VM, die die Antwort generiert, wird in diesem Text angezeigt. Beispiel:Page served from: vm-a1
Ausgangszustand testen
Nachdem Sie den Beispiel-Load-Balancer konfiguriert haben, sollten alle vier Back-End-VMs fehlerfrei sein:
- Die beiden primären VMs
vm-a1
undvm-a2
- Die beiden Backup-VMs
vm-c1
undvm-c2
Folgen Sie dem Testverfahren, um Traffic an den Load-Balancer zu senden.
Wiederholen Sie den zweiten Schritt einige Male. Das erwartete Verhalten besteht darin, dass der Traffic von den beiden primären VMs vm-a1
und vm-a2
bereitgestellt wird, da beide fehlerfrei sind. Jede primäre VM sollte etwa in der Hälfte der Fälle eine Antwort liefern, da für diesen Load-Balancer keine Sitzungsaffinität konfiguriert wurde.
Failover testen
Dieser Test simuliert den Ausfall von vm-a1
, sodass Sie das Failover-Verhalten beobachten können.
Stellen Sie eine Verbindung zur VM
vm-a1
her.gcloud compute ssh vm-a1 --zone us-west1-a
Halten Sie den Apache-Webserver an. Nach zehn Sekunden erkennt Google Cloud diese VM als fehlerhaft. (Die im Rahmen der Konfiguration erstellte Systemdiagnose
hc-http-80
verwendet das Standardprüfintervall von fünf Sekunden und als Fehlerschwellenwert zwei aufeinanderfolgende fehlgeschlagene Versuche.)sudo apachectl stop
Folgen Sie dem Testverfahren, um Traffic an den Load-Balancer zu senden. Wiederholen Sie den zweiten Schritt einige Male. Das erwartete Verhalten besteht darin, dass der Traffic jetzt von den beiden Backup-VMs
vm-c1
undvm-c2
bereitgestellt wird. Da nur eine primäre VM,vm-a2
, fehlerfrei ist, beträgt das Verhältnis der Zahl fehlerfreier primärer VMs zur Gesamtzahl primärer VMs0.5
. Diese Zahl liegt unter dem Failover-Schwellenwert von0.75
. Daher hat Google Cloud den aktiven Pool des Load-Balancers neu konfiguriert, um die Sicherungs-VMs zu verwenden. Nun sollte jede Backup-VM etwa in der Hälfte der Fälle eine Antwort geben, wenn für diesen Load-Balancer keine Sitzungsaffinität konfiguriert ist.
Failback testen
Dieser Test simuliert ein Failback durch den Neustart des Apache-Servers auf vm-a1
.
Stellen Sie eine Verbindung zur VM
vm-a1
her.gcloud compute ssh vm-a1 --zone us-west1-a
Starten Sie den Apache-Webserver und warten Sie zehn Sekunden.
sudo apachectl start
Folgen Sie dem Testverfahren für Clients. Wiederholen Sie den zweiten Schritt einige Male. Das erwartete Verhalten besteht darin, dass der Traffic von den beiden primären VMs
vm-a1
undvm-a2
bereitgestellt wird. Da beide primären VMs fehlerfrei sind, liegt das Verhältnis der Anzahl fehlerfreier primärer VMs zur Gesamtzahl primärer VMs bei1.0
und damit über dem Failover-Schwellenwert von0.75
. Daher hat Google Cloud den aktiven Pool so konfiguriert, dass wieder die primären VMs verwendet werden.
Weitere Back-End-VMs hinzufügen
In diesem Abschnitt wird die Beispielkonfiguration erweitert, indem dem Load-Balancer weitere primäre und Backup-VMs hinzugefügt werden. Dazu werden zwei weitere Back-End-Instanzgruppen erstellt, um zu zeigen, dass Sie primäre und Backup-VMs auf mehrere Zonen in derselben Region verteilen können:
- Eine dritte Instanzgruppe,
ig-d
inus-west1-c
, dient als primäres Back-End mit zwei VMs:vm-d1
vm-d2
- Die vierte Instanzgruppe,
ig-b
inus-west1-a
, dient als Failover-Back-End mit zwei VMs:vm-b1
vm-b2
Die geänderte Architektur dieses Beispiels sieht so aus:
Zusätzliche VMs und Instanzgruppen erstellen
Führen Sie die folgenden Schritte aus, um die zusätzlichen primären und Backup-VMs sowie die zugehörigen nicht verwalteten Instanzgruppen zu erstellen.
Console
Backend-VMs erstellen
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wiederholen Sie die nachstehenden Schritte, um vier VMs mit den folgenden Namen- und Zonenkombinationen zu erstellen.
- Name:
vm-b1
, Zone:us-west1-a
- Name:
vm-b2
, Zone:us-west1-a
- Name:
vm-d1
, Zone:us-west1-c
- Name:
vm-d2
, Zone:us-west1-c
- Name:
Klicken Sie auf Instanz erstellen.
Legen Sie den Namen wie in Schritt 2 angegeben fest.
Wählen Sie für die Region
us-west1
aus und legen Sie die Zone wie in Schritt 2 angegeben fest.Prüfen Sie im Bereich Bootlaufwerk, ob das ausgewählte Image Debian GNU/Linux 9 Stretch ist. Klicken Sie auf Auswählen, wenn Sie das Image ändern möchten.
Klicken Sie auf Erweiterte Optionen.
Klicken Sie auf Netzwerk und konfigurieren Sie das folgende Feld:
- Geben Sie bei Netzwerk-Tags den Wert
network-lb
ein.
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Verwaltung. Fügen Sie im Feld Startskript das nachfolgende Skript ein. Der Skriptinhalt ist für alle vier VMs gleich:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Klicken Sie auf Erstellen.
Instanzgruppen erstellen
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wiederholen Sie die folgenden Schritte, um mit diesen Kombinationen zwei nicht verwaltete Instanzgruppen mit jeweils zwei VMs zu erstellen.
- Instanzgruppe:
ig-b
, Zone:us-west1-a
, VMs:vm-b1
undvm-b2
- Instanzgruppe:
ig-d
, Zone:us-west1-c
, VMs:vm-d1
undvm-d2
- Instanzgruppe:
Klicken Sie auf Instanzgruppe erstellen.
Klicken Sie auf Neue nicht verwaltete Instanzgruppe.
Legen Sie Name wie in Schritt 2 angegeben fest.
Wählen Sie im Bereich Standort als Region
us-west1
aus und legen Sie dann wie in Schritt 2 angegeben eine Zone fest.Geben Sie bei Netzwerk den Parameter
default
ein.Fügen Sie im Bereich VM-Instanzen die in Schritt 2 angegebenen VMs hinzu.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie vier VMs, indem Sie den folgenden Befehl viermal ausführen und die nachstehenden vier Kombinationen für
VM-NAME
undZONE
verwenden. Der Skriptinhalt ist für alle vier VMs identisch.VM-NAME
:vm-b1
;ZONE
:us-west1-a
VM-NAME
:vm-b2
;ZONE
:us-west1-a
VM-NAME
:vm-d1
;ZONE
:us-west1-c
VM-NAME
:vm-d2
;ZONE
:us-west1-c
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=network-lb \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Erstellen Sie die zwei nicht verwalteten Instanzgruppen in jeder Zone:
gcloud compute instance-groups unmanaged create ig-b \ --zone us-west1-a gcloud compute instance-groups unmanaged create ig-d \ --zone us-west1-c
Fügen Sie den entsprechenden Instanzgruppen die VMs hinzu:
gcloud compute instance-groups unmanaged add-instances ig-b \ --zone us-west1-a \ --instances vm-b1,vm-b2 gcloud compute instance-groups unmanaged add-instances ig-d \ --zone us-west1-c \ --instances vm-d1,vm-d2
Primäres Backend hinzufügen
Dieses Verfahren kann als Vorlage dienen, um dem Backend-Dienst eines vorhandenen externen Passthrough-Network-Load-Balancers eine nicht verwaltete Instanzgruppe als primäres Backend hinzuzufügen. Im konkreten Fall der Beispielkonfiguration zeigt das Verfahren, wie Sie dem Load-Balancer ig-d
die Instanzgruppe network-lb
als primäres Backend hinzufügen.
Console
Bearbeiten Sie die Load-Balancer-Konfiguration, um ein primäres Backend hinzuzufügen.
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf den Load-Balancer, den Sie ändern möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie auf Backend-Konfiguration und nehmen Sie folgende Änderungen vor:
- Klicken Sie unter Backends auf Backend hinzufügen.
- Wählen Sie im Drop-down-Menü die Instanzgruppe aus, die als primäres Back-End hinzugefügt werden soll. In diesem Fall ist das
ig-d
. - Klicken Sie auf Fertig.
- Überprüfen Sie, bevor Sie fortfahren, ob sich neben Back-End-Konfiguration ein blaues Häkchen befindet.
Konfiguration prüfen
- Klicken Sie auf die Schaltfläche Prüfen und abschließen und bestätigen Sie, dass das neue primäre Back-End unter Back-End angezeigt wird.
Wenn die Einstellungen korrekt sind, klicken Sie auf Erstellen. Es kann ein paar Minuten dauern, bis der Load-Balancer erstellt ist.
Auf dem Load-Balancing-Bildschirm sollte in der Spalte „Back-End“ ein grünes Häkchen für den neuen Load-Balancer angezeigt werden. Dies weist darauf hin, dass der neue Load-Balancer fehlerfrei ist.
gcloud
Verwenden Sie den folgenden Befehl gcloud
, um ein primäres Backend einem Backend-Dienst eines vorhandenen externen Passthrough-Network-Load-Balancers hinzuzufügen.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION
Dabei gilt:
BACKEND_SERVICE_NAME
ist der Name des Back-End-Dienstes des Load-Balancers. Verwenden Sie für das Beispielnetwork-lb-backend-service
.INSTANCE_GROUP_NAME
ist der Name der Instanzgruppe, die als primäres Back-End hinzugefügt werden soll. Verwenden Sie für das Beispielig-d
.INSTANCE_GROUP_ZONE
ist die Zone, in der die Instanzgruppe definiert ist. Verwenden Sie für das Beispielus-west1-c
.REGION
ist die Region des Load-Balancers. Verwenden Sie für das Beispielus-west1
.
Failover-Backend hinzufügen
Dieses Verfahren kann als Vorlage dienen, um dem Backend-Dienst eines vorhandenen externen Passthrough-Network-Load-Balancers eine nicht verwaltete Instanzgruppe als Failover-Backend hinzuzufügen. Im konkreten Fall der Beispielkonfiguration zeigt das Verfahren, wie Sie dem Load-Balancer ig-b
die Instanzgruppe network-lb
als primäres Backend hinzufügen.
Console
Bearbeiten Sie die Load-Balancer-Konfiguration, um ein primäres Backend hinzuzufügen.
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf den Load-Balancer, den Sie ändern möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie auf Backend-Konfiguration und nehmen Sie folgende Änderungen vor:
- Klicken Sie unter Backends auf Backend hinzufügen.
- Wählen Sie im Drop-down-Menü die Instanzgruppe aus, die als Failover-Back-End hinzugefügt werden soll. In diesem Fall ist es
ig-b
. - Klicken Sie das Kästchen für Diese Instanzgruppe als Failover-Gruppe für Sicherungen verwenden an.
- Klicken Sie auf Fertig.
- Überprüfen Sie, bevor Sie fortfahren, ob sich neben Back-End-Konfiguration ein blaues Häkchen befindet.
Konfiguration prüfen
- Klicken Sie auf die Schaltfläche Prüfen und abschließen und bestätigen Sie, dass das neue primäre Back-End unter Back-End angezeigt wird.
Wenn die Einstellungen korrekt sind, klicken Sie auf Erstellen. Es kann ein paar Minuten dauern, bis der Load-Balancer erstellt ist.
Auf dem Load-Balancing-Bildschirm sollte in der Spalte „Back-End“ ein grünes Häkchen für den neuen Load-Balancer angezeigt werden. Dies weist darauf hin, dass der neue Load-Balancer fehlerfrei ist.
gcloud
Verwenden Sie den folgenden Befehl gcloud
, um ein Failover-Backend dem Backend-Dienst eines vorhandenen externen Passthrough-Network-Load-Balancers hinzuzufügen.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
Dabei gilt:
BACKEND_SERVICE_NAME
ist der Name des Back-End-Dienstes des Load-Balancers. Verwenden Sie für das Beispielnetwork-lb-backend-service
.INSTANCE_GROUP_NAME
ist der Name der Instanzgruppe, die als Failover-Back-End hinzugefügt werden soll. Verwenden Sie für das Beispielig-b
.INSTANCE_GROUP_ZONE
ist die Zone, in der die Instanzgruppe definiert ist. Verwenden Sie für das Beispielus-west1-a
.REGION
ist die Region des Load-Balancers. Verwenden Sie für das Beispielus-west1
.
Primäres oder Failover-Backend konvertieren
Sie können ein primäres Backend in ein Failover-Backend konvertieren oder umgekehrt, ohne die Instanzgruppe aus dem Backend-Dienst des externen Passthrough-Network-Load-Balancers zu entfernen.
gcloud
Verwenden Sie den folgenden Befehl gcloud
, um ein vorhandenes primäres Back-End in ein Failover-Back-End umzuwandeln:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
Verwenden Sie den folgenden Befehl gcloud
, um ein vorhandenes Failover-Back-End in ein primäres Back-End umzuwandeln:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --no-failover
Dabei gilt:
BACKEND_SERVICE_NAME
ist der Name des Back-End-Dienstes des Load-Balancers.INSTANCE_GROUP_NAME
ist der Name der Instanzgruppe.INSTANCE_GROUP_ZONE
ist die Zone, in der die Instanzgruppe definiert ist.REGION
ist die Region des Load-Balancers.
Failover-Richtlinien konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie eine Failover-Richtlinie für den Backend-Dienst eines externen Passthrough-Network-Load-Balancers verwalten. Eine Failover-Richtlinie enthält die folgenden Parameter:
- Failover-Quote
- Traffic wird gelöscht, wenn alle Back-End-VMs fehlerhaft sind
- Verbindungsausgleich bei Failover
Weitere Informationen zu den Parametern einer Failover-Richtlinie finden Sie unter:
- Failover-Quote festlegen
- Traffic unterbrechen, wenn keine intakte VM vorhanden ist
- Verbindungsausgleich bei Failover und Failback
Failover-Richtlinie definieren
In der folgenden Anleitung wird beschrieben, wie Sie die Failover-Richtlinie für einen vorhandenen externen Passthrough-Network-Load-Balancer definieren.
gcloud
Aktualisieren Sie den Backend-Dienst des Load-Balancers, um eine Failover-Richtlinie mit der gcloud CLI zu definieren:
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION \ --failover-ratio FAILOVER_RATIO \ --connection-drain-on-failover \ --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \ --drop-traffic-if-unhealthy
Dabei gilt:
BACKEND_SERVICE_NAME
ist der Name des Back-End-Dienstes des Load-Balancers. Verwenden Sie für das Beispielnetwork-lb
.REGION
ist die Region des Load-Balancers. Verwenden Sie für das Beispielus-west1
.FAILOVER_RATIO
ist die Failover-Quote. Mögliche Werte liegen im Bereich von0.0
bis1.0
. Verwenden Sie für das Beispiel0.75
.CONNECTION_DRAINING_TIMEOUT
ermöglicht die Beibehaltung von TCP-Verbindungen auf VMs bis zur Dauer des Zeitlimits für den Verbindungsausgleich. Dies gilt auch für VMs, die sich nicht mehr im aktiven Pool befinden.
Failover-Richtlinie aufrufen
In der folgenden Anleitung wird beschrieben, wie Sie die vorhandene Failover-Richtlinie für einen externen Passthrough-Network-Load-Balancer aufrufen.
gcloud
Verwenden Sie den folgenden Befehl, um die Einstellungen der Failover-Richtlinie mithilfe der gcloud CLI aufzulisten. Für nicht definierte Einstellungen in einer Failover-Richtlinie werden die Standardwerte der Failover-Richtlinie verwendet.
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION \ --format="get(failoverPolicy)"
Dabei gilt:
BACKEND_SERVICE_NAME
ist der Name des Back-End-Dienstes des Load-Balancers. Verwenden Sie für das Beispielnetwork-lb-backend-service
.REGION
ist die Region des Load-Balancers. Verwenden Sie für das Beispielus-west1
.
Nächste Schritte
- Wichtige Grundlagen finden Sie in der Übersicht über externe Passthrough-Network-Load-Balancer.
- Wichtige Informationen zum Failover finden Sie unter Failover-Konzepte für externe Passthrough-Network-Load-Balancer.
- Eine Beispielkonfiguration finden Sie unter Externen Passthrough-Network-Load-Balancer einrichten.