Netzwerk-Load-Balancer vom Zielpool zum Back-End-Dienst übertragen

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

Netzwerk-Load-Balancer mit Zielpool
Vorher: Netzwerk-Load-Balancing mit Zielpool

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

Netzwerk-Load-Balancer mit einem regionalen Back-End-Dienst
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:

  1. Gruppieren Sie die Zielpoolinstanzen in Instanzgruppen.
    Back-End-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 Back-End-Dienst.
    Wenn Ihre Bereitstellung einen Sicherungszielpool enthält, müssen Sie beim Erstellen des Back-End-Dienstes ein Failover-Verhältnis festlegen. Dies sollte dem Failover-Verhältnis entsprechen, das zuvor für die Bereitstellung des Zielpools konfiguriert wurde.
  3. Back-End-Instanzgruppen, die zuvor erstellt wurden, dem Back-End-Dienst hinzufügen
    Wenn Ihre Bereitstellung einen Sicherungszielpool enthält, markieren Sie die entsprechende Failover-Instanzgruppe mit dem Flag --failover, wenn Sie sie dem Back-End-Dienst hinzufügen.
  4. Konfigurieren Sie eine Weiterleitungsregel, die auf den neuen Back-End-Dienst verweist.
    Sie haben 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 Front-End 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.

Hinweis

Installieren Sie das gcloud-Befehlszeilentool. Eine vollständige Übersicht über das Tool finden Sie im Leitfaden für das gcloud-Tool. Befehle für das Load-Balancing finden Sie in der Befehlsgruppe gcloud compute.

Wenn Sie das gcloud-Befehlszeilentool bisher noch nicht verwendet haben, müssen Sie zur Authentifizierung zuerst gcloud init ausführen.

In dieser Anleitung wird davon ausgegangen, dass Sie mit Bash vertraut sind.

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

Cloud Console

  1. Öffnen Sie in der Cloud Console die Seite Instanzgruppen.

    Zur Seite Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.
  3. Wählen Sie links Neue nicht verwaltete Instanzgruppe aus.
  4. Geben Sie im Feld Name ig-us-1 ein.
  5. Wählen Sie unter Ort die Option Einzelne Zone aus.
  6. Wählen Sie us-central1 als Region aus.
  7. Wählen Sie us-central1-a als Zone aus.
  8. 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.
  9. Wählen Sie unter VM-Instanzen die beiden Instanzen aus, die dieser Instanzgruppe hinzugefügt werden sollen.
  10. Klicken Sie auf Erstellen.
  11. 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 in der Zone us-central1-c hinzu.

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 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 us-ig-1 Instanzen hinzu.

    gcloud compute instance-groups unmanaged add-instances us-ig-1 \
        --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \
        --zone us-central1-a
    
  4. Fügen Sie der Instanzgruppe us-ig-2 Instanzen hinzu.

    gcloud compute instance-groups unmanaged add-instances us-ig-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 pool-basierten Netzwerk-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. Netzwerkbasierte Load-Balancer des Netzwerks können TCP, SSL, HTTP(S) und HTTP/2-Systemdiagnosen verwenden.

Console

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

    Weiter zur Seite der Systemdiagnosen

  2. Geben Sie einen Namen ein.
  3. Legen Sie für Bereich den Wert Regional fest.
  4. Wählen Sie als Region us-central1 aus.
  5. Wählen Sie als Protokoll HTTP aus.
  6. Geben Sie für den Port den Wert 80 ein.
  7. 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 http-health-check \
    --region us-central1 \
    --port 80
    

Back-End-Dienst konfigurieren

Verwenden Sie einen der folgenden Abschnitte, um den Back-End-Dienst zu erstellen. Wenn Ihr vorhandener Netzwerk-Load-Balancer über einen Sicherungszielpool verfügt, müssen Sie beim Erstellen des Back-End-Dienstes eine Failover-Quote konfigurieren.

Sie müssen außerdem die Failover-Instanzgruppe mit dem Flag --failover bestimmen, wenn Sie dem Back-End-Dienst Back-Ends 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 http-health-check \
       --health-checks-region us-central1 \
       --protocol TCP
    
  2. Fügen Sie dem Back-End-Dienst die beiden Instanzgruppen (us-ig-1 und us-ig-2) als Back-Ends hinzu:

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-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 http-health-check \
       --failover-ratio 0.5
    
  2. Fügen Sie dem Back-End-Dienst die beiden Instanzgruppen (us-ig-1 und us-ig-2) als Back-Ends hinzu:

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-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 Back-End-Dienst verweist.

gcloud compute forwarding-rules set-target network-lb-forwarding-rule  \
    --backend-service network-lb-backend-service \
    --region us-central1

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 wurde die Standard-Hash-Methode für die Sitzungsaffinität verwendet. Anfragen vom Befehl nc werden nach dem Zufallsprinzip auf den Back-End-VMs basierend auf dem vom Betriebssystem zugewiesenen Quellport verteilt.

Wiederholen Sie den Befehl einige Male, bis alle Back-End-VMs antworten.

$ nc IP_ADDRESS 80

Mit dem alten Load-Balancer verknüpfte Ressourcen entfernen

Nachdem Sie sich vergewissert haben, dass der neue Netzwerk-Load-Balancer wie erwartet funktioniert, können Sie die alten Zielpoolressourcen und gegebenenfalls die alte Weiterleitungsregel löschen.

Nächste Schritte