1. Einführung
Diese Anleitung enthält eine Anweisungen zum Übertragen eines vorhandenen Netzwerk-Load-Balancers von einem Zielpool-Back-End zu einem regionalen Back-End-Dienst.
Lerninhalte
- Vorteile von regionalen Backend-Diensten
- Netzwerk-Load-Balancer mit Zielpools erstellen
- Zielpool validieren
- Regionalen Backend-Dienst mit nicht verwalteten Instanzgruppen erstellen
- Migration vom Zielpool zum Backend-Dienst durchführen
- Back-End-Dienste validieren
Voraussetzungen
- Erfahrung mit Load-Balancern
2. Regionale Back-End-Dienste für Netzwerk-Load-Balancing – Übersicht
Mit Network Load Balancing haben Google Cloud-Kunden ein leistungsstarkes Tool zur Verteilung von externem Traffic auf virtuelle Maschinen in einer Google Cloud-Region. Damit unsere Kunden eingehenden Traffic leichter verwalten und das Verhalten des Load Balancers steuern können, haben wir vor Kurzem die Unterstützung von Backend-Diensten für das Netzwerk-Load-Balancing hinzugefügt. Das bietet unseren Kunden eine verbesserte Skalierbarkeit, Geschwindigkeit, Leistung und Ausfallsicherheit bei der Bereitstellung – und das alles auf einfache Weise.
Wir unterstützen jetzt Back-End-Dienste mit Network Load Balancing. Das ist eine erhebliche Verbesserung gegenüber dem bisherigen Ansatz mit Zielpools. Ein Back-End-Dienst definiert, wie unsere Load-Balancer eingehenden Traffic an angehängte Back-Ends verteilen, und bietet eine detaillierte Steuerung des Load-Balancer-Verhaltens.
3. Vorteile regionaler Backend-Dienste
Die Auswahl eines regionalen Backend-Dienstes als Load Balancer bietet eine Reihe von Vorteilen für Ihre Umgebung.

Regionale Backend-Dienste bieten von Anfang an Folgendes:
- Systemdiagnosen mit hoher Genauigkeit mit einheitlichen Systemdiagnosen: Mit regionalen Back-End-Diensten können Sie jetzt die Systemdiagnosefunktionen des Load-Balancings voll ausschöpfen und sind nicht mehr an die Einschränkungen von Legacy-HTTP-Systemdiagnosen gebunden. Aus Compliance-Gründen waren TCP-Systemdiagnosen mit Unterstützung für benutzerdefinierte Anfrage- und Antwortstrings oder HTTPS eine häufige Anfrage von Kunden, die Netzwerk-Load-Balancing verwenden.
- Höhere Ausfallsicherheit mit Failover-Gruppen: Mit Failover-Gruppen können Sie eine Instanzgruppe als primär und eine andere als sekundär festlegen und den Traffic weiterleiten, wenn der Funktionsstatus der Instanzen in der aktiven Gruppe einen bestimmten Schwellenwert unterschreitet. Wenn Sie mehr Kontrolle über den Failover-Mechanismus haben möchten, können Sie einen Agenten wie keepalived oder pacemaker verwenden und eine erfolgreiche oder fehlgeschlagene Systemdiagnose basierend auf Zustandsänderungen der Backend-Instanz bereitstellen.
- Skalierbarkeit und Hochverfügbarkeit mit verwalteten Instanzgruppen: Regionale Backend-Dienste unterstützen verwaltete Instanzgruppen als Backends. Sie können jetzt eine Vorlage für Ihre Backend-VM-Instanzen angeben und Autoscaling basierend auf der CPU-Auslastung oder anderen Monitoringmesswerten nutzen.
Zusätzlich zu den oben genannten Vorteilen können Sie die Verbindungsunterbrechung für verbindungsorientierte Protokolle (TCP) nutzen und die Programmierzeit für große Bereitstellungen verkürzen.
Codelab-Netzwerktopologie
Diese Anleitung enthält eine Anweisungen zum Übertragen eines vorhandenen Netzwerk-Load-Balancers von einem Zielpool-Back-End zu einem regionalen Back-End-Dienst.
Durch den Wechsel zu einem regionalen Back-End-Dienst können Sie Features wie Nicht-Legacy-Systemdiagnosen (für TCP, SSL, HTTP, HTTPS und HTTP/2), verwaltete Instanzgruppen, Verbindungsausgleich und Failover-Richtlinien nutzen.
Dieser Leitfaden führt Sie durch die Umstellung des folgenden Beispiels eines zielpoolbasierten Netzwerk-Load-Balancers auf die Verwendung eines regionalen Back-End-Dienstes.

