Externen Passthrough-Network Load Balancer mit zonalen NEGs einrichten

In diesem Dokument erfahren Sie, wie Sie einen externen Passthrough-Network Load Balancer mit zonalen NEG-Backends (Netzwerk-Endpunktgruppe) bereitstellen. Mit zonalen NEGs mit GCE_VM_IP-Endpunkten können Sie Folgendes tun:

  • Leiten Sie Pakete an die Nicht-nic0-Netzwerkschnittstellen von VM-Instanzen weiter, indem Sie eine Netzwerkschnittstelle einer VM-Instanz als Backend-Endpunkt darstellen.
  • Erstellen Sie einen flexiblen Satz von Backend-Endpunkten, bei denen ein Endpunkt an mehrere NEGs angehängt werden kann und jede NEG einen anderen, sich aber möglicherweise überlappenden Satz von Endpunkten haben kann.

Bevor Sie diese Anleitung durcharbeiten, sollten Sie sich mit Folgendem vertraut machen:

Berechtigungen

Damit Sie diese Schritte ausführen können, müssen Sie Instanzen erstellen und ein Netzwerk in einem Projekt ändern können. Sie müssen entweder Inhaber oder Bearbeiter des Projekts sein oder alle folgenden Compute Engine-IAM-Rollen innehaben.

Task Erforderliche Rolle
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen Netzwerkadministrator
Firewallregeln hinzufügen und löschen Sicherheitsadministrator
Instanzen erstellen Compute-Instanzadministrator

Weitere Informationen finden Sie auf den folgenden Seiten:

Einrichtung: Übersicht

In diesem Dokument erfahren Sie, wie Sie einen externen Passthrough-Network Load Balancer konfigurieren und testen, der zonale GCE_VM_IP-NEG-Backends verwendet. Die Schritte in diesem Abschnitt zeigen, wie Sie folgende Elemente konfigurieren:

  1. Ein VPC-Netzwerk mit dem Namen lb-network und einem benutzerdefinierten Subnetz
  2. Firewall-Regeln, die eingehende Verbindung zu Backend-VMs ermöglichen
  3. Vier VMs:
    • VMs vm-a1 und vm-a2 in Zone us-west1-a
    • VMs vm-c1 und vm-c2 in Zone us-west1-c
  4. Zwei zonale Back-End-NEGs, neg-a in Zone us-west1-a und neg-c in Zone us-west1-c. Jede NEG hat die folgenden Endpunkte:
    • neg-a enthält diese beiden Endpunkte:
      • nic1 der VM vm-a1, die durch ihre primäre interne IP-Adresse identifiziert wird
      • nic1 der VM vm-a2, die durch ihre primäre interne IP-Adresse identifiziert wird
    • neg-c enthält diese beiden Endpunkte:
      • nic1 der VM vm-c1, die durch ihre primäre interne IP-Adresse identifiziert wird
      • nic1 der VM vm-c2, die durch ihre primäre interne IP-Adresse identifiziert wird
  5. Eine Client-VM (vm-client) in us-west1-a zum Testen von Verbindungen
  6. Die folgenden Load Balancer-Komponenten:
    • Einen externen Back-End-Dienst in der Region us-west1, um die Verteilung von Verbindungen zu den zwei zonalen NEGs zu verwalten
    • Eine externe Weiterleitungsregel und eine IP-Adresse für das Frontend des Load-Balancers

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

Die Architektur dieses Beispiels sieht so aus:

Externer Passthrough-Network Load Balancer mit zonalen NEGs.
Externer Passthrough-Network Load Balancer mit zonalen NEGs (zum Vergrößern klicken).

Hinweise

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 gcloud CLI noch nicht ausgeführt haben, führen Sie zuerst den Befehl gcloud init zur Authentifizierung aus.

Auf dieser Seite 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
    

VMs und Netzwerk-Endpunktgruppen erstellen

Um den regionalen Charakter von externen Passthrough-Network Load Balancern zu veranschaulichen, verwendet dieses Beispiel zwei zonale NEG-Backends in zwei verschiedenen Zonen. Für den Traffic wird über beide NEGs und über die Endpunkte innerhalb jedes NEGs Load-Balancing durchgeführt.

VMs erstellen

