Regionalen externen Proxy-Network-Load-Balancer mit VM-Instanzgruppen-Back-Ends einrichten

Ein regionaler externer Proxy-Network-Load-Balancer ist ein proxy-basierter regionaler Layer-4-Load-Balancer, mit dem Sie Ihren TCP-Diensttraffic in einer einzelnen Region hinter einer externen regionalen IP-Adresse ausführen und skalieren können. Diese Load Balancer verteilen externen TCP-Traffic aus dem Internet an Back-Ends in derselben Region.

Diese Anleitung enthält eine Anleitung zum Einrichten eines regionalen externen Proxy-Network-Load-Balancers mit einem MIG-Backend (verwaltete Instanzgruppe).

Bevor Sie beginnen, lesen Sie die Übersicht über externen Proxy-Network-Load-Balancer.

In diesem Beispiel verwenden wir den Load-Balancer, um TCP-Traffic auf Backend-VMs in zwei zonalen verwalteten Instanzgruppen in der Region us-west1 zu verteilen. Der Dienst besteht dabei aus einer Reihe von Apache-Servern, die für die Kommunikation über Port 110 konfiguriert sind. Für viele Browser ist Port 110 aber nicht zulässig. Daher wird im Testabschnitt curl verwendet.

In diesem Beispiel konfigurieren Sie die im folgenden Diagramm dargestellte Bereitstellung.

Beispielkonfiguration für externen Network-Load-Balancer mit Instanzgruppen-Back-Ends.
Beispielkonfiguration für externen Proxy-Network-Load-Balancer mit Instanzgruppen-Back-Ends

Ein regionaler externer Proxy-Network-Load-Balancer ist ein regionaler Load-Balancer. Alle Load-Balancer-Komponenten (Backend-Instanzgruppe, Backend-Dienst, Ziel-Proxy und Weiterleitungsregel) müssen sich in derselben Region befinden.

Berechtigungen

Damit Sie dieser Anleitung folgen können, müssen Sie in der Lage sein, Instanzen zu erstellen und ein Netzwerk in einem Projekt zu ändern. 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 Compute-Netzwerkadministrator (roles/compute.networkAdmin)
Firewallregeln hinzufügen und löschen Compute-Sicherheitsadministrator (roles/compute.securityAdmin)
Instanzen erstellen Compute-Instanzadministrator (roles/compute.instanceAdmin)

Weitere Informationen finden Sie in folgenden Leitfäden:

Netzwerk und Subnetze konfigurieren

Sie benötigen ein VPC-Netzwerk mit zwei Subnetzen: eines für die Back-Ends des Load-Balancers und eines für die Proxys des Load-Balancers. Dieser Load Balancer ist regional. Traffic innerhalb des VPC-Netzwerks wird an den Load-Balancer weitergeleitet, wenn sich die Quelle des Traffics in einem Subnetz in derselben Region wie der Load-Balancer befindet.

In diesem Beispiel werden das folgende VPC-Netzwerk, die folgende Region und die folgenden Subnetze verwendet:

  • Netzwerk: Ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network

  • Subnetz für Back-Ends: Ein Subnetz mit dem Namen backend-subnet in der Region us-west1, das 10.1.2.0/24 für seinen primären IP-Adressbereich verwendet

  • Subnetz für Proxys: Ein Subnetz mit dem Namen proxy-only-subnet in der Region us-west1, das 10.129.0.0/23 für seinen primären IP-Adressbereich verwendet

Netzwerk und Subnetze erstellen

Console

  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 für Name lb-network ein.

  4. Wählen Sie im Abschnitt Subnetze als Modus für die Subnetzerstellung Benutzerdefiniert aus.

  5. Erstellen Sie ein Subnetz für die Back-Ends des Load-Balancers. Geben Sie im Bereich Neues Subnetz folgende Informationen ein:

    • Name: backend-subnet
    • Region: us-west1
    • IP-Adressbereich: 10.1.2.0/24
  6. Klicken Sie auf Fertig.

  7. Klicken Sie auf Erstellen.

