Globalen externen Passthrough-Network Load Balancer mit VM-Instanzgruppen-Back-Ends einrichten

In diesem Dokument wird beschrieben, wie Sie einen globalen externen Passthrough-Network Load Balancer erstellen, um den Traffic zwischen VM-Instanzgruppen-Back-Ends zu verteilen, die in mehreren Regionen bereitgestellt werden.

Hinweis

Richten Sie Ihr System so ein, dass die folgenden Voraussetzungen erfüllt sind.

Google Cloud CLI installieren

In dieser Anleitung wird die Google Cloud CLI verwendet, um einen globalen externen Passthrough-Network-Load-Balancer zu konfigurieren. Eine Anleitung zur Installation finden Sie unter gcloud CLI installieren.

Erforderliche Rollen

Wenn Sie der Projektersteller sind, wird Ihnen die Rolle „Inhaber“ (roles/owner) zugewiesen. Standardmäßig enthält die Rolle „Inhaber“ (roles/owner) oder die Rolle „Bearbeiter“ (roles/editor) die Berechtigungen, die für die Schritte in diesem Dokument erforderlich sind.

Wenn Sie nicht der Project Creator sind, müssen dem entsprechenden Hauptkonto die erforderlichen Berechtigungen für das Projekt erteilt werden. Ein Hauptkonto kann beispielsweise ein Google-Konto (für Endnutzer) oder ein Dienstkonto sein.

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren eines globalen externen Passthrough-Network Load Balancers mit VM-Instanzgruppen-Backends benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Weitere Informationen zu Rollen und Berechtigungen für Cloud Load Balancing finden Sie unter Rollen und Berechtigungen. Weitere Informationen zum Definieren von IAM-Richtlinien mit bedingten Berechtigungen für Weiterleitungsregeln finden Sie unter IAM Conditions für Weiterleitungsregeln.

Einrichtung: Übersicht

Das folgende Diagramm zeigt einen globalen externen Passthrough-Network-Load-Balancer mit VM-Instanzgruppen-Backends, die in den Regionen us-west1 und europe-west2 bereitgestellt werden.

In diesem Beispiel konfigurieren Sie eine einzelne Weiterleitungsregel mit zwei globalen externen IP-Adressen, jeweils eine aus jeder Verfügbarkeitsgruppe. Informationen zur Funktionsweise eines globalen externen Passthrough-Network-Load-Balancers finden Sie im Abschnitt Architektur im Übersichtshandbuch.

Ein globaler externer Passthrough-Network Load Balancer leitet Traffic an VM-Instanzgruppen-Back-Ends weiter, die in den Regionen `us-west1` und `europe-west2` bereitgestellt werden.
Traffic mithilfe eines globalen externen Passthrough-Network Load Balancers an VM-Instanzgruppen-Back-Ends verteilen (zum Vergrößern klicken).

Netzwerk und Subnetze einrichten

Im Beispiel wird ein VPC-Netzwerk im benutzerdefinierten Modus namens lb-network mit Subnetzen in zwei verschiedenen Regionen verwendet.

In der folgenden Tabelle ist die Kompatibilität zwischen Load-Balancer-Traffic-Typen, Netzwerk-Schnittstellen von Back-End-VMs und VPC-Subnetz-Stack-Typen zusammengefasst. Machen Sie sich mit den Anforderungen an die Kompatibilität der Netzwerkschnittstelle der Backend-VM mit VPC-Subnetzen vertraut, die im Architekturleitfaden für globale externe Passthrough-Network-Load-Balancer beschrieben werden.

Load-Balancer-Traffic-Typ Stacktyp der Netzwerkschnittstelle der Backend-VM Stacktyp des VPC-Subnetzes
Nur IPv4-Traffic IPV4_ONLY IPV4_ONLY oder IPV4_IPV6
IPV4_IPV6 IPV4_IPV6
Nur IPv6-Traffic IPV6_ONLY IPV6_ONLY oder IPV4_IPV6
IPV4_IPV6 IPV4_IPV6
IPv4- und IPv6-Traffic IPV4_IPV6 IPV4_IPV6

