Externen Passthrough-Network-Load-Balancer mit einem Backend-Dienst einrichten

In dieser Anleitung wird das Erstellen einer Bereitstellung eines externen Passthrough-Network-Load-Balancers mithilfe eines regionalen Backend-Dienstes erläutert. In diesem Beispiel wird ein externer Passthrough-Network-Load-Balancer erstellt, der entweder TCP- oder UDP-Traffic unterstützt. Wenn Sie einen externen Passthrough-Netzwerk-Load-Balancer erstellen möchten, mit dem TCP-, UDP-, ESP-, GRE-, ICMP- und ICMPv6-Traffic (nicht nur TCP oder UDP) verteilt wird, finden Sie weitere Informationen unter Externen Passthrough-Netzwerk-Load-Balancer für mehrere IP-Protokolle einrichten.

In diesem Beispiel verwenden wir den Load-Balancer, um TCP-Traffic auf Backend-VMs in zwei zonalen verwalteten Instanzgruppen in der Region us-central1 zu verteilen. Für die Region us-central1 können Sie auch eine einzelne regionale verwaltete Instanzgruppe verwenden.

Externer Passthrough-Network-Load-Balancer mit zonalen Instanzgruppen
Externer Passthrough-Network-Load-Balancer mit zonal verwalteten Instanzgruppen

In diesem Szenario wird der TCP-Traffic auf fehlerfreie Instanzen verteilt. Für dieses Beispiel wurden TCP-Systemdiagnosen so konfiguriert, dass Traffic nur an fehlerfreie Instanzen gesendet wird. Beachten Sie, dass TCP-Systemdiagnosen bei einem Back-End-Dienst-basierten Load-Balancer unterstützt werden. Pool-basierte Load-Balancer können nur Legacy-HTTP-Systemdiagnosen verwenden.

In diesem Beispiel wird ein Load-Balancing für TCP-Traffic festgelegt. Sie können jedoch Backend-Dienst-basierte externe Passthrough-Network-Load-Balancer verwenden, um Load-Balancing für TCP-, UDP-, ESP-, GRE-, ICMP- und ICMPv6-Traffic auszuführen.

Der externe Passthrough-Network-Load-Balancer ist ein regionaler Load-Balancer. Alle Load-Balancer-Komponenten (Backend-VMs, Backend-Dienst und Weiterleitungsregel) müssen sich in derselben Region befinden.

Vorbereitung

Installieren Sie die Google Cloud CLI. Eine vollständige Übersicht über das Tool finden Sie im Leitfaden zur gcloud CLI. Befehle für das Load-Balancing finden Sie in den Referenzen zur API und zur gcloud CLI.

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.

Netzwerk und Subnetze einrichten

In dem Beispiel auf dieser Seite wird ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network verwendet. Sie können ein VPC-Netzwerk im automatischen Modus verwenden, wenn Sie nur IPv4-Traffic verarbeiten möchten. Für IPv6-Traffic ist jedoch ein Subnetz im benutzerdefinierten Modus erforderlich.

Für IPv6-Traffic ist außerdem ein Dual-Stack-Subnetz erforderlich (stack-type ist auf IPv4_IPv6 gesetzt). Wenn Sie ein Dual-Stack-Subnetz in einem VPC-Netzwerk im benutzerdefinierten Modus erstellen, wählen Sie einen IPv6-Zugriffstyp für das Subnetz aus. In diesem Beispiel setzen wir den Parameter ipv6-access-type des Subnetzes auf EXTERNAL. Dies bedeutet, dass neuen VMs in diesem Subnetz sowohl externe IPv4-Adressen als auch externe IPv6-Adressen zugewiesen werden können.

Die Back-Ends und die für dieses Beispiel verwendeten Load-Balancer-Komponenten befinden sich in dieser Region und in diesem Subnetz:

  • Region: us-central1
  • Subnetz: lb-subnet, mit primärem IPv4-Adressbereich 10.1.2.0/24. Obwohl Sie auswählen, welcher IPv4-Adressbereich im Subnetz konfiguriert wurde, wird der IPv6-Adressbereich automatisch zugewiesen. Google bietet einen (/64) IPv6-CIDR-Block mit fester Größe.

Gehen Sie so vor, um das Netzwerk und das Subnetz zu erstellen:

Console