gcloud

  1. Verwenden Sie zum Erstellen des benutzerdefinierten VPC-Netzwerks den Befehl gcloud compute networks create:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Verwenden Sie zum Erstellen eines Subnetzes im Netzwerk lb-network in der Region us-west1 den Befehl gcloud compute networks subnets create:

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

Nur-Proxy-Subnetz erstellen

Ein Nur-Proxy-Subnetz stellt eine Reihe von IP-Adressen bereit, die Google zum Ausführen von Envoy-Proxys in Ihrem Namen verwendet. Die Proxys beenden Verbindungen vom Client und erstellen neue Verbindungen zu den Back-Ends.

Dieses Nur-Proxy-Subnetz wird von allen Envoy-basierten Load-Balancern in der Region us-west1 des VPC-Netzwerks lb-network verwendet.

Console

Wenn Sie die Google Cloud Console verwenden, können Sie das Nur-Proxy-Subnetz später auf der Seite Load-Balancing erstellen.

Führen Sie die folgenden Schritte aus, wenn Sie jetzt das Nur-Proxy-Subnetz erstellen möchten:

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

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf lb-network, den Namen des VPC-Netzwerks.

  3. Klicken Sie auf Subnetz hinzufügen.

  4. Geben Sie für Name proxy-only-subnet ein.

  5. Wählen Sie bei Region die Option us-west1 aus.

  6. Setzen Sie Zweck auf Regional verwalteter Proxy.

  7. Geben Sie 10.129.0.0/23 als IP-Adressbereich ein.

  8. Klicken Sie auf Hinzufügen.

gcloud

Verwenden Sie zum Erstellen des Nur-Proxy-Subnetzes den Befehl gcloud compute networks subnets create:

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=us-west1 \
    --network=lb-network \
    --range=10.129.0.0/23

Firewallregeln erstellen

In diesem Beispiel erstellen Sie die folgenden Firewallregeln:

  • fw-allow-ssh: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und eingehende SSH-Verbindungen über TCP-Port 22 von jeder Adresse aus ermöglicht. Sie können einen restriktiveren IP-Quellbereich für diese Regel auswählen. Geben Sie dazu beispielsweise nur die IP-Bereiche des Systems an, von dem aus Sie SSH-Sitzungen initiieren. In diesem Beispiel wird das Ziel-Tag allow-ssh verwendet.

  • fw-allow-health-check. Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und Traffic von den Google Cloud-Systemen für Systemdiagnosen zulässt (130.211.0.0/22 und 35.191.0.0/16). In diesem Beispiel wird das Ziel-Tag allow-health-check verwendet.

  • fw-allow-proxy-only-subnet. Eine Regel für eingehenden Traffic, die zulässt, dass Verbindungen vom Nur-Proxy-Subnetz die Back-Ends erreichen.

Ohne diese Firewallregeln blockiert die Standardregel zum Ablehnen von eingehendem Traffic den eingehenden Traffic zu den Backend-Instanzen.

Die Back-End-Instanzen werden von den Ziel-Tags definiert. Ohne die Ziel-Tags gelten die Firewallregeln für alle Ihre Backend-Instanzen im VPC-Netzwerk. Achten Sie beim Erstellen der Backend-VMs darauf, die angegebenen Ziel-Tags wie in Verwaltete Instanzgruppe erstellen beschrieben zu verwenden.