Die in diesem Beispiel verwendeten Back-Ends befinden sich in den folgenden Regionen und Subnetzen. Sie können zwar auswählen, welcher IPv4-Adressbereich im Subnetz konfiguriert werden soll, Cloud de Confiance weist dem gesamten Subnetz aber automatisch einen /64 IPv6-Adressbereich zu.

  • Region: us-west1

    • Subnetz: lb-subnet-us, mit primärem IPv4-Adressbereich 10.1.2.0/24.
  • Region: europe-west2

    • Subnetz: lb-subnet-eu, mit primärem IPv4-Adressbereich 10.1.3.0/24.

gcloud

  1. VPC-Netzwerk erstellen. In diesem Beispiel heißt das VPC-Netzwerk lb-network.

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. Erstellen Sie im VPC-Netzwerk (lb-network) Subnetze in zwei Regionen.

    Erstellen Sie ein Subnetz mit dem Namen lb-subnet-us für die Back-Ends in der Region us-west1.

    Verwenden Sie den folgenden Befehl, um ein Nur-IPv4-Subnetz zu erstellen:

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

    Verwenden Sie den folgenden Befehl, um ein Dual-Stack-Subnetz zu erstellen:

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

    Verwenden Sie den folgenden Befehl, um ein Nur-IPv6-Subnetz zu erstellen:

    gcloud compute networks subnets create lb-subnet-us \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=EXTERNAL \
        --network=lb-network \
        --region=us-west1
    

    Erstellen Sie ein Subnetz mit dem Namen lb-subnet-eu für die Back-Ends in der Region europe-west2.

    Verwenden Sie den folgenden Befehl, um ein Nur-IPv4-Subnetz zu erstellen:

    gcloud compute networks subnets create lb-subnet-eu \
        --stack-type=IPV4_ONLY \
        --network=lb-network \
        --range=10.1.3.0/24 \
        --region=europe-west2
    

    Verwenden Sie den folgenden Befehl, um ein Dual-Stack-Subnetz zu erstellen:

    gcloud compute networks subnets create lb-subnet-eu \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=EXTERNAL \
        --network=lb-network \
        --range=10.1.3.0/24 \
        --region=europe-west2
    

    Verwenden Sie den folgenden Befehl, um ein Nur-IPv6-Subnetz zu erstellen:

    gcloud compute networks subnets create lb-subnet-eu \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=EXTERNAL \
        --network=lb-network \
        --range=10.1.3.0/24 \
        --region=europe-west2
    

Firewallregeln konfigurieren

Um Ihre Produktionsumgebung sicher zu konfigurieren, sollten Sie zwei separate Firewallregeln erstellen:

  • Firewallregel für Systemdiagnosen, die so konfiguriert ist, dass eingehender Traffic aus folgenden Quellen zugelassen wird:

  • Firewallregel für Nutzer-Traffic, die so konfiguriert ist, dass eingehender Traffic von folgenden Quellen zugelassen wird:

    • die spezifischen Quell-IP-Bereiche der Clients, die auf Ihren Load Balancer zugreifen müssen, und
    • das IP-Protokoll und die Ports, die in Ihren Weiterleitungsregeln konfiguriert sind

Wichtige Hinweise:

  • Wenn Ihre Anwendung allen Internetnutzern ohne Einschränkung zur Verfügung steht, konfigurieren Sie die Quell-IP-Bereiche 0.0.0.0/0 für IPv4-Traffic und ::/0 für IPv6-Traffic.

  • Wenn Sie Ihre Systemdiagnose so konfiguriert haben, dass das IP-Protokoll und die Ports Ihres Load-Balancings geprüft werden, können Sie eine einzelne Firewallregel konfigurieren, indem Sie die Firewallregeln für Systemdiagnose und Nutzertraffic zusammenführen.

gcloud

  • Erstellen Sie eine Firewallregel, die den TCP-Traffic aus allen Quellbereichen zulässt, um Ihre Backend-VM-Instanzen auf Port 80 zu erreichen. Dieser Port und dieses Protokoll werden sowohl für das Load-Balancing als auch für die Systemdiagnose verwendet.

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