Führen Sie die folgenden Schritte aus, um IPv4- und IPv6-Traffic zu unterstützen:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie als Namen lb-network ein.

  4. Im Bereich Subnetze:

    • Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    • Konfigurieren Sie im Abschnitt Neues Subnetz die folgenden Felder und klicken Sie auf Fertig:
      • Name: lb-subnet
      • Region: us-central1
      • IP-Stack-Typ: IPv4 und IPv6 (Dual-Stack)
      • IPv4-Bereich: 10.1.2.0/24
        Sie können zwar einen IPv4-Adressbereich für das Subnetz konfigurieren, Sie können aber nicht den Bereich der IPv6-Adressen für das Subnetz auswählen. Google bietet einen (/64) IPv6-CIDR-Block mit fester Größe.
      • IPv6-Zugriffstyp: Extern
  5. Klicken Sie auf Erstellen.

Führen Sie die folgenden Schritte aus, um nur IPv4-Traffic zu unterstützen:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie als Namen lb-network ein.

  4. Im Bereich Subnetze:

    • Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    • Konfigurieren Sie im Abschnitt Neues Subnetz die folgenden Felder und klicken Sie auf Fertig:
      • Name: lb-subnet
      • Region: us-central1
      • IP-Stack-Typ: IPv4 (Einzel-Stack)
      • IPv4-Bereich: 10.1.2.0/24
  5. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie das VPC-Netzwerk im benutzerdefinierten Modus:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. Erstellen Sie im Netzwerk lb-network ein Subnetz für Back-Ends in der Region us-central1.

    Verwenden Sie für IPv4- und IPv6-Traffic den folgenden Befehl, um ein Dual-Stack-Subnetz zu erstellen:

    gcloud compute networks subnets create lb-subnet \
      --stack-type=IPV4_IPv6 \
      --ipv6-access-type=EXTERNAL \
      --network=lb-network \
      --range=10.1.2.0/24 \
      --region=us-central1
    

    Verwenden Sie für nur IPv4-Traffic den folgenden Befehl:

    gcloud compute networks subnets create lb-subnet \
      --network=lb-network \
      --range=10.1.2.0/24 \
      --region=us-central1
    

Zonale verwaltete Instanzgruppen erstellen

Für dieses Load-Balancing-Szenario erstellen Sie zwei zonal verwaltete Compute Engine-Instanzgruppen und installieren auf jeder Instanz einen Apache-Webserver.

Konfigurieren Sie die Backend-VMs als Dual-Stack, um sowohl IPv4- als auch IPv6-Traffic zu verarbeiten. Setzen Sie den stack-type der VM auf IPv4_IPv6. Die VMs übernehmen außerdem die Einstellung ipv6-access-type (im Beispiel EXTERNAL) aus dem Subnetz. Weitere Informationen zu IPv6-Anforderungen finden Sie in der Übersicht über externen Passthrough-Network-Load-Balancer: Weiterleitungsregeln.

Wenn Sie vorhandene VMs als Back-Ends verwenden möchten, aktualisieren Sie die VMs mit dem Befehl gcloud compute instances network-interfaces update auf Dual-Stack.

Instanzen, die als Backend-VMs für externe Passthrough-Network-Load-Balancer verwendet werden, müssen die entsprechende Linux-Gastumgebung, Windows-Gastumgebung oder andere Prozesse ausführen, die gleichwertige Funktionen bereitstellen.

Instanzen einrichten