Vorher:Netzwerk-Load-Balancing mit Zielpool
Die resultierende Back-End-Dienst-basierte Bereitstellung des Netzwerk-Load-Balancers sieht so aus:

Nachher:Netzwerk-Load-Balancing mit einem regionalen Back-End-Dienst
In diesem Beispiel wird davon ausgegangen, dass Sie einen traditionellen zielpoolbasierten Netzwerk-Load-Balancer mit zwei Instanzen in Zone „us-central-1a“ und zwei Instanzen in Zone „us-central-1c“ haben.
Für eine solche Umstellung sind folgende Schritte erforderlich:
- Gruppieren Sie die Zielpoolinstanzen in Instanzgruppen. Backend-Dienste funktionieren nur mit verwalteten oder nicht verwalteten Instanzgruppen. Die Anzahl der Instanzen, die in einen einzelnen Zielpool verschoben werden können, ist nicht begrenzt. Allerdings haben Instanzgruppen eine maximale Größe. Wenn Ihr Zielpool mehr als die maximal zulässige Anzahl von Instanzen umfasst, müssen Sie die Back-Ends auf mehrere Instanzgruppen aufteilen. Wenn Ihre vorhandene Bereitstellung einen Sicherungszielpool enthält, erstellen Sie für diese Instanzen eine separate Instanzgruppe. Diese Instanzgruppe wird als Failover-Gruppe konfiguriert.
- Erstellen Sie einen regionalen Backend-Dienst. Wenn Ihre Bereitstellung einen Sicherungszielpool enthält, müssen Sie beim Erstellen des Backend-Dienstes ein Failover-Verhältnis festlegen. Dies sollte dem Failover-Verhältnis entsprechen, das zuvor für die Bereitstellung des Zielpools konfiguriert wurde.
- Fügen Sie dem Backend-Dienst Instanzgruppen hinzu, die zuvor erstellt wurden. Wenn Ihre Bereitstellung einen Sicherungszielpool enthält, markieren Sie die entsprechende Failover-Instanzgruppe mit dem Flag „–failover“, wenn Sie sie dem Backend-Dienst hinzufügen.
- Konfigurieren Sie eine Weiterleitungsregel, die auf den neuen Back-End-Dienst verweist. Dazu haben Sie zwei Möglichkeiten:
- Empfohlen: Aktualisieren Sie die vorhandene Weiterleitungsregel so, dass sie auf den Back-End-Dienst verweist. ODER
- Erstellen Sie eine neue Weiterleitung, die auf den Back-End-Dienst verweist. Dazu müssen Sie eine neue IP-Adresse für das Frontend des Load-Balancers erstellen. Ändern Sie dann die DNS-Einstellungen, um nahtlos von der IP-Adresse des alten Zielpoolpools zur neuen IP-Adresse zu wechseln.
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird später in diesem Codelab als PROJECT_ID bezeichnet.
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Google Cloud-Ressourcen verwenden zu können.
Die Durchführung dieses Codelabs sollte keine oder nur geringe Kosten verursachen. Folgen Sie bitte der Anleitung im Abschnitt „Bereinigen“, in der Sie erfahren, wie Sie Ressourcen herunterfahren können, damit nach Abschluss dieser Anleitung keine Gebühren anfallen. Neue Nutzer von Google Cloud kommen für das Programm für kostenlose Testversionen mit einem Guthaben von 300$ infrage.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Für dieses Lab benötigen Sie lediglich einen Browser.
Melden Sie sich in Cloud Shell an und legen Sie Ihre Projekt-ID fest.
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
4. VPC-Netzwerk erstellen
VPC-Netzwerk
Über Cloud Shell
gcloud compute networks create network-lb --subnet-mode custom
Subnetz erstellen
Über Cloud Shell
gcloud compute networks subnets create network-lb-subnet \
--network network-lb --range 10.0.0.0/24 --region us-central1
Firewallregeln erstellen
Über Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
Nicht verwaltete Instanzen erstellen
Instanzen erstellen – 2 Instanzen pro Zone, us-central1-a und us-central1-c
Instanz 1 über Cloud Shell erstellen
gcloud compute instances create www1 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"
Instanz 2 über Cloud Shell erstellen
gcloud compute instances create www2 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"
Instanz 3 über Cloud Shell erstellen
gcloud compute instances create www3 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"
Instanz 4 über Cloud Shell erstellen
gcloud compute instances create www4 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"
Firewallregel erstellen, um externen Traffic zu diesen VM-Instanzen zuzulassen
Über Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
Statische externe IP-Adresse für den Load Balancer erstellen
Über Cloud Shell
gcloud compute addresses create network-lb-ip-1 \
--region us-central1
Ressource für die Legacy-HTTP-Systemdiagnose hinzufügen
Über Cloud Shell
gcloud compute http-health-checks create basic-check
5. Weiterleitungsregel und Zielpool erstellen
Zielpool erstellen
gcloud compute target-pools create www-pool \
--region us-central1 --http-health-check basic-check
Fügen Sie die Instanzen dem Zielpool „us-central1-a“ hinzu.
gcloud compute target-pools add-instances www-pool \ --instances www1,www2 \ --instances-zone us-central1-a
Fügen Sie die Instanzen dem Zielpool „us-central1-c“ hinzu.
gcloud compute target-pools add-instances www-pool \ --instances www3,www4 \ --instances-zone us-central1-c
Weiterleitungsregel hinzufügen
gcloud compute forwarding-rules create www-rule \ --region us-central1 \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool
Funktionalität des Zielpools prüfen
Ermitteln Sie die IP-Adresse des Front-Ends, indem Sie „Load Balancers“ → „Frontends (www-rule)“ auswählen.
Verwenden Sie den Befehl „curl“ im Terminal Ihrer Workstation, um auf die externe IP-Adresse zuzugreifen und das Load-Balancing auf den vier Zielinstanzen zu beobachten. Schließen Sie das Terminal nach der Validierung.
while true; do curl -m1 IP_ADDRESS; done
6. Netzwerk-Load-Balancer vom Zielpool zum Backend-Dienst übertragen
Einheitliche Systemdiagnosen für Ihren Backend-Dienst erstellen
gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1
Instanzgruppen aus vorhandenen Instanzen aus dem Zielpool erstellen
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2
Instanzgruppen aus vorhandenen Instanzen aus dem Zielpool erstellen
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4
Back-End-Dienst erstellen und mit den neu erstellten Systemdiagnosen verknüpfen
gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external
Back-End-Dienst konfigurieren und Instanzgruppen hinzufügen
gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1 gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1
Vorhandene Weiterleitungsregel aktualisieren, um Backend-Dienste zu unterstützen
Notieren Sie sich den Namen der Weiterleitungsregel „www-rule“ und die zugehörige IP-Adresse:
Load-Balancer → Front-Ends auswählen
Außerdem wurden die vier Zielgruppenpools erwähnt.
Load-Balancer auswählen → „www-pool“ auswählen
Traffic an Backend-Dienste weiterleiten, indem Sie die vorhandene Weiterleitungsregel aktualisieren
gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1
Prüfen Sie, ob der Load-Balancer „www-pool“ nicht mehr mit dem Frontend „www-rule“ konfiguriert ist (siehe Screenshot unten).
Load Balancer → www-pool auswählen