Für dieses Load Balancing-Szenario erstellen Sie vier VMs und installieren auf jeder Instanz einen Apache-Webserver. Der Webserver überwacht den TCP-Port 80. Apache ist standardmäßig für die Bindung an eine beliebige IP-Adresse konfiguriert. Externe Passthrough-Network Load Balancer liefern Pakete aus und behalten dabei die Ziel-IP bei.

Zur Vereinfachung der Anleitung führen diese Back-End-VMs Debian GNU/Linux 10 aus.

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.

Jede VM wird mit zwei Netzwerkschnittstellen nic0 und nic1 erstellt. In dieser Anleitung wird nic1 verwendet, das dem VPC-Netzwerk lb-network und dem Subnetz lb-subnet zugeordnet ist. Verwenden Sie dieses lb-network-Netzwerk und dieses lb-subnet-Subnetz, um später in diesem Verfahren die zonalen NEGs zu erstellen.

Console

VMs erstellen

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Wiederholen Sie die nachstehenden Schritte, um vier VMs mit den folgenden Kombinationen aus Name und Zone zu erstellen.

    • Name: vm-a1, Zone: us-west1-a
    • Name: vm-a2, Zone: us-west1-a
    • Name: vm-c1, Zone: us-west1-c
    • Name: vm-c2, Zone: us-west1-c
  3. Klicken Sie auf Instanz erstellen.

  4. Legen Sie den Namen wie zuvor angegeben fest.

  5. Wählen Sie als Region us-west1 und dann eine Zone aus, wie zuvor angegeben.

  6. Achten Sie im Bereich Bootlaufwerk darauf, dass als Bootlaufwerk-Optionen das Betriebssystem Debian und die Version 10 (Buster) ausgewählt sind. Klicken Sie bei Bedarf auf Auswählen, um das Image zu ändern.

  7. Klicken Sie auf Erweiterte Optionen und nehmen Sie die folgenden Änderungen vor:

    • Klicken Sie auf Netzwerke und fügen Sie die folgenden Netzwerk-Tags hinzu: lb-tag
    • Klicken Sie unter Netzwerkschnittstellen auf Netzwerkschnittstelle hinzufügen und nehmen Sie folgende Änderungen vor:

      Für IPv4- und IPv6-Back-Ends:

      • Netzwerk: lb-network
      • Subnetz: lb-subnet
      • IP-Stacktyp: IPv4 and IPv6 (dual-stack)
      • Primäre interne IP: sitzungsspezifisch (automatisch)
      • Externe IPv4-Adresse: sitzungsspezifisch (automatisch)
      • Externe IPv6-Adresse: Automatisch zuweisen

      Für nur IPv4-Backends:

      • Netzwerk: lb-network
      • Subnetz: lb-subnet
      • IP-Stacktyp: IPv4 (single-stack)
      • Primäre interne IP: sitzungsspezifisch (automatisch)
      • Externe IP: sitzungsspezifisch

      Klicken Sie dann auf Fertig.

    • Klicken Sie auf Verwaltung. Kopieren Sie den folgenden Skriptinhalt und fügen Sie ihn im Feld Startskript ein. Der Skriptinhalt ist für alle vier VMs gleich:

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

gcloud

Erstellen Sie die vier VMs, indem Sie den folgenden Befehl viermal ausführen und die nachstehenden vier Kombinationen für [VM-NAME] und [ZONE] verwenden. Der Skriptinhalt ist für alle vier VMs identisch.

  • VM_NAME: vm-a1 und ZONE: us-west1-a
  • VM_NAME: vm-a2 und ZONE: us-west1-a
  • VM_NAME: vm-c1 und ZONE: us-west1-c
  • VM_NAME: vm-c2 und ZONE: us-west1-c

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

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPv4_IPv6,--ipv6-network-tier=PREMIUM \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPv4_IPv6,--ipv6-network-tier=PREMIUM \
    --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 instances create VM_NAME \
    --zone=ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=lb-tag \
    --network-interface=network=default,subnet=default,stack_type=IPv4_ONLY \
    --network-interface=network=lb-network,subnet=lb-subnet,stack_type=IPv4_ONLY \
    --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'

Zonale NEGs mit GCE_VM_IP-Endpunkten erstellen

Die NEGs müssen in den Zonen erstellt werden, in denen sich die im vorherigen Schritt erstellten VMs befinden. In diesem Beispiel wird auch die NEG im VPC-Netzwerk lb-network und im Subnetz lb-subnet erstellt, die nic1 der im vorherigen Schritt erstellten VMs zugeordnet sind. Daher befinden sich die Endpunkte der NEG auf nic1 der VMs.