Console

  1. eine Instanzvorlage erstellen Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

    1. Klicken Sie auf Instanzvorlage erstellen.
    2. Geben Sie für Name ig-us-template ein.
    3. Achten Sie im Abschnitt Bootlaufwerk darauf, dass das Image auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) festgelegt ist. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
    4. Klicken Sie auf Erweiterte Optionen.
    5. Klicken Sie auf Netzwerke.
      1. Geben Sie bei Netzwerk-Tags den Wert lb-tag ein.
      2. Klicken Sie unter Netzwerkschnittstellen auf die Schnittstelle Standard und konfigurieren Sie die folgenden Felder:
        • Netzwerk: lb-network
        • Subnetzwerk: lb-subnet
      3. Klicken Sie auf Fertig.
    6. Klicken Sie auf Verwaltung und kopieren Sie das folgende Skript in das Feld Startskript.

      #! /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
      
    7. Klicken Sie auf Erstellen.

  2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

    1. Klicken Sie auf Instanzgruppe erstellen.
    2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
    3. Geben Sie für Name ig-us-1 ein.
    4. Wählen Sie bei Instanzvorlage die Option ig-us-template aus.
    5. Wählen Sie für Standort die Option Einzelne Zone aus.
    6. Wählen Sie bei Region die Option us-central1 aus.
    7. Wählen Sie bei Zone die Option us-central1-a aus.
    8. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.

      Geben Sie für dieses Beispiel im Abschnitt Autoscaling die folgenden Optionen an:

      • Wählen Sie für Autoscaling-Modus Off:do not autoscale aus.
      • Geben Sie für Maximale Anzahl von Instanzen den Wert 2 ein.
    9. Klicken Sie auf Erstellen.

  3. Wiederholen Sie die vorherigen Schritte, um eine zweite verwaltete Instanzgruppe in der Zone us-central1-c mit den folgenden Spezifikationen zu erstellen:

    • Name: ig-us-2
    • Zone: us-central1-c
    • Instanzvorlage: Verwenden Sie die Vorlage ig-us-template aus dem vorherigen Abschnitt.

gcloud

Bei den gcloud-Anleitungen in diesem Handbuch wird davon ausgegangen, dass Sie Cloud Shell oder eine andere Umgebung verwenden, in der Bash installiert ist.

  1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine VM-Instanzvorlage mit HTTP-Server.

    Verwenden Sie den folgenden Befehl, um IPv4- und IPv6-Traffic zu verarbeiten.

    gcloud compute instance-templates create ig-us-template \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --ipv6-network-tier=PREMIUM \
    --stack-type=IPv4_IPv6 \
    --tags=lb-tag \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --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'
    

    Verwenden Sie den folgenden Befehl, um nur IPv4-Traffic zu verarbeiten.

    gcloud compute instance-templates create ig-us-template \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --tags=lb-tag \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --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'
    
  2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine verwaltete Instanzgruppe in der Zone.

    gcloud compute instance-groups managed create ig-us-1 \
        --zone us-central1-a \
        --size 2 \
        --template ig-us-template
    
  3. Erstellen Sie eine zweite verwaltete Instanzgruppe in der Zone us-central1-c:

    gcloud compute instance-groups managed create ig-us-2 \
        --zone us-central1-c \
        --size 2 \
        --template ig-us-template
    

Firewallregeln konfigurieren

Erstellen Sie Firewallregeln, die externen Traffic (einschließlich Systemdiagnoseprüfungen) zulassen, um die Backend-Instanzen zu erreichen.

In diesem Beispiel wird eine Firewallregel erstellt, die den TCP-Traffic aus allen Quellbereichen zulässt, um Ihre Backend-Instanzen auf Port 80 zu erreichen. Wenn Sie separate Firewallregeln speziell für die Systemdiagnoseprüfungen erstellen möchten, verwenden Sie die Quell-IP-Adressbereiche, die unter Übersicht über Systemdiagnosen: Prüfungs-IP-Bereiche und Firewallregeln dokumentiert sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.

    Zu den Firewall-Richtlinien

  2. Zum Zulassen von IPv4-Traffic führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf Firewallregel erstellen.
    2. Geben Sie für Name allow-network-lb-ipv4 ein.
    3. Wählen Sie in der Liste Netzwerk die Option lb-network aus.
    4. Wählen Sie unter Ziele die Option Angegebene Ziel-Tags aus.
    5. Geben Sie im Feld Zieltags lb-tag ein.
    6. Wählen Sie unter Quellfilter die Option IPv4-Bereiche aus.
    7. Legen Sie unter Quell-IPv4-Bereiche den Wert 0.0.0.0/0 fest. Dadurch wird IPv4-Traffic von einer beliebigen Quelle zugelassen. Dadurch können auch die Systemdiagnoseprüfungen von Google die Backend-Instanzen erreichen.
    8. Klicken Sie unter Angegebene Protokolle und Ports das Kästchen TCP an und geben Sie 80 ein.
    9. Klicken Sie auf Erstellen. Es kann einen Moment dauern, bis die neue Firewallregel in der Google Cloud Console angezeigt wird. Klicken Sie gegebenenfalls auf Aktualisieren, damit die Regel aufgeführt wird.
  3. Zum Zulassen von IPv6-Traffic führen Sie die folgenden Schritte aus:

    1. Klicken Sie noch einmal auf Firewallregel erstellen.
    2. Geben Sie für Name allow-network-lb-ipv6 ein.
    3. Wählen Sie in der Liste Netzwerk die Option lb-network aus.
    4. Wählen Sie unter Ziele die Option Angegebene Ziel-Tags aus.
    5. Geben Sie im Feld Zieltags lb-tag ein.
    6. Wählen Sie für Quellfilter die Option IPv6-Bereiche aus.
    7. Legen Sie unter Quell-IPv6-Bereiche den Wert ::/0 fest. Dadurch wird IPv6-Traffic von einer beliebigen Quelle zugelassen. Dadurch können auch die Systemdiagnoseprüfungen von Google die Backend-Instanzen erreichen.
    8. Klicken Sie unter Angegebene Protokolle und Ports das Kästchen TCP an und geben Sie 80 ein.
    9. Klicken Sie auf Erstellen. Es kann einen Moment dauern, bis die neue Firewallregel in der Console angezeigt wird. Klicken Sie gegebenenfalls auf Aktualisieren, damit die Regel aufgeführt wird.