Backend-VM-Instanzen erstellen

Für dieses Load-Balancing-Szenario erstellen Sie zwei zonal verwaltete Compute Engine-Instanzgruppen in den Zonen us-west1-a und europe-west2-a. Die verwaltete Instanzgruppe besteht aus VM-Instanzen, auf denen die Backend-Server des Load Balancers gehostet werden. Zu Demonstrationszwecken stellen die Back-Ends ihre eigenen Hostnamen bereit.

Die Instanzgruppe verweist auf eine Instanzvorlage, mit der Backend-VMs erstellt werden.

In der folgenden Tabelle ist die Kompatibilität zwischen Load-Balancer-Traffic-Typen, Netzwerk-Schnittstellen von Back-End-VMs und VPC-Subnetz-Stack-Typen zusammengefasst. Machen Sie sich mit den Anforderungen an die Kompatibilität der Netzwerkschnittstelle der Backend-VM mit VPC-Subnetzen vertraut, die im Architekturleitfaden für globale externe Passthrough-Network-Load-Balancer beschrieben werden.

Load-Balancer-Traffic-Typ Stacktyp der Netzwerkschnittstelle der Backend-VM Stacktyp des VPC-Subnetzes
Nur IPv4-Traffic IPV4_ONLY IPV4_ONLY oder IPV4_IPV6
IPV4_IPV6 IPV4_IPV6
Nur IPv6-Traffic IPV6_ONLY IPV6_ONLY oder IPV4_IPV6
IPV4_IPV6 IPV4_IPV6
IPv4- und IPv6-Traffic IPV4_IPV6 IPV4_IPV6

Instanzvorlage erstellen

In diesem Beispiel erstellen Sie regionale Instanzvorlagen in den Regionen us-west1 und europe-west2.

gcloud

  1. Instanzvorlage in der Region us-west1 erstellen

    Verwenden Sie den folgenden Befehl, um Backend-VMs mit Nur-IPv4-Netzwerkschnittstellen zu erstellen.

    gcloud compute instance-templates create ig-template-us \
        --region=us-west1 \
        --network=lb-network \
        --subnet=lb-subnet-us \
        --stack-type=IPV4_ONLY \
        --tags=allow-traffic \
        --image-family=debian-12 \
        --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 Backend-VMs mit Dual-Stack-Netzwerkschnittstellen zu erstellen.

    gcloud compute instance-templates create ig-template-us \
        --region=us-west1 \
        --network=lb-network \
        --subnet=lb-subnet-us \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_IPV6 \
        --tags=allow-traffic \
        --image-family=debian-12 \
        --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 Backend-VMs mit Nur-IPv6-Netzwerkschnittstellen zu erstellen.

    gcloud compute instance-templates create ig-template-us \
        --region=us-west1 \
        --network=lb-network \
        --subnet=lb-subnet-us \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV6_ONLY \
        --tags=allow-traffic \
        --image-family=debian-12 \
        --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. Instanzvorlage in der Region europe-west2 erstellen

    Verwenden Sie den folgenden Befehl, um Backend-VMs mit Nur-IPv4-Netzwerkschnittstellen zu erstellen.

    gcloud compute instance-templates create ig-template-eu \
        --region=europe-west2 \
        --network=lb-network \
        --subnet=lb-subnet-eu \
        --stack-type=IPV4_ONLY \
        --tags=allow-traffic \
        --image-family=debian-12 \
        --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 Backend-VMs mit Dual-Stack-Netzwerkschnittstellen zu erstellen.

    gcloud compute instance-templates create ig-template-eu \
        --region=europe-west2 \
        --network=lb-network \
        --subnet=lb-subnet-eu \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV4_IPV6 \
        --tags=allow-traffic \
        --image-family=debian-12 \
        --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 Backend-VMs mit Nur-IPv6-Netzwerkschnittstellen zu erstellen.

    gcloud compute instance-templates create ig-template-eu \
        --region=europe-west2 \
        --network=lb-network \
        --subnet=lb-subnet-eu \
        --ipv6-network-tier=PREMIUM \
        --stack-type=IPV6_ONLY \
        --tags=allow-traffic \
        --image-family=debian-12 \
        --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'
    