Console

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

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen zulässt. Füllen Sie die folgenden Felder aus:

    • Name: fw-allow-ssh
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: allow-ssh
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 0.0.0.0/0
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 22 als Portnummer ein.
  3. Klicken Sie auf Erstellen.

  4. Klicken Sie ein zweites Mal auf Firewallregel erstellen, um die Regel zum Zulassen von Google Cloud-Systemdiagnosen zu erstellen:

    • Name: fw-allow-health-check
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: allow-health-check
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 130.211.0.0/22 und 35.191.0.0/16
    • Protokolle und Ports:

      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 80 als Portnummer ein.

      Sie sollten diese Regeln nur auf Protokolle und Ports beschränken, die mit den von Ihren Systemdiagnosen verwendeten übereinstimmen. Wenn Sie tcp:80 für das Protokoll und den Port verwenden, kann Google Cloud mit HTTP auf Port 80 Ihre VMs kontaktieren. Es kann jedoch nicht HTTPS auf Port 443 verwenden, um den Kontakt herzustellen.

  5. Klicken Sie auf Erstellen.

  6. Klicken Sie ein drittes Mal auf Firewallregel erstellen, um die Regel zu erstellen, die Verbindungen von den Proxyservern des Load-Balancers zu den Back-Ends zulässt:

    • Name: fw-allow-proxy-only-subnet
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: allow-proxy-only-subnet
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 10.129.0.0/23
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Setzen Sie das Häkchen für TCP und geben Sie als Portnummer 80 ein.
  7. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie die Firewallregel fw-allow-ssh, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tag allow-ssh zu ermöglichen. Wenn Sie source-ranges weglassen, bezieht Google Cloud die Regel auf jede Quelle.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. Erstellen Sie die Regel fw-allow-health-check, um Google Cloud-Systemdiagnosen zuzulassen. In diesem Beispiel wird der gesamte TCP-Traffic von Systemdiagnosetests zugelassen. Sie können jedoch Ihren Anforderungen entsprechend eine kleinere Gruppe von Ports konfigurieren:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --target-tags=allow-health-check \
        --rules=tcp:80
    
  3. Erstellen Sie die Regel fw-allow-proxy-only-subnet, um Verbindungen von den Envoy-Proxys der Region zu Ihren Back-Ends zuzulassen. Legen Sie für --source-ranges die zugewiesenen Bereiche des Nur-Proxy-Subnetzes fest, in diesem Beispiel 10.129.0.0/23.

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.129.0.0/23 \
        --target-tags=allow-proxy-only-subnet \
        --rules=tcp:80
    

IP-Adresse des Load-Balancers reservieren

Externe IP-Adresse für den Load-Balancer reservieren Dieses Verfahren erstellt die IP-Adresse des Load Balancers in der Standardstufe. Regionale externe Proxy-Network Load Balancer unterstützen sowohl die Premium- als auch die Standard-Netzwerkdienststufen. Das Erstellen dieses Load Balancers in der Premium-Stufe wird in der Google Cloud Console jedoch nicht unterstützt. Verwenden Sie stattdessen gcloud oder die REST API.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Statische Adresse reservieren auf.

    Zur Seite "Statische Adresse reservieren"

  2. Wählen Sie einen Namen für die neue Adresse.

  3. Wählen Sie für Netzwerkdienststufe die Option Standard aus.

  4. Setzen Sie die IP-Version auf IPv4. IPv6-Adressen werden nicht unterstützt.

  5. Wählen Sie unter Typ die Option Regional aus.

  6. Wählen Sie bei Region die Option us-west1 aus.

  7. Übernehmen Sie für die Option Verknüpft mit die Einstellung Keine. Nachdem Sie den Load-Balancer erstellt haben, wird diese IP-Adresse an die Weiterleitungsregel des Load-Balancers angehängt.

  8. Klicken Sie auf Reservieren, um die IP-Adresse zu reservieren.

gcloud

  1. Verwenden Sie den Befehl gcloud compute addresses create, um eine statische externe IP-Adresse zu reservieren:

    gcloud compute addresses create ADDRESS_NAME  \
        --region=us-west1 \
        --network-tier=STANDARD
    

    Ersetzen Sie dabei ADDRESS_NAME durch den Namen, mit dem Sie diese Adresse bezeichnen möchten.

  2. Verwenden Sie den Befehl gcloud compute addresses describe, um das Ergebnis anzeigen zu lassen:

    gcloud compute addresses describe ADDRESS_NAME
    

