Der regionale interne Proxy-Network-Load-Balancer ist ein Proxy-basierter regionaler Layer-4-Load-Balancer, mit dem Sie Ihren TCP-Diensttraffic hinter einer internen IP-Adresse ausführen und skalieren können, auf die nur Clients im selben VPC-Netzwerk oder Clients, die mit Ihrem VPC-Netzwerk verbunden sind, Zugriff haben.
Diese Anleitung erläutert die Einrichtung eines regionalen internen Proxy-Netzwerk-Load-Balancers mit einem verwalteten Instanzgruppen-Backend (MIG-Backend).
Bevor Sie beginnen, lesen Sie die Übersicht über den regionalen internen Proxy-Network Load Balancer.
Übersicht
In diesem Beispiel verwenden wir den Load-Balancer, um TCP-Traffic auf Backend-VMs in zwei zonalen verwalteten Instanzgruppen in der Region REGION_A
zu verteilen. Der Dienst besteht dabei aus einer Reihe von Apache, 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 folgende Bereitstellung:
Der regionale interne Proxy-Network-Load-Balancer ist ein regionaler Load-Balancer. Alle Load-Balancer-Komponenten (Backend-Instanzgruppen, 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 ein Inhaber oder Bearbeiter des Projekts sein oder alle folgenden Compute Engine-IAM-Rollen haben:
Aufgabe | 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 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. Regionale interne Proxy-Network-Load-Balancer sind 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. Das Netzwerk ist 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 RegionREGION_A
verwendet10.1.2.0/24
für seinen primären IP-Bereich.Subnetz für Proxys. Ein Subnetz mit dem Namen
proxy-only-subnet
in der RegionREGION_A
verwendet10.129.0.0/23
für seinen primären IP-Bereich.
Zur Veranschaulichung des globalen Zugriffs wird in diesem Beispiel auch eine zweite Testclient-VM in einer anderen Region (REGION_B ) und ein Subnetz mit primärem IP-Adressbereich10.3.4.0/24
erstellt.
Netzwerk und Subnetze erstellen
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
lb-network
ein.Wählen Sie im Abschnitt Subnetze als Modus für die Subnetzerstellung Benutzerdefiniert aus.
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:
REGION_A
- IP-Adressbereich:
10.1.2.0/24
- Name:
Klicken Sie auf Fertig.
Klicken Sie auf Subnetz hinzufügen.
Erstellen Sie ein Subnetz, um den globalen Zugriff zu demonstrieren. Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
- Name:
test-global-access-subnet
- Region:
REGION_B
- IP-Adressbereich:
10.3.4.0/24
- Name:
Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie mit dem Befehl
gcloud compute networks create
das benutzerdefinierte VPC-Netzwerk:gcloud compute networks create lb-network --subnet-mode=custom
Erstellen Sie mit dem Befehl
gcloud compute networks subnets create
ein Subnetz im Netzwerklb-network
in der RegionREGION_A
:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Ersetzen Sie REGION_A durch den Namen der Google Cloud-Zielregion.
Erstellen Sie mit dem Befehl
gcloud compute networks subnets create
ein Subnetz im Netzwerklb-network
in der RegionREGION_B
:gcloud compute networks subnets create test-global-access-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=REGION_B
Ersetzen Sie REGION_B durch den Namen der Google Cloud-Region, in der Sie das zweite Subnetz zum Testen des globalen Zugriffs erstellen möchten.
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 REGION_A
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:
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Zur Seite „VPC-Netzwerke“ - Klicken Sie auf den Namen des freigegebenen VPC-Netzwerks:
lb-network
. - Klicken Sie auf Subnetz hinzufügen.
- Geben Sie für Name
proxy-only-subnet
ein. - Wählen Sie bei Region die Option
REGION_A
aus. - Setzen Sie Zweck auf Regional verwalteter Proxy.
- Geben Sie
10.129.0.0/23
als IP-Adressbereich ein. - Klicken Sie auf Hinzufügen.
gcloud
Erstellen Sie das Nur-Proxy-Subnetz mit dem Befehl gcloud compute networks subnets
create
.
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=lb-network \ --range=10.129.0.0/23
Firewallregeln erstellen
Für dieses Beispiel sind die folgenden Firewallregeln erforderlich:
fw-allow-ssh
: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und eingehende SSH-Verbindungen über TCP-Port22
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-Tagallow-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
und35.191.0.0/16
). In diesem Beispiel wird das Ziel-Tagallow-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 Back-End-VMs darauf, die angegebenen Ziel-Tags wie in Verwaltete Instanzgruppe erstellen beschrieben zu verwenden.
Console
- Rufen Sie in der Google Cloud Console die Seite Firewall auf.
Zu den Firewall-Richtlinien - Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen zulässt:
- Name:
fw-allow-ssh
- Netzwerk:
lb-network
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Ziel-Tags
- Zieltags:
allow-ssh
- Quellfilter: IPv4-Bereiche.
- Source IPv4 ranges:
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.
- Name:
- Klicken Sie auf Erstellen.
- 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
und35.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 Sietcp:80
für das Protokoll und den Port verwenden, kann Google Cloud HTTP auf Port80
verwenden, um Ihre VMs zu kontaktieren. Es kann HTTPS jedoch nicht auf Port443
verwenden, um den Kontakt herzustellen.
- Name:
- Klicken Sie auf Erstellen.
- 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.
- Source IPv4 ranges:
10.129.0.0/23
- 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.
- Name:
- Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Firewallregel
fw-allow-ssh
, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tagallow-ssh
zu ermöglichen. Wenn Siesource-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
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
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 Beispiel10.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
Informationen zum Reservieren einer statischen internen IP-Adresse für Ihren Load-Balancer finden Sie unter Neue statische interne IPv4- oder IPv6-Adresse reservieren.
Erstellen Sie eine verwaltete Instanzgruppe.
In diesem Abschnitt erfahren Sie, wie Sie zwei Back-Ends der verwalteten Instanzgruppe (MIG) in der Region REGION_A
für den Load-Balancer erstellen. Die MIG stellt VM-Instanzen bereit, auf denen die Backend-Apache-Server für diesen regionalen internen Beispiel-Proxy-Netzwerk-Load-Balancer ausgeführt werden.
In der Regel wird ein regionaler interner Proxy-Network-Load-Balancer nicht für HTTP-Traffic verwendet. Apache-Software wird jedoch häufig zu Testzwecken verwendet.
Console
eine Instanzvorlage erstellen Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.
- Klicken Sie auf Instanzvorlage erstellen.
- Geben Sie für Name
int-tcp-proxy-backend-template
ein. - Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Stretch) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B.
apt-get
. - Klicken Sie auf Erweiterte Optionen.
- Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags
allow-ssh
,allow-health-check
undallow-proxy-only-subnet
ein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk:
lb-network
- Subnetz:
backend-subnet
- Netzwerk:
- Geben Sie bei Netzwerk-Tags
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
Klicken Sie auf Erstellen.
Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie auf Instanzgruppe erstellen.
- Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
- Geben Sie für Name
mig-a
ein. - Wählen Sie unter Ort die Option Einzelne Zone aus.
- Wählen Sie bei Region die Option
REGION_A
aus. - Wählen Sie bei Zone die Option
ZONE_A1
aus. - Wählen Sie unter Instanzvorlage
int-tcp-proxy-backend-template
aus. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.
Geben Sie für dieses Beispiel unter 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.
- Wählen Sie für Autoscaling-Modus
Klicken Sie im Abschnitt Portzuordnung auf Port hinzufügen.
- Geben Sie als Portname
tcp80
ein. - Geben Sie für Portnummer
80
ein.
- Geben Sie als Portname
Klicken Sie auf Erstellen.
Wiederholen Sie Schritt 2, um eine zweite verwaltete Instanzgruppe mit den folgenden Einstellungen zu erstellen:
- Name:
mig-c
- Zone:
ZONE_A2
Behalten Sie alle anderen Einstellungen bei.
- Name:
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.
Erstellen Sie mit dem Befehl
gcloud compute instance-templates create
eine VM-Instanzvorlage mit HTTP-Server.gcloud compute instance-templates create int-tcp-proxy-backend-template \ --region=REGION_A \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --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'
Erstellen Sie eine verwaltete Instanzgruppe in der Zone
ZONE_A1
.gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A1 \ --size=2 \ --template=int-tcp-proxy-backend-template
Ersetzen Sie ZONE_A1 durch den Namen der Zone in der Google Cloud-Zielregion.
Erstellen Sie eine verwaltete Instanzgruppe in der Zone
ZONE_A2
.gcloud compute instance-groups managed create mig-c \ --zone=ZONE_A2 \ --size=2 \ --template=int-tcp-proxy-backend-template
Ersetzen Sie ZONE_A2 durch den Namen einer anderen Zone in der Google Cloud-Zielregion.
Load-Balancer konfigurieren
Console
Konfiguration starten
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
- Wählen Sie unter Proxy oder Passthrough die Option Proxy-Load Balancer aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Intern aus und klicken Sie auf Weiter.
- Wählen Sie für Regionenübergreifende oder Einzelregion-Bereitstellung die Option Am besten für regionale Arbeitslasten aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
- Geben Sie für Name
my-int-tcp-lb
ein. - Wählen Sie bei Region die Option
REGION_A
aus. - Wählen Sie für Netzwerk die Option
lb-network
aus.
Nur-Proxy-Subnetz reservieren
So reservieren Sie ein Nur-Proxy-Subnetz:
- Klicken Sie auf Subnetz reservieren.
- Geben Sie für Name
proxy-only-subnet
ein. - Geben Sie
10.129.0.0/23
als IP-Adressbereich ein. - Klicken Sie auf Hinzufügen.
Backend-Konfiguration
- Klicken Sie auf Backend-Konfiguration.
- Wählen Sie für den Backend-Typ die Option Instanzgruppe aus.
- Wählen Sie für Protokoll die Option TCP aus.
- Geben Sie als Benannter Port
tcp80
ein. - Configure the first backend:
- Wählen Sie unter Neues Backend die Instanzgruppe
mig-a
aus. - Geben Sie unter Portnummern
80
ein. - Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Fertig.
- Wählen Sie unter Neues Backend die Instanzgruppe
- Configure the second backend:
- Klicken Sie auf Backend hinzufügen.
- Wählen Sie unter Neues Backend die Instanzgruppe
mig-c
aus. - Geben Sie unter Portnummern
80
ein. - Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Fertig.
- Systemdiagnose konfigurieren:
- Klicken Sie bei Systemdiagnose auf Systemdiagnose erstellen.
- Geben Sie als Name für die Systemdiagnose
tcp-health-check
an. - Wählen Sie für Protocol die Option TCP aus.
- Legen Sie für Port den Wert
80
fest.
- Behalten Sie die verbleibenden Standardwerte bei und klicken Sie auf Speichern.
- 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-Konfiguration
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie für Name
int-tcp-forwarding-rule
ein. - Wählen Sie als Subnetzwerk backend-subnet aus.
- Wählen Sie unter IP-Adresse die zuvor reservierte IP-Adresse aus: LB_IP_ADDRESS
- Geben Sie für Portnummer
110
ein. Die Weiterleitungsregel leitet nur Pakete mit einem übereinstimmenden Zielport weiter. - Aktivieren Sie in diesem Beispiel das Proxyprotokoll nicht, da es mit der Apache HTTP Server-Software nicht funktioniert. Weitere Informationen finden Sie unter Proxyprotokoll.
- Klicken Sie auf Fertig.
- 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
- Klicken Sie auf Prüfen und abschließen.
- Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
- Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
- Klicken Sie auf Erstellen.
gcloud
Regionale Systemdiagnose erstellen.
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
Erstellen Sie einen Backend-Dienst.
gcloud compute backend-services create internal-tcp-proxy-bs \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
Fügen Sie Instanzgruppen zu Ihrem Backend-Dienst hinzu.
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A1 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-c \ --instance-group-zone=ZONE_A2 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
Erstellen Sie einen internen TCP-Proxy.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_A
Wenn Sie den Proxyheader aktivieren möchten, legen Sie
PROXY_V1
anstelle vonNONE
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.Erstellen Sie die Weiterleitungsregel. Geben Sie für
--ports
eine einzelne Portnummer zwischen 1 und 65535 an. In diesem Beispiel wird Port110
verwendet. Die Weiterleitungsregel leitet nur Pakete mit einem übereinstimmenden Zielport weiter.gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110
Load-Balancer testen
Um den Load-Balancer zu testen, erstellen Sie eine Client-VM in der Region des Load-Balancers. Senden Sie dann Traffic vom Client an den Load-Balancer.
Client-VM erstellen
Erstellen Sie eine Client-VM (client-vm
) in derselben Region wie der Load-Balancer.
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf Instanz erstellen.
Legen Sie als Name
client-vm
fest.Legen Sie für Zone den Wert
ZONE_A1
fest.Klicken Sie auf Erweiterte Optionen.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags den Wert
allow-ssh
ein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk:
lb-network
- Subnetz:
backend-subnet
- Netzwerk:
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Erstellen.
gcloud
Die Client-VM muss sich im selben VPC-Netzwerk und in derselben Region wie der Load-Balancer befinden. Sie muss sich nicht im selben Subnetz oder in derselben Zone befinden. Der Client verwendet dasselbe Subnetz wie die Backend-VMs.
gcloud compute instances create client-vm \ --zone=ZONE_A1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=backend-subnet
Traffic an den Load-Balancer senden
Nachdem Sie den Load-Balancer konfiguriert haben, können Sie Traffic zum Testen an die IP-Adresse des Load-Balancers senden.
Verwenden Sie SSH, um eine Verbindung zur Clientinstanz herzustellen.
gcloud compute ssh client-vm \ --zone=ZONE_A1
Prüfen Sie, ob der Load-Balancer die Backend-Hostnamen wie erwartet bereitstellt.
Verwenden Sie den Befehl
compute addresses describe
, um die IP-Adresse des Load-Balancers aufzurufen:gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Notieren Sie sich die IP-Adresse.
Traffic an den Load-Balancer senden Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers.
curl IP_ADDRESS:110
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.
Globalen Zugriff aktivieren
Sie können den globalen Zugriff für Ihren Load-Balancer aktivieren, damit Clients in beliebigen Regionen darauf zugreifen können. Die Back-Ends Ihres Beispiel-Load-Balancers müssen sich weiterhin in einer einzigen Region (REGION_A
) befinden.
Sie können eine vorhandene regionale Weiterleitungsregel nicht ändern, um den globalen Zugriff zu aktivieren. Zu diesem Zweck müssen Sie eine neue Weiterleitungsregel erstellen. Außerdem kann eine erstellte Weiterleitungsregel mit aktiviertem globalem Zugriff nicht mehr geändert werden. Zum Deaktivieren des globalen Zugriffs müssen Sie eine neue regionale Weiterleitungsregel erstellen und die vorherige globale Weiterleitungsregel löschen.
Wenn Sie den globalen Zugriff konfigurieren möchten, nehmen Sie die folgenden Änderungen an der Konfiguration vor:
Console
Erstellen Sie eine neue Weiterleitungsregel für den Load-Balancer:
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie in der Spalte Name auf den Load-Balancer.
Klicken Sie auf Frontend-Konfiguration.
Klicken Sie auf Frontend-IP und Port hinzufügen.
Geben Sie den Namen und die Subnetzdetails für die neue Weiterleitungsregel ein.
Wählen Sie als Subnetzwerk backend-subnet aus.
Für die IP-Adresse können Sie entweder dieselbe IP-Adresse wie eine vorhandene Weiterleitungsregel auswählen, eine neue IP-Adresse reservieren oder eine sitzungsspezifische IP-Adresse verwenden. Die Freigabe derselben IP-Adresse für mehrere Weiterleitungsregeln ist nur möglich, wenn Sie das Flag
--purpose
der IP-Adresse beim Erstellen der IP-Adresse aufSHARED_LOADBALANCER_VIP
setzen.Geben Sie als Portnummer
110
ein.Wählen Sie für Globaler Zugriff die Option Aktivieren aus.
Klicken Sie auf Fertig.
Klicken Sie auf Aktualisieren.
gcloud
Erstellen Sie eine neue Weiterleitungsregel für den Load-Balancer mit dem
--allow-global-access
-Flag.gcloud compute forwarding-rules create int-tcp-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110 \ --allow-global-access
Mit dem Befehl
gcloud compute forwarding-rules describe
können Sie feststellen, ob für eine Weiterleitungsregel der globale Zugriff aktiviert ist. Beispiel:gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \ --region=REGION_A \ --format="get(name,region,allowGlobalAccess)"
Wenn der globale Zugriff aktiviert ist, wird das Wort
True
in der Ausgabe nach Namen und Region der Weiterleitungsregel angezeigt.
Client-VM erstellen, um den globalen Zugriff zu testen
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf Instanz erstellen.
Legen Sie als Name
test-global-access-vm
fest.Legen Sie für Zone den Wert
ZONE_B1
fest.Klicken Sie auf Erweiterte Optionen.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags den Wert
allow-ssh
ein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk:
lb-network
- Subnetz:
test-global-access-subnet
- Netzwerk:
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine Client-VM in der ZONE_B1
-Zone.
gcloud compute instances create test-global-access-vm \ --zone=ZONE_B1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=test-global-access-subnet
Ersetzen Sie ZONE_B1 durch den Namen der Zone in der Region REGION_B.
Eine Verbindung zur Client-VM herstellen und die Verbindung testen
Stellen Sie über
ssh
eine Verbindung zum Client her.gcloud compute ssh test-global-access-vm \ --zone=ZONE_B1
Verwenden Sie den Befehl
gcloud compute addresses describe
, um die IP-Adresse des Load-Balancers abzurufen:gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Notieren Sie sich die IP-Adresse.
Traffic an den Load-Balancer senden Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers:
curl IP_ADDRESS:110
PROXY-Protokoll für den Erhalt der Verbindungsinformationen des Clients
Der Proxy-Network Load Balancer beendet TCP-Verbindungen vom Client und erstellt neue Verbindungen zu den Instanzen. Standardmäßig bleiben die ursprüngliche IP-Adresse des Clients und die Portinformationen nicht automatisch erhalten.
Aktivieren Sie deshalb das PROXY-Protokoll (Version 1). Damit bleiben die ursprünglichen Verbindungsinformationen erhalten und werden an Ihre Instanzen gesendet. Mit diesem Protokoll wird mit der Anfrage zusätzlich ein Header mit Quell-IP-Adresse, Ziel-IP-Adresse und Portnummern an die Instanz gesendet.
Achten Sie darauf, dass die Backend-Instanzen des Proxy-Network Load Balancers Server ausführen, die PROXY-Protokoll-Header unterstützen. Wenn die Server nicht für die Unterstützung von PROXY-Protokoll-Headern konfiguriert sind, geben die Backend-Instanzen leere Antworten zurück.
Wenn Sie das PROXY-Protokoll für Nutzer-Traffic festlegen, können Sie es auch für die Systemdiagnosen festlegen. Wenn Sie Systemdiagnosen und Inhaltsbereitstellung über denselben Port durchführen, legen Sie den --proxy-header
der Systemdiagnose so fest, dass er mit der Einstellung des Load-Balancers übereinstimmt.
Der PROXY-Protokoll-Header enthält in der Regel eine einzelne, für Nutzer lesbare Textzeile im folgenden Format:
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
Das folgende Beispiel zeigt ein PROXY-Protokoll:
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
Im vorherigen Beispiel lautet die Client-IP-Adresse 192.0.2.1
, die Load Balancing-IP-Adresse 198.51.100.1
, der Clientport 15221
und der Zielport 110
.
Wenn die Client-IP-Adresse nicht bekannt ist, generiert der Load Balancer einen PROXY-Protokoll-Header im folgenden Format:
PROXY UNKNOWN\r\n
PROXY-Protokoll-Header für Ziel-Proxy aktualisieren
Der PROXY-Protokoll-Header des bestehenden Ziel-Proxys kann nicht aktualisiert werden. Sie müssen dann einen neuen Zielproxy mit der erforderlichen Einstellung für den PROXY-Protokoll-Header erstellen. Führen Sie die folgenden Schritte aus, um ein neues Frontend mit den erforderlichen Einstellungen zu erstellen:
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen des Load-Balancers, den Sie bearbeiten möchten.
- Klicken Sie neben dem Load Balancer auf Bearbeiten.
- Klicken Sie auf Front-End-Konfiguration.
- Löschen Sie die alte Frontend-IP-Adresse und den alten Frontend-Port.
- Klicken Sie auf Front-End-IP und Port hinzufügen.
- Geben Sie für Name
int-tcp-forwarding-rule
ein. - Wählen Sie als Subnetzwerk backend-subnet aus.
- Wählen Sie unter IP-Adresse die zuvor reservierte IP-Adresse aus: LB_IP_ADDRESS
- Geben Sie als Portnummer
110
ein. Die Weiterleitungsregel leitet nur Pakete mit einem übereinstimmenden Zielport weiter. - Ändern Sie den Wert des Felds Proxyprotokoll zu Ein.
- Klicken Sie auf Fertig.
- Geben Sie für Name
- Klicken Sie auf Update (Aktualisieren), um die Änderungen zu speichern.
gcloud
Bearbeiten Sie im folgenden Befehl das Feld
--proxy-header
und legen Sie es je nach Anforderung aufNONE
oderPROXY_V1
fest.gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --proxy-header=[NONE | PROXY_V1] \ --region=REGION
Löschen Sie die vorhandene Weiterleitungsregel.
gcloud compute forwarding-rules delete int-tcp-forwarding-rule \ --region=REGION
Erstellen Sie eine neue Weiterleitungsregel und verknüpfen Sie sie mit dem Zielproxy.
gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION \ --target-tcp-proxy=TARGET_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --address=LB_IP_ADDRESS \ --ports=110
Sitzungsaffinität aktivieren
Die Beispielkonfiguration erstellt einen Backend-Dienst ohne Sitzungsaffinität.
Diese Verfahren zeigen, wie Sie einen Backend-Dienst für den regionalen internen Beispiel-Proxy-Netzwerk-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.
Console
So aktivieren Sie die Client-IP-Sitzungsaffinität:
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Gehen Sie zu „Load-Balancing“ - Klicken Sie auf Back-Ends.
- Klicken Sie auf internal-tcp-proxy-bs (den Namen des Backend-Dienstes, den Sie für dieses Beispiel erstellt haben) und dann auf Bearbeiten.
- Klicken Sie auf der Seite Backend-Dienstdetails auf Erweiterte Konfiguration.
- Wählen Sie im Menü unter Sitzungsaffinität die Option Client-IP aus.
- Klicken Sie auf Aktualisieren.
gcloud
Aktualisieren Sie den Back-End-Dienst internal-tcp-proxy-bs
mit dem folgenden Google Cloud CLI-Befehl. Geben Sie dabei die Sitzungsaffinität der Client-IP an:
gcloud compute backend-services update internal-tcp-proxy-bs \ --region=REGION_A \ --session-affinity=CLIENT_IP
Verbindungsausgleich aktivieren
Sie können für Backend-Dienste den Verbindungsausgleich aktivieren, um Dienstausfälle für Nutzer zu minimieren, wenn eine Instanz, die Traffic bereitstellt, beendet bzw. manuell oder durch Autoscaling entfernt wird. Weitere Informationen zum Verbindungsausgleich finden Sie unter Verbindungsausgleich aktivieren.
Nächste Schritte
- Proxy-Network Load Balancer in IPv6 konvertieren
- Übersicht über regionalen internen Proxy-Network Load Balancer
- Monitoring verwenden
- Einrichtung des Load-Balancers bereinigen