gcloud

  1. Führen Sie den folgenden Befehl aus, um IPv4-Traffic zuzulassen:

    gcloud compute firewall-rules create allow-network-lb-ipv4 \
        --network=lb-network \
        --target-tags=lb-tag \
        --allow=tcp:80 \
        --source-ranges=0.0.0.0/0
    
  2. Führen Sie den folgenden Befehl aus, um IPv6-Traffic zuzulassen:

    gcloud compute firewall-rules create allow-network-lb-ipv6 \
      --network=lb-network \
      --target-tags=lb-tag \
      --allow=tcp:80 \
      --source-ranges=::/0
    

Load-Balancer konfigurieren

Richten Sie als Nächstes den Load-Balancer ein.

Durch entsprechende Konfiguration des Load-Balancers erhalten die VM-Instanzen Pakete für die von Ihnen konfigurierte statische externe IP-Adresse. Wenn Sie ein von Compute Engine bereitgestelltes Image verwenden, werden die Instanzen automatisch für diese IP-Adresse konfiguriert. Wenn Sie ein anderes Image verwenden, müssen Sie diese Adresse als Alias auf eth0 oder als Loopback auf den einzelnen Instanzen konfigurieren.

Console

Konfiguration starten

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

    Load Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
  5. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  6. Klicken Sie auf Konfigurieren.

Back-end-Konfiguration

  1. Geben Sie auf der Seite Externen Passthrough-Network Load Balancer erstellen den Namen tcp-network-lb für den neuen Load Balancer ein.
  2. Wählen Sie bei Region die Option us-central1 aus.
  3. Klicken Sie auf Backend-Konfiguration.
  4. On the Backend configuration page, make the following changes:
    1. Wählen Sie unter Neues Backend den IP-Stack-Typ aus. Wenn Sie Dual-Stack-Back-Ends für die Verarbeitung von IPv4- und IPv6-Traffic erstellt haben, wählen Sie IPv4 und IPv6 (Dual-Stack) aus. Wählen Sie nur IPv4(Single-Stack) aus, um nur IPv4-Traffic zu verarbeiten.
    2. Wählen Sie in der Liste Instanzgruppe ig-us-1 aus und klicken Sie dann auf Fertig.
    3. Klicken Sie auf Back-End hinzufügen und wiederholen Sie diesen Schritt, um ig-us-2 hinzuzufügen.
    4. Für Systemdiagnose klicken Sie auf Systemdiagnose erstellen oder Weitere Systemdiagnose erstellen und geben dann die folgenden Informationen ein:
      • Name: tcp-health-check
      • Protokoll: TCP
      • Port: 80
    5. Klicken Sie auf Speichern.
  5. Überprüfen Sie, bevor Sie fortfahren, ob sich neben Backend-Konfiguration ein blaues Häkchen befindet.

