Externen Passthrough-Network-Load-Balancer vom Zielpool zum Backend-Dienst migrieren

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.

Anleitung


Dieser Leitfaden führt Sie durch die Migration des folgenden Beispiels eines zielpoolbasierten externen Passthrough-Network-Load-Balancers zur Verwendung eines regionalen Backend-Dienstes.

Vorher: Externer Passthrough-Network-Load-Balancer mit Zielpool
Vorher: Externer Passthrough-Network-Load-Balancer mit Zielpool

Die resultierende Bereitstellung eines Backend-Dienst-basierten externen Passthrough-Network-Load-Balancers sieht so aus:

Nachher: Externer Passthrough-Network-Load-Balancer mit einem regionalen Backend-Dienst
Nachher: Externer Passthrough-Network-Load-Balancer mit regionalem Backend-Dienst

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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

  1. 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.

  2. 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.

  3. 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

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

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.
  3. Wählen Sie im linken Bereich Neue nicht verwaltete Instanzgruppe aus.
  4. Geben Sie für Name ig-us-1 ein.
  5. Wählen Sie bei Region die Option us-central1 aus.
  6. Wählen Sie bei Zone die Option us-central1-a aus.
  7. 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.
  8. Zum Hinzufügen von Instanzen zur Instanzgruppe wählen Sie im Abschnitt VM-Instanzen
    die beiden Instanzen BACKEND_INSTANCE1 und BACKEND_INSTANCE2 aus.
  9. Klicken Sie auf Erstellen.
  10. 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.

  11. 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

  1. Erstellen Sie eine nicht verwaltete Instanzgruppe mit dem Befehl gcloud compute instance-groups unmanaged create in der Zone us-central1-a.

    gcloud compute instance-groups unmanaged create ig-us-1 \
        --zone us-central1-a
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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

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

    Zur Seite „Systemdiagnosen“

  2. Klicken Sie auf Systemdiagnose erstellen.
  3. Geben Sie im Feld Name network-lb-health-check ein.
  4. Legen Sie für Bereich den Wert Regional fest.
  5. Wählen Sie bei Region die Option us-central1 aus.
  6. Wählen Sie für Protokoll die Option HTTP aus.
  7. Geben Sie für Port den Wert 80 ein.
  8. Klicken Sie auf Erstellen.

gcloud

  1. 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

  1. 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
    
  2. Fügen Sie dem Back-End-Dienst die beiden Instanzgruppen (ig-us-1 und ig-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

  1. 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
    
  2. Fügen Sie dem Back-End-Dienst die beiden Instanzgruppen (ig-us-1 und ig-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
    
  3. 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.

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.

  1. Installieren Sie zum Testen der Verbindung zuerst Netcat unter Linux mit dem folgenden Befehl:

    $ sudo apt install netcat
    
  2. 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.

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

    Load-Balancing aufrufen

  2. Wählen Sie den alten Load-Balancer aus, der dem Zielpool zugeordnet war, und klicken Sie dann auf Löschen.
  3. Wählen Sie die erstellten Systemdiagnosen aus und klicken Sie dann auf Load-Balancer und ausgewählte Ressourcen löschen.

Nächste Schritte