Zonale verwaltete Instanzgruppen erstellen

In diesem Beispiel erstellen Sie zwei zonale verwaltete Instanzgruppen: eine in der Zone us-west1-a und die andere in der Zone europe-west2-a.

gcloud

  1. Erstellen Sie eine verwaltete Instanzgruppe in der Zone us-west1-a.

    gcloud compute instance-groups managed create mig-us \
      --template=ig-template-us \
      --size=2 \
      --zone=us-west1-a
    
  2. Erstellen Sie eine verwaltete Instanzgruppe in der Zone europe-west2-a.

    gcloud compute instance-groups managed create mig-eu \
      --template=ig-template-eu \
      --size=2 \
      --zone=europe-west2-a
    

Globale externe IP-Adressen reservieren

Für einen globalen externen Passthrough-Network Load Balancer sind zwei globale externe IP-Adressen erforderlich, eine aus jeder Verfügbarkeitsgruppe. Diese beiden IP-Adressen werden dann an die Weiterleitungsregel des Load-Balancers angehängt.

Bei einem globalen externen Passthrough-Network Load Balancer sind die IP-Adressen der Weiterleitungsregel vollständig von VPC-Subnetzen entkoppelt. Die IP-Adressen gehören zu globalen externen IP-Adresspools, die Google gehören, oder zu BYOIP-globalen externen IPv4-öffentlich delegierten Präfixen aus verschiedenen Verfügbarkeitsgruppen und sind keinem VPC-Subnetz zugeordnet.

Wenn Sie eine IPv6-Weiterleitungsregel konfigurieren, werden die IP-Adressen der Weiterleitungsregel als /96-Präfixe zugewiesen.

gcloud

Für IPv4-Traffic:

  1. Reservieren Sie die erste globale externe IP-Adresse mit dem Namen lb-ipv4-ag0 in der Verfügbarkeitsgruppe 0.

    gcloud beta compute addresses create lb-ipv4-ag0 \
        --global \
        --purpose=PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0 \
        --ip-version=IPV4
    
  2. Reservieren Sie die zweite globale externe IP-Adresse lb-ipv4-ag1 in der Verfügbarkeitsgruppe 1.

    gcloud beta compute addresses create lb-ipv4-ag1 \
        --global \
        --purpose=PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1 \
        --ip-version=IPV4
    

Für IPv6-Traffic:

  1. Reservieren Sie die erste globale externe IP-Adresse mit dem Namen lb-ipv6-ag0 in der Verfügbarkeitsgruppe 0.

    gcloud beta compute addresses create lb-ipv6-ag0 \
        --global \
        --purpose=PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0 \
        --ip-version=IPV6
    
  2. Reservieren Sie die zweite globale externe IP-Adresse lb-ipv6-ag1 in der Verfügbarkeitsgruppe 1.

    gcloud beta compute addresses create lb-ipv6-ag1 \
        --global \
        --purpose=PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1 \
        --ip-version=IPV6
    

Load-Balancer konfigurieren

Zum Einrichten eines globalen externen Passthrough-Network Load Balancers müssen Sie eine Systemdiagnose, einen Backend-Dienst und eine Weiterleitungsregel erstellen.

