Dies ist eine Anleitung zum Migrieren eines vorhandenen Passthrough-Network-Load-Balancers von einem Zielpool-Backend zu einem regionalen Backend-Dienst.
Durch den Wechsel zu einem regionalen Backend-Dienst können Sie Features wie Nicht-Legacy-Systemdiagnosen (für TCP, SSL, HTTP, HTTP, HTTPS und HTTP/2), verwaltete Instanzgruppen,Verbindungsausgleich und Failover-Richtlinien nutzen.
Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.
Dieser Leitfaden führt Sie durch die Migration des folgenden Beispiels eines zielpoolbasierten externen Passthrough-Network-Load-Balancers zur Verwendung eines regionalen Backend-Dienstes.
Die resultierende Bereitstellung eines Backend-Dienst-basierten externen Passthrough-Network-Load-Balancers sieht so aus:
In diesem Beispiel wird davon ausgegangen, dass Sie einen traditionellen zielpoolbasierten externen Passthrough-Network-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 allgemeine 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.
Backend-Instanzgruppen, die zuvor erstellt wurden, dem Backend-Dienst hinzufügen
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 Backend-Dienst verweist.
Folgende Optionen stehen zur Auswahl:
Aktualisieren Sie die vorhandene Weiterleitungsregel so, dass sie auf den Back-End-Dienst verweist (empfohlen).
Erstellen Sie eine neue Weiterleitungsregel, die auf den Backend-Dienst verweist. Dazu müssen Sie eine neue IP-Adresse für das Frontend des Load-Balancers erstellen. Ändern Sie dann Ihre DNS-Einstellungen, um nahtlos von der IP-Adresse des alten, auf dem Zielpool basierenden Load-Balancers auf die neue IP-Adresse zu wechseln.
Hinweis
Installieren Sie die Google Cloud CLI. Eine vollständige Übersicht über das Tool finden Sie unter Überblick über das gcloud-Befehlszeilentool. Befehle für das Load-Balancing finden Sie in der Befehlsgruppe gcloud compute
.
Wenn Sie die Google Cloud CLI noch nicht ausgeführt haben, führen Sie zuerst gcloud init
zur Authentifizierung aus.
In dieser Anleitung wird davon ausgegangen, dass Sie mit Bash vertraut sind.
Back-Ends und Weiterleitungsregel identifizieren, die migriert werden soll
Führen Sie den folgenden Befehl in Cloud Shell aus, um alle Zielpools aufzulisten:
gcloud compute target-pools list
Notieren Sie sich den Namen des Zielpools, aus dem migriert werden soll. Dies wird später als TARGET_POOL_NAME bezeichnet.
Führen Sie den Befehl in Cloud Shell aus, um alle VM-Instanzen im Zielpool TARGET_POOL_NAME aufzulisten:
gcloud compute target-pools describe TARGET_POOL_NAME \ --region=us-central1
Notieren Sie sich die Namen der VM-Instanzen. Diese Namen werden später als BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 und BACKEND_INSTANCE4 bezeichnet.
Führen Sie den folgenden Befehl in Cloud Shell aus, um die Weiterleitungsregeln im externen Passthrough-Network-Load-Balancer aufzulisten:
gcloud compute forwarding-rules list --filter="target: ( TARGET_POOL_NAME )"
Notieren Sie den Namen der Weiterleitungsregel. Diese wird später als FORWARDING_RULE bezeichnet.
Zonale, nicht verwaltete Instanzgruppen erstellen
Erstellen Sie eine zonal nicht verwaltete Instanzgruppe für jede Zone, in der Sie Back-Ends haben. Je nach Einrichtung können Sie die Instanzen nach Bedarf auf so viele Instanzgruppen verteilen. In unserem Beispiel verwenden wir nur zwei Instanzgruppen (eine für jede Zone) und alle Back-End-VMs in einer bestimmten Zone in der zugehörigen Instanzgruppe.
In diesem Beispiel erstellen wir zwei Instanzgruppen: eine in der Zone uc-central1-a
und eine für die Zone us-central1-c
.
Instanzgruppen einrichten
Console
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie auf Instanzgruppe erstellen.
- Wählen Sie im linken Bereich Neue nicht verwaltete Instanzgruppe aus.
- Geben Sie für Name
ig-us-1
ein. - Wählen Sie bei Region die Option
us-central1
aus. - Wählen Sie bei Zone die Option
us-central1-a
aus. - Wählen Sie Netzwerk und Subnetzwerk aus, je nachdem, wo sich Ihre Instanzen befinden. In diesem Beispiel befinden sich die vorhandenen Zielpoolinstanzen im Netzwerk
default
und im Subnetzwerk. - Zum Hinzufügen von Instanzen zur Instanzgruppe wählen Sie im Abschnitt VM-Instanzen
die beiden Instanzen BACKEND_INSTANCE1 und BACKEND_INSTANCE2 aus. - Klicken Sie auf Erstellen.
Wiederholen Sie diese Schritte, um eine zweite Instanzgruppe mit den folgenden Spezifikationen zu erstellen:
- Name:
ig-us-2
- Region:
us-central1
- Zone:
us-central1-c
Fügen Sie dieser Instanzgruppe die beiden Instanzen BACKEND_INSTANCE3 und BACKEND_INSTANCE4 in der Zone
us-central1-c
hinzu.- Name:
Wenn Ihre vorhandene Load-Balancer-Bereitstellung auch einen Sicherungszielpool hat, wiederholen Sie diese Schritte, um eine separate Failover-Instanzgruppe für diese Instanzen zu erstellen.
gcloud
Erstellen Sie eine nicht verwaltete Instanzgruppe mit dem Befehl
gcloud compute instance-groups unmanaged create
in der Zoneus-central1-a
.gcloud compute instance-groups unmanaged create ig-us-1 \ --zone us-central1-a
Erstellen Sie eine zweite nicht verwaltete Instanzgruppe in der Zone
us-central1-c
.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-c
Fügen Sie der Instanzgruppe
ig-us-1
Instanzen hinzu.gcloud compute instance-groups unmanaged add-instances ig-us-1 \ --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \ --zone us-central1-a
Fügen Sie der Instanzgruppe
ig-us-2
Instanzen hinzu.gcloud compute instance-groups unmanaged add-instances ig-us-2 \ --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \ --zone us-central1-c
Wenn Ihre vorhandene Load-Balancer-Bereitstellung auch einen Sicherungszielpool hat, wiederholen Sie diese Schritte, um eine separate Failover-Instanzgruppe für diese Instanzen zu erstellen.
Systemdiagnose erstellen
Erstellen Sie eine Systemdiagnose, um den Zustand der Instanzen in Ihren Instanzgruppen zu ermitteln. Mit Ihrem bestehenden zielpoolbasierten externen Passthrough-Network-Load-Balancer ist wahrscheinlich eine Legacy-HTTP-Systemdiagnose verknüpft.
Sie können eine neue Systemdiagnose erstellen, die dem Protokoll des Traffics entspricht, den der Load-Balancer verteilen soll. Backend-Dienst-basierte externe Passthrough-Network-Load-Balancer können TCP-, SSL-, HTTP(S)- und HTTP/2-Systemdiagnosen verwenden.
Console
- Rufen Sie in der Google Cloud Console die Seite Systemdiagnosen auf.
- Klicken Sie auf Systemdiagnose erstellen.
- Geben Sie im Feld Name
network-lb-health-check
ein. - Legen Sie für Bereich den Wert Regional fest.
- Wählen Sie bei Region die Option
us-central1
aus. - Wählen Sie für Protokoll die Option HTTP aus.
- Geben Sie für Port den Wert
80
ein. - Klicken Sie auf Erstellen.
gcloud
In diesem Beispiel erstellen wir eine Nicht-Legacy-HTTP-Systemdiagnose, die mit dem Back-End-Dienst verwendet werden soll.
gcloud compute health-checks create http network-lb-health-check \ --region us-central1 \ --port 80
Backend-Dienst konfigurieren
Verwenden Sie einen der folgenden Abschnitte, um den Backend-Dienst zu erstellen. Wenn Ihr vorhandener externer Passthrough-Network-Load-Balancer über einen Sicherungszielpool verfügt, müssen Sie beim Erstellen des Backend-Dienstes eine Failover-Quote konfigurieren.
Sie müssen außerdem die Failover-Instanzgruppe mit dem Flag --failover
bestimmen, wenn Sie dem Backend-Dienst Backends hinzufügen.
Bereitstellungen ohne Sicherungszielpool
gcloud
Erstellen Sie einen regionalen Back-End-Dienst in der Region
us-central1
.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-checks network-lb-health-check \ --health-checks-region us-central1 \ --protocol TCP
Fügen Sie dem Back-End-Dienst die beiden Instanzgruppen (
ig-us-1
undig-us-2
) als Back-Ends hinzu:gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Bereitstellungen mit einem Sicherungszielpool
gcloud
Erstellen Sie einen regionalen Back-End-Dienst in der Region
us-central1
. Konfigurieren Sie die Failover-Quote des Back-End-Dienstes so, dass sie der Failover-Quote entspricht, die zuvor für den Zielpool konfiguriert wurde.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-check network-lb-health-check \ --failover-ratio 0.5
Fügen Sie dem Back-End-Dienst die beiden Instanzgruppen (
ig-us-1
undig-us-2
) als Back-Ends hinzu:gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Wenn Sie eine Failover-Instanzgruppe erstellt haben, fügen Sie sie dem Back-End-Dienst hinzu. Markieren Sie dieses Back-End mit dem Flag
--failover
, wenn Sie es dem Back-End-Dienst hinzufügen.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group FAILOVER_INSTANCE_GROUP \ --instance-group-zone ZONE \ --region us-central1 \ --failover
Weiterleitungsregel konfigurieren
Sie haben zwei Möglichkeiten, die Weiterleitungsregel zu konfigurieren, um Traffic an den neuen Back-End-Dienst weiterzuleiten. Sie können entweder die vorhandene Weiterleitungsregel aktualisieren oder eine neue Weiterleitungsregel mit einer neuen IP-Adresse erstellen.
Vorhandene Weiterleitungsregel aktualisieren (empfohlen)
Aktualisieren Sie mit dem Flag set-target
die vorhandene Weiterleitungsregel so, dass sie auf den neuen Backend-Dienst verweist.
gcloud compute forwarding-rules set-target FORWARDING_RULE \ --backend-service network-lb-backend-service \ --region us-central1
Ersetzen Sie FORWARDING_RULE
durch den Namen der vorhandenen Weiterleitungsregel.
Neue Weiterleitungsregel erstellen
Wenn Sie die vorhandene Weiterleitungsregel nicht aktualisieren möchten, können Sie eine neue Weiterleitungsregel mit einer neuen IP-Adresse erstellen. Da eine bestimmte IP-Adresse immer nur mit einer einzigen Weiterleitungsregel verknüpft sein kann, müssen Sie Ihre DNS-Einstellung manuell ändern, um eingehenden Traffic von der alten IP-Adresse auf die neue zu übertragen.
Verwenden Sie den folgenden Befehl, um eine neue Weiterleitungsregel mit einer neuen IP-Adresse zu erstellen. Sie können das Flag --address
verwenden, wenn Sie eine IP-Adresse angeben möchten, die bereits in der Region us-central1
reserviert ist.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --load-balancing-scheme external \ --region us-central1 \ --ports 80 \ --backend-service network-lb-backend-service
Load-Balancer testen
Testen Sie den Load-Balancer, um zu prüfen, ob die Weiterleitungsregel wie erwartet eingehenden Traffic weiterleitet.
Externe IP-Adresse des Load-Balancers ermitteln
gcloud
Geben Sie den folgenden Befehl ein, um die externe IP-Adresse der vom Load-Balancer verwendeten Weiterleitungsregel network-lb-forwarding-rule
aufzurufen:
gcloud compute forwarding-rules describe network-lb-forwarding-rule --region us-central1
Auf die externe IP-Adresse mit dem Befehl nc
zugreifen
In diesem Beispiel wird die Standard-Hash-Methode für die Sitzungsaffinität verwendet. Anfragen vom Befehl nc
werden nach dem Zufallsprinzip auf den Backend-VMs basierend auf dem vom Betriebssystem zugewiesenen Quellport verteilt.
Installieren Sie zum Testen der Verbindung zuerst Netcat unter Linux mit dem folgenden Befehl:
$ sudo apt install netcat
Wiederholen Sie den folgenden Befehl einige Male, bis alle Backend-VMs antworten.
$ nc IP_ADDRESS 80
Mit dem alten Load-Balancer verknüpfte Ressourcen entfernen
Nachdem Sie bestätigt haben, dass der neue externe Passthrough-Network-Load-Balancer wie erwartet funktioniert, können Sie die alten Zielpoolressourcen löschen.
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Wählen Sie den alten Load-Balancer aus, der dem Zielpool zugeordnet war, und klicken Sie dann auf Löschen.
- Wählen Sie die erstellten Systemdiagnosen aus und klicken Sie dann auf Load-Balancer und ausgewählte Ressourcen löschen.
Nächste Schritte
- Informationen zur Funktionsweise externer Passthrough-Network-Load-Balancer mit Backend-Diensten finden Sie unter Backend-Dienst-basierter externer Passthrough-Network-Load-Balancer.
- Informationen zum Konfigurieren eines externen Passthrough-Network-Load-Balancers mit einem Backend-Dienst finden Sie unter Externen Passthrough-Network-Load-Balancer mit einem Backend-Dienst einrichten.
- Informationen zum Konfigurieren eines externen Passthrough-Network-Load-Balancers mit einem Zielpool finden Sie unter Externen Passthrough-Network-Load-Balancer mit einem Zielpool einrichten.