Erstellen Sie eine verwaltete Instanzgruppe.

In diesem Abschnitt erfahren Sie, wie Sie zwei Back-Ends der verwalteten Instanzgruppe (MIG) in der Region us-west1 für den Load-Balancer erstellen. Die MIG stellt VM-Instanzen bereit, auf denen die Backend-Apache-Server in diesem Beispiel ausgeführt werden. In der Regel wird ein regionaler externer Proxy-Network-Load-Balancer nicht für HTTP-Traffic verwendet. Apache ist jedoch eine häufig verwendete Software und lässt sich zum Testen leicht einrichten.

Console

Instanzvorlage erstellen

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

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie für Name ext-reg-tcp-proxy-backend-template ein.

  4. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Stretch) festgelegt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.

  5. Klicken Sie auf Erweiterte Optionen.

  6. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:

    1. Geben Sie für Netzwerk-Tags allow-ssh, allow-health-check und allow-proxy-only-subnet ein.
    2. Wählen Sie für Netzwerkschnittstellen Folgendes aus:
      • Netzwerk: lb-network
      • Subnetz: backend-subnet
  7. Klicken Sie auf Verwaltung. Fügen Sie im Feld Startskript das nachfolgende Skript ein.

     #! /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.

Erstellen Sie eine verwaltete Instanzgruppe.

  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 Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter MIG mit zustandsorientierten Laufwerken erstellen.

  4. Geben Sie für Name mig-a ein.

  5. Wählen Sie für Standort die Option Einzelne Zone aus.

  6. Wählen Sie bei Region die Option us-west1 aus.

  7. Wählen Sie bei Zone die Option us-west1-a aus.

  8. Wählen Sie bei Instanzvorlage die Option ext-reg-tcp-proxy-backend-template aus.

  9. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.

    Geben Sie für dieses Beispiel für 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.
  10. Klicken Sie im Abschnitt Portzuordnung auf Port hinzufügen.

    • Geben Sie als Portname tcp80 ein.
    • Geben Sie für Portnummer 80 ein.
  11. Klicken Sie auf Erstellen.

  12. Zum Erstellen einer zweiten verwalteten Instanzgruppe wiederholen Sie die Schritte unter Verwaltete Instanzgruppe erstellen und verwenden dabei die folgenden Einstellungen:

    • Name: mig-c
    • Zone: us-west1-c

    Behalten Sie alle anderen Einstellungen bei.

gcloud

Bei der Anleitung für die Google Cloud CLI in diesem Leitfaden wird davon ausgegangen, dass Sie Cloud Shell oder eine andere Umgebung verwenden, in der bash installiert ist.

  1. Verwenden Sie zum Erstellen einer VM-Instanzvorlage mit HTTP-Server den Befehl gcloud compute instance-templates create:

    gcloud compute instance-templates create ext-reg-tcp-proxy-backend-template \
        --region=us-west1 \
        --network=lb-network \
        --subnet=backend-subnet \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --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 eine verwaltete Instanzgruppe in der Zone us-west1-a:

    gcloud compute instance-groups managed create mig-a \
        --zone=us-west1-a \
        --size=2 \
        --template=ext-reg-tcp-proxy-backend-template
    
  3. Erstellen Sie eine verwaltete Instanzgruppe in der Zone us-west1-c.

    gcloud compute instance-groups managed create mig-c \
        --zone=us-west1-c \
        --size=2 \
        --template=ext-reg-tcp-proxy-backend-template
    

Load-Balancer 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 unter Proxy oder Passthrough die Option Proxy-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. Wählen Sie unter Globale oder Einzelregion-Bereitstellung die Option Am besten für regionale Arbeitslasten aus und klicken Sie auf Weiter.
  7. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie für Name my-ext-tcp-lb ein.
  2. Wählen Sie bei Region die Option us-west1 aus.
  3. Wählen Sie für Netzwerk die Option lb-network aus.