Frontend-Konfiguration

  1. Klicken Sie auf Frontend-Konfiguration.
  2. Geben Sie für Name network-lb-forwarding-rule ein.
  3. Führen Sie die folgenden Schritte aus, um IPv4-Traffic zu verarbeiten:
    1. Setzen Sie die IP-Version auf IPv4.
    2. Wählen Sie im Abschnitt Interner IP-Zweck in der Liste IP-Adresse die Option IP-Adresse erstellen aus.
      1. Geben Sie auf der Seite Neue statische IP-Adresse reservieren unter Name den Wert network-lb-ipv4 ein.
      2. Klicken Sie auf Reservieren.
    3. Wählen Sie für Ports die Option Einzeln aus. Geben Sie als Portnummer 80 ein.
    4. Klicken Sie auf Fertig.
  4. Führen Sie die folgenden Schritte aus, um IPv6-Traffic zu verarbeiten:

    1. Setzen Sie die IP-Version auf IPv4.
    2. Wählen Sie für Subnetzwerk die Option lb-subnet aus.
    3. Wählen Sie in der Liste IPv6-Bereich die Option IP-Adresse erstellen aus.
      1. Geben Sie auf der Seite Neue statische IP-Adresse reservieren unter Name den Wert network-lb-ipv6 ein.
      2. Klicken Sie auf Reservieren.
    4. Wählen Sie für Ports die Option Einzeln aus. Geben Sie als Portnummer 80 ein.
    5. Klicken Sie auf Fertig.

    Bei erfolgreicher Einrichtung wird links neben Frontend-Konfiguration ein blauer Kreis mit einem Häkchen angezeigt.

Konfiguration prüfen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
  3. Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
  4. Klicken Sie auf Erstellen.

    Auf der Load-Balancing-Seite sollte in der Spalte „Backend“ 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

  1. Reservieren einer statischen externen IP-Adresse.

    Für IPv4-Traffic: Erstellen Sie eine statische externe IPv4-Adresse für den Load-Balancer.

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

    Für IPv6-Traffic: Erstellen Sie einen statischen externen IPv6-Adressbereich für den Load-Balancer. Das verwendete Subnetz muss ein Dual-Stack-Subnetz mit einem externen IPv6-Bereich sein.

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. TCP-Systemdiagnose erstellen

    gcloud compute health-checks create tcp tcp-health-check \
        --region us-central1 \
        --port 80
    
  3. Erstellen Sie einen Backend-Dienst:

    gcloud compute backend-services create network-lb-backend-service \
        --protocol TCP \
        --health-checks tcp-health-check \
        --health-checks-region us-central1 \
        --region us-central1
    
  4. Fügen Sie dem Backend-Dienst die Instanzgruppen 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
    
  5. Erstellen Sie die Weiterleitungsregeln, je nachdem, ob Sie IPv4- oder IPv6-Traffic verarbeiten möchten. Erstellen Sie beide Weiterleitungsregeln, um beide Arten von Traffic zu verarbeiten.

    1. Für IPv4-Traffic: Erstellen Sie eine Weiterleitungsregel, um eingehenden TCP-Traffic an den Backend-Dienst weiterzuleiten. Verwenden Sie die in Schritt 1 reservierte IPv4-Adresse als statische externe IP-Adresse des Load-Balancers.

      gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv4 \
        --load-balancing-scheme EXTERNAL \
        --region us-central1 \
        --ports 80 \
        --address network-lb-ipv4 \
        --backend-service network-lb-backend-service
      
    2. Für IPv6-Traffic: Erstellen Sie eine Weiterleitungsregel für den IPv6-Traffic. Verwenden Sie den in Schritt 1 reservierten IPv6-Adressbereich als statische externe IP-Adresse des Load-Balancers. Das verwendete Subnetz muss ein Dual-Stack-Subnetz mit einem externen IPv6-Subnetzbereich sein.

      gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv6 \
          --load-balancing-scheme EXTERNAL \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports 80 \
          --backend-service network-lb-backend-service
      

Load-Balancer testen

Nachdem Sie den Load-Balancing-Dienst konfiguriert haben, können Sie Traffic an die externe IP-Adresse des Load-Balancers senden und den Traffic an die Backend-Instanzen verteilen.

Externe IP-Adresse des Load-Balancers ermitteln

Console

  1. Gehen Sie auf der Seite Load-Balancing-Komponenten zum Tab Weiterleitungsregeln.

    Zu den „Weiterleitungsregeln“

  2. Suchen Sie die vom Load-Balancer verwendete Weiterleitungsregel.

  3. Notieren Sie die in der Spalte Externe IP-Adresse angegebene externe IP-Adresse.

gcloud: IPv4

Geben Sie den folgenden Befehl ein, um die externe IPv4-Adresse der vom Load-Balancer verwendeten Weiterleitungsregel network-lb-forwarding-rule aufzurufen:

gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv4 \
    --region us-central1

gcloud: IPv6

Geben Sie den folgenden Befehl ein, um die externe IPv6-Adresse der vom Load-Balancer verwendeten Weiterleitungsregel network-lb-forwarding-rule aufzurufen:

gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv6 \
    --region us-central1

Traffic an den Load-Balancer senden

Stellen Sie mit curl Webanfragen an den Load-Balancer, um dessen IP-Adresse zu kontaktieren.

  • Führen Sie von Clients mit IPv4-Verbindung den folgenden Befehl aus:

    $ while true; do curl -m1 IPV4_ADDRESS; done
    
  • Führen Sie von Clients mit IPv6-Verbindung den folgenden Befehl aus:

    $ while true; do curl -m1 http://IPV6_ADDRESS; done
    

    Wenn die zugewiesene IPv6-Adresse beispielsweise [2001:db8:1:1:1:1:1:1/96]:80 lautet, sollte der Befehl so aussehen:

    $ while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
    

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_NAME

Die Antwort des Befehls curl wechselt nach dem Zufallsprinzip zwischen den drei Instanzen. Wenn anfangs keine Antwort zurückgegeben wird, müssen Sie vor einem erneuten Versuch unter Umständen etwa 30 Sekunden warten, bis die Konfiguration vollständig geladen ist und die Instanzen als fehlerfrei markiert werden:

Zusätzliche Konfigurationsoptionen

Dieser Abschnitt erweitert das Konfigurationsbeispiel um Anleitungen zur weiteren Anpassung Ihres externen Passthrough-Netzwerk-Load-Balancers. Diese Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge durchführen.

Sitzungsaffinität konfigurieren

Die Beispielkonfiguration erstellt einen Back-End-Dienst mit deaktivierter Sitzungsaffinität (Wert auf NONE festgelegt). In diesem Abschnitt erfahren Sie, wie Sie den Back-End-Dienst aktualisieren, um die Einstellung für die Sitzungsaffinität des Load-Balancers zu ändern.

Informationen zu unterstützten Arten von Sitzungsaffinitäten finden Sie unter Sitzungsaffinitätsoptionen.

Console

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

    Load-Balancing aufrufen

  2. Klicken Sie auf dem Tab Load-Balancer auf den Namen des Back-End-Dienstes und dann auf Bearbeiten.

  3. Auf der Seite Externen Passthrough-Network-Load-Balancer bearbeiten klicken Sie auf Backend konfigurieren.

  4. Wählen Sie eine Option aus der Liste Sitzungsaffinität aus.

  5. Klicken Sie auf Aktualisieren.

gcloud

Aktualisieren Sie die Sitzungsaffinität für den Back-End-Dienst mit dem folgenden gcloud-Befehl:

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --session-affinity=SESSION_AFFINITY_OPTION

Ersetzen Sie die Platzhalter durch gültige Werte:

  • BACKEND_SERVICE: Der Back-End-Dienst, den Sie aktualisieren.
  • SESSION_AFFINITY_OPTION: Die Option für die Sitzungsaffinität, die Sie festlegen möchten.

    Eine Liste der unterstützten Werte für einen externen Passthrough-Network-Load-Balancer finden Sie unter Optionen für die Sitzungsaffinität.

Richtlinie für das Verbindungs-Tracking konfigurieren

Die Beispielkonfiguration erstellt einen Back-End-Dienst mit den Standardeinstellungen für seine Verbindungs-Tracking-Richtlinie. In diesem Abschnitt erfahren Sie, wie Sie den Back-End-Dienst aktualisieren, um die Standardrichtlinie für das Verbindungs-Tracking des Load-Balancers zu ändern.

Eine Richtlinie für das Verbindungs-Tracking enthält die folgenden Einstellungen:

gcloud

Aktualisieren Sie mit dem folgenden gcloud compute backend-services-Befehl die Richtlinie für das Verbindungs-Tracking für den Back-End-Dienst:

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --tracking-mode=TRACKING_MODE \
    --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR

Ersetzen Sie die Platzhalter durch gültige Werte:

  • BACKEND_SERVICE: Der Back-End-Dienst, den Sie aktualisieren.
  • TRACKING_MODE: Der Modus für das Verbindungs-Tracking, der für eingehende Pakete verwendet werden soll. Eine Liste der unterstützten Werte finden Sie unter Tracking-Modus.
  • CONNECTION_PERSISTENCE_BEHAVIOR: Das Verhalten der Verbindungspersistenz, wenn Back-Ends fehlerhaft sind. Eine Liste der unterstützten Werte finden Sie unter Verbindungspersistenz bei fehlerhaften Back-Ends.

Trafficsteuerung konfigurieren

In diesem Abschnitt erfahren Sie, wie Sie die Frontend-Konfiguration eines Load-Balancers aktualisieren, um die Quell-IP-basierte Trafficsteuerung einzurichten. Weitere Informationen zur Trafficsteuerung finden Sie unter Trafficsteuerung.

In dieser Anleitung wird davon ausgegangen, dass Sie die übergeordnete Basisweiterleitungsregel bereits erstellt haben. In diesem Beispiel wird eine zweite Weiterleitungsregel erstellt, bei der es sich um die Weiterleitungsregel für die Traffisteuerung handelt, die dieselbe IP-Adresse, dasselbe IP-Protokoll und dieselben Ports wie das übergeordnete Element hat. Diese Weiterleitungsregel für die Trafficsteuerung wird mit Quell-IP-Bereichen konfiguriert, sodass Sie anpassen können, wie Pakete aus diesen Quell-IP-Bereichen weitergeleitet werden.

gcloud

Verwenden Sie den folgenden Befehl, um eine Weiterleitungsregel für die Trafficsteuerung zu erstellen, die auf einen Backend-Dienst verweist:

gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_BS \
    --load-balancing-scheme=EXTERNAL \
    --backend-service=BACKEND_SERVICE \
    --address=LOAD_BALANCER_VIP \
    --ip-protocol=IP_PROTOCOL \
    --ports=PORTS \
    --region=REGION \
    --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES

Verwenden Sie den folgenden Befehl, um eine Weiterleitungsregel für die Trafficsteuerung zu erstellen, die auf eine Zielinstanz verweist:

gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_TI \
    --load-balancing-scheme=EXTERNAL \
    --target-instance=TARGET_INSTANCE \
    --address=LOAD_BALANCER_VIP \
    --ip-protocol=IP_PROTOCOL \
    --ports=PORTS \
    --region=REGION \
    --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES

Ersetzen Sie die Platzhalter durch gültige Werte:

  • FORWARDING_RULE: der Name der Weiterleitungsregel, die Sie erstellen.
  • BACKEND_SERVICE oder TARGET_INSTANCE: der Name des Backend-Dienstes oder der Zielinstanz, an den diese Weiterleitungsregel für die Trafficsteuerung Traffic sendet. Auch wenn die übergeordnete Weiterleitungsregel auf einen Backend-Dienst verweist, können Sie Weiterleitungsregeln erstellen, die auf Zielinstanzen verweisen.
  • LOAD_BALANCER_VIP, IP_PROTOCOL, PORTS: die IP-Adresse, das IP-Protokoll und die Ports für die von Ihnen erstellte Weiterleitungsregel für die Trafficsteuerung. Diese Einstellungen sollten einer bereits vorhandenen Basisweiterleitungsregel entsprechen.
  • REGION: ist die Region der Weiterleitungsregel, die Sie erstellen.
  • SOURCE_IP_ADDRESS_RANGES: eine durch Kommas getrennte Liste von IP-Adressen oder IP-Adressbereichen. Diese Weiterleitungsregel leitet den Traffic nur weiter, wenn die Quell-IP-Adresse des eingehenden Pakets in einen der hier festgelegten IP-Bereiche fällt.

Verwenden Sie den folgenden Befehl, um eine Weiterleitungsregel für die Steuerung zu löschen. Sie müssen die Weiterleitungsregeln für die Steuerung, die von einem Load-Balancer verwendet werden, löschen, bevor Sie den Load-Balancer selbst löschen können.

gcloud compute forwarding-rules delete STEERING_FORWARDING_RULE \
    --region=REGION

Failover-Richtlinie konfigurieren

Informationen zum Konfigurieren der Failover-Richtlinie finden Sie unter Failover für externe Passthrough-Network-Load-Balancer konfigurieren.

Gewichtetes Load Balancing konfigurieren

Informationen zum Konfigurieren des gewichteten Load Balancings finden Sie unter Gewichtetes Load Balancing konfigurieren.

Nächste Schritte