gcloud

  1. Erstellen Sie eine TCP-Systemdiagnose, die für die Generierung von TCP:80 Prüfungen konfiguriert ist.

    gcloud compute health-checks create tcp hc-tcp-80 \
      --global \
      --port=80
    
  2. Erstellen Sie einen globalen Backend-Dienst mit dem Load-Balancing-Schema EXTERNAL_PASSTHROUGH.

    gcloud beta compute backend-services create lb-backend-service \
      --load-balancing-scheme=EXTERNAL_PASSTHROUGH \
      --health-checks=hc-tcp-80 \
      --global
    
  3. Fügen Sie die Instanzgruppen als Backends zum Backend-Dienst hinzu.

    Fügen Sie dem Backend-Dienst die Instanzgruppe in der Region us-west1-a hinzu.

    gcloud beta compute backend-services add-backend lb-backend-service \
        --instance-group=mig-us \
        --instance-group-zone=us-west1-a \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.7 \
        --global
    

    Fügen Sie dem Backend-Dienst die Instanzgruppe in der Region europe-west2-a hinzu.

    gcloud beta compute backend-services add-backend lb-backend-service \
        --instance-group=mig-eu \
        --instance-group-zone=europe-west2-a \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.7 \
        --global
    
  4. Erstellen Sie eine globale Weiterleitungsregel, um TCP:80-Traffic zu verarbeiten. Sie müssen zwei Weiterleitungsregeln erstellen, um sowohl IPv4- als auch IPv6-Traffic zu verarbeiten.

    Achten Sie darauf, dass die IP-Version Ihrer Weiterleitungsregel mit dem Stacktyp der Netzwerk-Schnittstellen Ihrer Back-End-VM übereinstimmt.

    Die Weiterleitungsregel verweist auf IP-Adressen aus jeder Verfügbarkeitsgruppe.

    Für IPv4-Traffic:

    gcloud beta compute forwarding-rules create lb-forwarding-rule-ipv4 \
      --load-balancing-scheme=EXTERNAL_PASSTHROUGH \
      --ip-protocol=TCP \
      --ports=80 \
      --backend-service=lb-backend-service \
      --global \
      --ip-addresses=lb-ipv4-ag0,lb-ipv4-ag1
    

    Für IPv6-Traffic:

    gcloud beta compute forwarding-rules create lb-forwarding-rule-ipv6 \
      --load-balancing-scheme=EXTERNAL_PASSTHROUGH \
      --ip-protocol=TCP \
      --ports=80 \
      --backend-service=lb-backend-service \
      --global \
      --ip-addresses=lb-ipv6-ag0,lb-ipv6-ag1
    

Load-Balancer testen

  1. Rufen Sie die reservierten IP-Adressen ab, die der Weiterleitungsregel zugeordnet sind.

      gcloud beta compute forwarding-rules describe lb-forwarding-rule-ipv4 \
          --global
    

    Dadurch werden zwei IP-Adressen zurückgegeben, eine für jede Verfügbarkeitsgruppe. Diese IP-Adressen werden als IP_ADDRESS_AVAILABILITY_GROUP_0 und IP_ADDRESS_AVAILABILITY_GROUP_1 bezeichnet.

  2. Senden Sie Traffic an eine der beiden IP-Adressen.

      curl http://IP_ADDRESS_AVAILABILITY_GROUP_0
    
      curl http://IP_ADDRESS_AVAILABILITY_GROUP_1
    

Je nach Standort und Back-End-Status sollten Sie Antworten von den Back-End-VMs in verschiedenen Regionen sehen.

Lokale Routingtabelle nach den IP-Adressen des Load-Balancers durchsuchen

Die lokalen Routingtabellen der Backend-VMs enthalten die IP-Adressen des globalen externen Passthrough-Network Load Balancers.

Wenn Sie die lokalen Routen auf der Backend-VM prüfen möchten, stellen Sie über SSH eine Verbindung zur Backend-VM her und führen Sie den folgenden Befehl aus:

  ip route list table local

Die Ausgabe sieht so aus:

local 10.1.2.5 dev ens4 proto kernel scope host src 10.1.2.5
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
local 136.124.69.214 dev ens4 proto 66 scope host
local 136.124.83.205 dev ens4 proto 66 scope host

Im vorherigen Beispiel sind 136.124.69.214 und 136.124.83.205 die IP-Adressen, die der Weiterleitungsregel des Load-Balancers zugewiesen sind. Die Zeileneinträge local 136.124.69.214 dev ens4 proto 66 scope host und local 136.124.83.205 dev ens4 proto 66 scope host in der lokalen Routingtabelle der VM ermöglichen es dem Backend, Pakete zu akzeptieren, die an die IP-Adressen des Load-Balancers gerichtet sind. Die Cloud de Confiance Gastumgebung ist für das Hinzufügen dieses Eintrags verantwortlich.