Nur-Proxy-Subnetz reservieren

  1. Klicken Sie auf Subnetz reservieren.
  2. Geben Sie für Name proxy-only-subnet ein.
  3. Geben Sie 10.129.0.0/23 als IP-Adressbereich ein.
  4. Klicken Sie auf Add (Hinzufügen).

Back-Ends konfigurieren

  1. Klicken Sie auf Backend-Konfiguration.
  2. Wählen Sie für den Backend-Typ die Option Instanzgruppe aus.
  3. Wählen Sie für Protokoll die Option TCP aus.
  4. Geben Sie als Benannter Port tcp80 ein.
  5. Configure the first backend:
    1. Wählen Sie für Neues Backend die Instanzgruppe mig-a aus.
    2. Geben Sie unter Portnummern 80 ein.
    3. Übernehmen Sie die verbleibenden Standardwerte und klicken Sie dann auf Fertig.
  6. Configure the second backend:
    1. Klicken Sie auf Backend hinzufügen.
    2. Wählen Sie für Neues Backend die Instanzgruppe mig-c aus.
    3. Geben Sie unter Portnummern 80 ein.
    4. Übernehmen Sie die verbleibenden Standardwerte und klicken Sie dann auf Fertig.
  7. Systemdiagnose konfigurieren:
    1. Klicken Sie bei Systemdiagnose auf Systemdiagnose erstellen.
    2. Geben Sie tcp-health-check als Name für die Systemdiagnose an.
    3. Wählen Sie für Protokoll die Option TCP aus.
    4. Legen Sie für Port den Wert 80 fest.
  8. Übernehmen Sie die verbleibenden Standardwerte und klicken Sie dann auf Speichern.
  9. Prüfen Sie in der Google Cloud Console, ob neben Backend-Konfiguration ein Häkchen angezeigt wird. Ist dies nicht der Fall, prüfen Sie, ob Sie alle Schritte ausgeführt haben.

Frontend konfigurieren

  1. Klicken Sie auf Frontend-Konfiguration.
  2. Geben Sie für Name ext-reg-tcp-forwarding-rule ein.
  3. Wählen Sie für Subnetzwerk die Option backend-subnet aus.
  4. Wählen Sie unter IP-Adresse die zuvor reservierte IP-Adresse aus: LB_IP_ADDRESS
  5. Geben Sie für Portnummer 110 ein. Die Weiterleitungsregel leitet nur Pakete mit einem übereinstimmenden Zielport weiter.
  6. Wählen Sie Aus für Proxyprotokoll aus, da das Proxyprotokoll nicht mit der Apache HTTP Server-Software funktioniert. Weitere Informationen finden Sie unter Proxyprotokoll.
  7. Klicken Sie auf Fertig.
  8. Prüfen Sie in der Google Cloud Console, ob neben Frontend-Konfiguration ein Häkchen angezeigt wird. Ist dies nicht der Fall, prüfen Sie, ob Sie alle vorherigen Schritte ausgeführt haben.

Überprüfen und abschließen

  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.