Prüfen, ob die Frontend-Weiterleitungsregel jetzt dem Load Balancer „my-backend-service“ zugeordnet ist
Load-Balancer → Front-Ends auswählen
Der Regelname „www-rule“ wird beibehalten, die IP-Adresse wird beibehalten und der Load-Balancer „my-backend-service“ wird jetzt verwendet.
Verwenden Sie den Befehl „curl“ im Terminal Ihrer Workstation, um auf die externe IP-Adresse zuzugreifen und den Lastenausgleich für den neu zugeordneten Backend-Dienst zu beobachten. Schließen Sie das Terminal nach der Validierung.
while true; do curl -m1 IP_ADDRESS; done
7. Bereinigen
gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet gcloud compute backend-services delete my-backend-service --region us-central1 --quiet gcloud compute target-pools delete www-pool --region us-central1 --quiet gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet gcloud compute firewall-rules delete www-firewall-network-lb --quiet gcloud compute instances delete www4 --zone us-central1-c --quiet gcloud compute instances delete www3 --zone us-central1-c --quiet gcloud compute instances delete www2 --zone us-central1-a --quiet gcloud compute instances delete www1 --zone us-central1-a --quiet gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet gcloud compute networks delete network-lb --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet
8. Glückwunsch!
Herzlichen Glückwunsch zum Abschluss des Codelabs.
Behandelte Themen
- Vorteile von regionalen Backend-Diensten
- Netzwerk-Load-Balancer mit Zielpools erstellen
- Zielpool validieren
- Regionalen Backend-Dienst mit nicht verwalteten Instanzgruppen erstellen
- Migration vom Zielpool zum Backend-Dienst durchführen
- Back-End-Dienste validieren