Console

So erstellen Sie eine zonale Netzwerk-Endpunktgruppe:

  1. Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
    Zur Seite "Netzwerk-Endpunktgruppen"
  2. Klicken Sie auf Netzwerk-Endpunktgruppe erstellen.
  3. Geben Sie einen Namen für die zonale NEG neg-a ein.
  4. Wählen Sie den Typ der Netzwerk-Endpunktgruppe aus: Netzwerk-Endpunktgruppe (zonal).
  5. Wählen Sie das Netzwerk aus: lb-network.
  6. Wählen Sie das Subnetz aus: lb-subnet
  7. Wählen Sie die Zone aus: us-west1-a
  8. Klicken Sie auf Erstellen.
  9. Wiederholen Sie diese Schritte, um eine zweite zonale NEG mit dem Namen neg-c in der Zone us-west1-c zu erstellen.

Fügen Sie der zonalen NEG Endpunkte hinzu:

  1. Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
    Zur Netzwerk-Endpunktgruppe
  2. Klicken Sie auf den Namen der im vorherigen Schritt erstellten Netzwerk-Endpunktgruppe (neg-a). Die Seite Netzwerk-Endpunktgruppendetails wird angezeigt.
  3. Klicken Sie im Bereich Netzwerkendpunkte in dieser Gruppe auf Netzwerkendpunkt hinzufügen. Die Seite Netzwerk-Endpunkt hinzufügen wird angezeigt.

    1. Klicken Sie auf VM-Instanz und wählen Sie vm-a1 aus, um die internen IP-Adressen als Netzwerkendpunkte hinzuzufügen.
    2. Klicken Sie auf Erstellen.
    3. Klicken Sie noch einmal auf Netzwerkendpunkt hinzufügen und wählen Sie unter VM-Instanz vm-a2 aus.
    4. Klicken Sie auf Erstellen.
  4. Klicken Sie auf den Namen der zweiten Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde (neg-c). Die Seite Netzwerk-Endpunktgruppendetails wird angezeigt.

  5. Klicken Sie im Bereich Netzwerkendpunkte in dieser Gruppe auf Netzwerkendpunkt hinzufügen. Die Seite Netzwerk-Endpunkt hinzufügen wird angezeigt.

    1. Klicken Sie auf VM-Instanz und wählen Sie vm-c1 aus, um die internen IP-Adressen als Netzwerkendpunkte hinzuzufügen.
    2. Klicken Sie auf Erstellen.
    3. Klicken Sie noch einmal auf Netzwerkendpunkt hinzufügen und wählen Sie unter VM-Instanz vm-c2 aus.
    4. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute network-endpoint-groups create eine zonale GCE_VM_IP-NEG mit dem Namen neg-a in us-west1-a:

    gcloud compute network-endpoint-groups create neg-a \
        --network-endpoint-type=gce-vm-ip \
        --zone=us-west1-a \
        --network=lb-network \
        --subnet=lb-subnet
    
  2. Fügen Sie Endpunkte zu neg-a hinzu:

    gcloud compute network-endpoint-groups update neg-a \
        --zone=us-west1-a \
        --add-endpoint='instance=vm-a1' \
        --add-endpoint='instance=vm-a2'
    
  3. Erstellen Sie mit dem Befehl gcloud compute network-endpoint-groups create eine zonale GCE_VM_IP-NEG mit dem Namen neg-c in us-west1-c:

    gcloud compute network-endpoint-groups create neg-c \
        --network-endpoint-type=gce-vm-ip \
        --zone=us-west1-c \
        --network=lb-network \
        --subnet=lb-subnet
    
  4. Fügen Sie Endpunkte zu neg-c hinzu:

    gcloud compute network-endpoint-groups update neg-c \
        --zone=us-west1-c \
        --add-endpoint='instance=vm-c1' \
        --add-endpoint='instance=vm-c2'
    

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 Firewall auf.

    Zur Firewall

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

    1. Klicken Sie auf Firewallregel erstellen.
    2. Geben Sie einen Namen ein: allow-network-lb-ipv4.
    3. Wählen Sie für 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 für 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. Wählen Sie unter Angegebene Protokolle und Ports die Option TCP aus und geben Sie 80 ein.
    9. Klicken Sie auf Erstellen.
  3. Zum Zulassen von IPv6-Traffic führen Sie die folgenden Schritte aus:

    1. Klicken Sie noch einmal auf Firewallregel erstellen.
    2. Geben Sie einen Namen ein: allow-network-lb-ipv6.
    3. Wählen Sie für 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 für 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. Wählen Sie unter Angegebene Protokolle und Ports die Option TCP aus und geben Sie 80 ein.
    9. Klicken Sie auf Erstellen.

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 empfangen Ihre VMs 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 eth1 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 network-lb-zonal-neg für den neuen Load Balancer ein.
  2. Wählen Sie bei Region die Option us-west1 aus.
  3. Wählen Sie unter Back-End-Typ die Option Zonale Netzwerk-Endpunktgruppe aus.
  4. Klicken Sie auf Backend-Konfiguration. Der zuvor für den Load-Balancer eingegebene Name wird angezeigt, kann aber nicht geändert werden.
  5. On the Backend configuration page, make the following changes:
    1. Wählen Sie in der Liste Netzwerk-Endpunktgruppe neg-a aus und klicken Sie dann auf Fertig.
    2. Klicken Sie auf Backend hinzufügen und wiederholen Sie diesen Schritt, um neg-c hinzuzufügen.
    3. Für Systemdiagnose wählen Sie Systemdiagnose erstellen oder Weitere Systemdiagnose erstellen aus und geben dann die folgenden Informationen ein:
      • Name: tcp-health-check
      • Protokoll: TCP
      • Port: 80
    4. Klicken Sie auf Speichern.
  6. Ü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 netlb-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. Klicken Sie unter IP auf das Drop-down-Menü und wählen Sie IP-Adresse erstellen aus.
      1. Geben Sie auf der Seite Neue statische IP-Adresse reservieren unter Name den Wert netlb-ipv4-address 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. Klicken Sie unter IPv6-Bereich auf das Drop-down-Menü und wählen Sie IP-Adresse erstellen aus.
      1. Geben Sie auf der Seite Neue statische IP-Adresse reservieren unter Name den Wert netlb-ipv6-address 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 netlb-ipv4-address \
        --region=us-west1
    

    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 netlb-ipv6-address \
        --region=us-west1 \
        --subnet=lb-subnet \
        --ip-version=IPV6 \
        --endpoint-type=NETLB
    
  2. TCP-Systemdiagnose erstellen

    gcloud compute health-checks create tcp tcp-health-check \
        --region=us-west1 \
        --port=80
    
  3. Erstellen Sie einen Back-End-Dienst.

    gcloud compute backend-services create networklb-backend-service \
        --protocol=TCP \
        --health-checks=tcp-health-check \
        --health-checks-region=us-west1 \
        --region=us-west1
    
  4. Fügen Sie dem Back-End-Dienst die beiden zonalen NEGs neg-a und neg-c hinzu:

    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-a \
        --network-endpoint-group-zone=us-west1-a
    
    gcloud compute backend-services add-backend networklb-backend-service \
        --region=us-west1 \
        --network-endpoint-group=neg-c \
        --network-endpoint-group-zone=us-west1-c
    
  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 forwarding-rule-ipv4 \
        --load-balancing-scheme=EXTERNAL \
        --region=us-west1 \
        --ports=80 \
        --address=netlb-ipv4-address \
        --backend-service=networklb-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 forwarding-rule-ipv6 \
          --load-balancing-scheme=EXTERNAL \
          --region=us-west1 \
          --network-tier=PREMIUM \
          --ip-version=IPV6 \
          --subnet=lb-subnet \
          --address=netlb-ipv6-address \
          --ports=80 \
          --backend-service=networklb-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 Load-Balancing-Seite Erweitert zum Tab Weiterleitungsregeln.

    Zu „Weiterleitungsregeln“

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

  3. Notieren Sie die in der Spalte 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 forwarding-rule-ipv4 \
    --region=us-west1

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 forwarding-rule-ipv6 \
    --region=us-west1

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

Um den externen Passthrough-Network Load Balancer weiter anzupassen, können Sie die Sitzungsaffinität und die Trafficsteuerung konfigurieren und eine Failover-Richtlinie oder eine Verbindungs-Tracking-Richtlinie einrichten. Diese Aufgaben sind optional und können in beliebiger Reihenfolge ausgeführt werden. Anleitungen finden Sie unter Zusätzliche Konfigurationsoptionen.

Nächste Schritte