gcloud

  1. Erstellen Sie eine regionale Systemdiagnose.

    gcloud compute health-checks create tcp tcp-health-check \
        --region=us-west1 \
        --use-serving-port
    
  2. Erstellen Sie einen Backend-Dienst.

    gcloud compute backend-services create ext-reg-tcp-proxy-bs \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=TCP \
        --port-name=tcp80 \
        --region=us-west1 \
        --health-checks=tcp-health-check \
        --health-checks-region=us-west1
    
  3. Fügen Sie Instanzgruppen zu Ihrem Backend-Dienst hinzu:

    gcloud compute backend-services add-backend ext-reg-tcp-proxy-bs \
        --region=us-west1 \
        --instance-group=mig-a \
        --instance-group-zone=us-west1-a \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8
     
    gcloud compute backend-services add-backend ext-reg-tcp-proxy-bs \
        --region=us-west1 \
        --instance-group=mig-c \
        --instance-group-zone=us-west1-c \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8
    
  4. Erstellen Sie einen Ziel-TCP-Proxy:

    gcloud compute target-tcp-proxies create ext-reg-tcp-target-proxy \
        --backend-service=ext-reg-tcp-proxy-bs \
        --proxy-header=NONE \
        --region=us-west1
    

    Wenn Sie den Proxyheader aktivieren möchten, legen Sie PROXY_V1 anstelle von NONE fest. Aktivieren Sie in diesem Beispiel das Proxyprotokoll nicht, da es mit der Apache HTTP Server-Software nicht funktioniert. Weitere Informationen finden Sie unter Proxyprotokoll.

  5. Erstellen Sie die Weiterleitungsregel. Geben Sie für --ports eine einzelne Portnummer zwischen 1 und 65535 an. In diesem Beispiel wird Port 110 verwendet. Die Weiterleitungsregel leitet nur Pakete mit einem übereinstimmenden Zielport weiter.

    gcloud compute forwarding-rules create ext-reg-tcp-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network=lb-network \
        --subnet=backend-subnet \
        --region=us-west1 \
        --target-tcp-proxy=ext-reg-tcp-target-proxy \
        --target-tcp-proxy-region=us-west1 \
        --address=ext-reg-tcp-ip-address \
        --ports=110
    

Load-Balancer testen

Nachdem Sie den Load-Balancer konfiguriert haben, können Sie Traffic zum Testen an die IP-Adresse des Load-Balancers senden.

  1. Rufen Sie die IP-Adresse des Load-Balancers ab.

    Führen Sie den folgenden Befehl aus, um die IPv4-Adresse abzurufen:

    gcloud compute addresses describe ADDRESS_NAME
    
  2. Senden Sie den Traffic mit folgendem Befehl an Ihren Load-Balancer. Ersetzen Sie LB_IP_ADDRESS durch die IPv4-Adresse des Load-Balancers:

    curl -m1 LB_IP_ADDRESS:9090
    

Zusätzliche Konfigurationsoptionen

In diesem Abschnitt wird die Konfiguration des Beispiels um alternative und zusätzliche Optionen erweitert. Alle Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge ausführen.

Sitzungsaffinität aktivieren

Die Beispielkonfiguration erstellt einen Backend-Dienst ohne Sitzungsaffinität.

Diese Verfahren zeigen, wie Sie einen Backend-Dienst für den vorher erstellten Beispiel-Load-Balancer aktualisieren, damit der Backend-Dienst die Client-IP-Affinität oder Cookie-Affinität verwendet.

Wenn die Client-IP-Affinität aktiviert ist, leitet der Load-Balancer die Anfragen eines bestimmten Clients anhand eines Hashs, der aus der IP-Adresse des Clients und der IP-Adresse des Load-Balancers (der internen IP-Adresse einer internen Weiterleitungsregel) erstellt wurde, an dieselbe Backend-VM weiter.

Führen Sie die folgenden Schritte aus, um die Client-IP-Sitzungsaffinität zu aktivieren.

Console

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

    Load-Balancing aufrufen

  2. Klicken Sie auf Back-Ends.

  3. Klicken Sie auf ext-reg-tcp-proxy-bs (Name des Backend-Dienstes, den Sie für dieses Beispiel erstellt haben) und dann auf Bearbeiten.

  4. Klicken Sie auf der Seite Backend-Dienstdetails auf Erweiterte Konfiguration.

  5. Wählen Sie unter Sitzungsaffinität die Option Client-IP aus.

  6. Klicken Sie auf Aktualisieren.

gcloud

Verwenden Sie den Befehl gcloud compute backend-services update ext-reg-tcp-proxy-bs, um den Backend-Dienst ext-reg-tcp-proxy-bs zu aktualisieren und die Client-IP-Sitzungsaffinität anzugeben:

gcloud compute backend-services update ext-reg-tcp-proxy-bs \
    --region=us-west1 \
    --session-affinity=CLIENT_IP

Nächste Schritte