Der Eintrag der lokalen Routingtabelle auf der Backend-VM akzeptiert das Paket für die lokale Hostzustellung. Der Netzwerk-Stack stellt es an die Anwendung zu, die darauf wartet. Die Antwortpakete der Anwendung werden dann direkt an den Client gesendet.

Die IP-Adresse des Load-Balancers ist nicht auf der Netzwerkschnittstelle der VM konfiguriert. Führen Sie den folgenden Befehl aus, um dies zu überprüfen:

  ip addr list

Die Ausgabe sieht so aus: Die IP-Adressen (136.124.69.214 und 136.124.83.205) werden in der lokalen Routingtabelle angezeigt, sind aber nicht auf der Netzwerkschnittstelle konfiguriert.

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens4:  mtu 1460 qdisc fq_codel state UP group default qlen 1000
    link/ether 42:01:0a:01:02:0d brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 10.1.2.13/32 metric 100 scope global dynamic ens4
       valid_lft 84283sec preferred_lft 84283sec
    inet6 fe80::4001:aff:fe01:20d/64 scope link
       valid_lft forever preferred_lft forever

Untergeordnete Weiterleitungsregeln ansehen

Wenn eine Weiterleitungsregel für einen globalen externen Passthrough-Network Load Balancer erstellt wird, generiertCloud de Confiance zwei schreibgeschützte untergeordnete Weiterleitungsregeln, eine für jede Verfügbarkeitsgruppe, um eine Hochverfügbarkeit zu gewährleisten.

Führen Sie den folgenden Befehl aus, um die untergeordneten Weiterleitungsregeln Ihrer Weiterleitungsregel aufzurufen:

  gcloud beta compute forwarding-rules list

Mit diesem Befehl werden alle Weiterleitungsregeln in Ihrem Projekt aufgelistet. An den Namen der Weiterleitungsregeln für untergeordnete Konten mit Lesezugriff werden -ag0 und -ag1 angehängt.

Monitoring-Messwerte können nicht mit der übergeordneten globalen Weiterleitungsregel, die Sie erstellen, abgefragt oder gefiltert werden, sondern nur mit den untergeordneten Weiterleitungsregeln. Das liegt daran, dass jede untergeordnete Weiterleitungsregel in der Verfügbarkeitsgruppe den Load-Balanced-Traffic und die Systemdiagnosen implementiert.

Zusätzliche Konfigurationsoptionen

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

Sitzungsaffinität konfigurieren

Standardmäßig wird der Backend-Dienst des Load-Balancers mit dem Wert NONE für die Sitzungsaffinität erstellt. 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.

gcloud

Aktualisieren Sie die Sitzungsaffinität für den Backend-Dienst mit dem folgenden gcloud beta compute backend-services update-Befehl:

gcloud beta compute backend-services update BACKEND_SERVICE \
    --global \
    --session-affinity=SESSION_AFFINITY_OPTION

Ersetzen Sie Folgendes:

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

Verhalten der Verbindungspersistenz ändern

Standardmäßig ist das Verhalten der Verbindungspersistenz eines Load-Balancers auf DEFAULT_FOR_PROTOCOL festgelegt. In diesem Abschnitt erfahren Sie, wie Sie das Verhalten der Verbindungspersistenz des Load-Balancers ändern.

gcloud

Verwenden Sie den folgenden gcloud beta compute backend-services update-Befehl, um das Verhalten bei der Verbindungspersistenz zu aktualisieren:

gcloud beta compute backend-services update BACKEND_SERVICE \
    --global \
    --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR

Ersetzen Sie Folgendes:

  • BACKEND_SERVICE: Der Backend-Dienst, den Sie aktualisieren.
  • CONNECTION_PERSISTENCE_BEHAVIOR: Das Verhalten der Verbindungspersistenz, wenn Back-Ends fehlerhaft sind.

Nächste Schritte