Auf dieser Seite wird gezeigt, wie Sie einen regionenübergreifenden internen Proxy-Netzwerk-Load-Balancer bereitstellen, um Traffic mithilfe von Hybridkonnektivität auf Netzwerk-Endpunkte zu verteilen, die sich lokal oder in anderen öffentlichen Clouds befinden.
In der Übersicht über NEGs mit Hybrid-Konnektivität werden die Netzwerkanforderungen zum Einrichten von Hybrid-Load-Balancing erläutert.
Einrichtung: Übersicht
In diesem Beispiel wird ein regionenübergreifender interner Proxy-Netzwerk-Load-Balancer für NEG-Back-Ends für gemischte zonale und Hybridkonnektivität eingerichtet, wie in der folgenden Abbildung dargestellt:
Sie müssen Hybridkonnektivität konfigurieren, bevor Sie eine Bereitstellung mit Hybrid-Load-Balancing einrichten. Verwenden Sie je nach ausgewähltem Produkt für Hybridkonnektivität entweder Cloud VPN oder Cloud Interconnect (Dedicated oder Partner).
Berechtigungen
Zum Einrichten des Hybrid-Load-Balancings benötigen Sie die folgenden Berechtigungen:
Mit Google Cloud
- Berechtigungen zum Herstellen von Hybridkonnektivität zwischen Google Cloud und Ihrer lokalen Umgebung oder anderen Cloud-Umgebungen. Eine Liste der erforderlichen Berechtigungen finden Sie in der jeweiligen Dokumentation zum Netzwerkverbindungsprodukt.
- Berechtigungen zum Erstellen einer Hybridkonnektivitäts-NEG und des Load-Balancers.
Die Rolle „Compute-Load-Balancer-Administrator” (
roles/compute.loadBalancerAdmin
) enthält die zum Ausführen der in dieser Anleitung beschriebenen Aufgaben erforderlichen Berechtigungen.
In Ihrer lokalen Umgebung oder sonstigen Cloud-Umgebung außerhalb von Google Cloud
- Berechtigungen zum Konfigurieren von Netzwerkendpunkten, damit Dienste in Ihrer lokalen Umgebung oder in anderen Cloud-Umgebungen über eine
IP:Port
-Kombination aus Google Cloud erreicht werden können. Für weitere Informationen wenden Sie sich an den Netzwerkadministrator Ihrer Umgebung. - Berechtigungen zum Erstellen von Firewallregeln in Ihrer lokalen Umgebung oder in anderen Cloud-Umgebungen, damit die Systemdiagnoseprüfungen von Google die Endpunkte erreichen können.
- Berechtigungen zum Konfigurieren von Netzwerkendpunkten, damit Dienste in Ihrer lokalen Umgebung oder in anderen Cloud-Umgebungen über eine
Um die Anleitung auf dieser Seite abzuschließen, müssen Sie außerdem eine Hybridkonnektivitäts-NEG, einen Load-Balancer sowie zonale NEGs (und ihre Endpunkte) erstellen, die als Google Cloud-basierte Back-Ends für den Load-Balancer dienen.
Sie sollten entweder Inhaber oder Bearbeiter des Projekts sein oder die folgenden IAM-Rollen für Compute Engine haben:
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 ) |
Hybridkonnektivität einrichten
Ihre Google Cloud-Umgebung und Ihre lokale Umgebung oder sonstigen Cloud-Umgebungen müssen über Hybridkonnektivität verbunden sein. Dafür werden entweder Cloud Interconnect-VLAN-Anhänge oder Cloud VPN-Tunnel mit Cloud Router verwendet. Wir empfehlen die Verwendung einer Verbindung mit Hochverfügbarkeit.
Ein Cloud Router, der für das globale dynamische Routing aktiviert ist, erkennt den spezifischen Endpunkt über das Border Gateway Protocol (BGP) und programmiert ihn in Ihrem Google Cloud-VPC-Netzwerk. Regionales dynamisches Routing wird nicht unterstützt. Statische Routen werden ebenfalls nicht unterstützt.
Das VPC-Netzwerk, mit dem Sie entweder Cloud Interconnect oder Cloud VPN konfigurieren, ist dasselbe Netzwerk, das Sie auch zum Konfigurieren der Bereitstellung des Hybrid-Load-Balancing verwenden. Achten Sie darauf, dass die Subnetz-CIDR-Bereiche Ihres VPC-Netzwerks nicht mit Ihren Remote-CIDR-Bereichen in Konflikt stehen. Bei Überschneidung von IP-Adressen haben Subnetzrouten Vorrang vor Remote-Verbindungen.
Eine Anleitung finden Sie in der folgenden Dokumentation:
Umgebung außerhalb von Google Cloud einrichten
Führen Sie die folgenden Schritte aus, um Ihre lokale Umgebung oder sonstige Cloud-Umgebung für das Hybrid-Load-Balancing einzurichten:
- Konfigurieren Sie Netzwerkendpunkte, um lokale Dienste in Google Cloud verfügbar zu machen (
IP:Port
). - Konfigurieren Sie Firewallregeln in Ihrer lokalen Umgebung oder sonstigen Cloud-Umgebung.
- Konfigurieren Sie Cloud Router so, dass bestimmte erforderliche Routen in Ihrer privaten Umgebung beworben werden.
Netzwerkendpunkte einrichten
Nachdem Sie die Hybridkonnektivität eingerichtet haben, konfigurieren Sie einen oder mehrere Netzwerkendpunkte innerhalb Ihrer lokalen Umgebung oder anderer Cloud-Umgebungen, die über Cloud Interconnect oder Cloud VPN mit einer IP:port
-Kombination erreichbar ist. Diese IP:port
-Kombination wird als einzelner Endpunkt oder als mehrere Endpunkte für die Hybridkonnektivitäts-NEG konfiguriert, die später in diesem Vorgang in Google Cloud erstellt wird.
Wenn mehrere Pfade zum IP-Endpunkt vorhanden sind, folgt das Routing dem unter Cloud Router – Übersicht beschriebenen Verhalten.
Firewallregeln einrichten
Die folgenden Firewallregeln müssen in Ihrer lokalen Umgebung oder einer anderen Cloud-Umgebung erstellt werden:
- Erstellen Sie eine Firewallregel „eingehenden Traffic zulassen“ in lokalen oder anderen Cloudumgebungen, damit Traffic aus dem Nur-Proxy-Subnetz der Region die Endpunkte erreichen kann.
Sie müssen die Prüfbereiche der Systemdiagnose von Google nicht einer Zulassungsliste für Hybrid-NEGs hinzufügen. Wenn Sie jedoch eine Kombination aus hybriden und zonalen NEGs in einem einzelnen Backend-Dienst verwenden, müssen Sie die Prüfbereiche der Systemdiagnose von Google einer Zulassungsliste für die zonalen NEGs hinzufügen.
Routen bewerben
Konfigurieren Sie Cloud Router für die Bewerbung der folgenden benutzerdefinierten IP-Bereiche in Ihrer lokalen Umgebung oder einer anderen Cloud-Umgebung:
- Der Bereich des Nur-Proxy-Subnetzes der Region.
Google Cloud-Umgebung einrichten
Verwenden Sie für die folgenden Schritte dasselbe VPC-Netzwerk (in diesem Verfahren NETWORK
genannt), mit dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.
Achten Sie außerdem darauf, dass die verwendeten Regionen (in diesem Verfahren REGION_A
und REGION_B
genannt) mit den Regionen übereinstimmen, die zum Erstellen des Cloud VPN-Tunnels oder der Cloud Interconnect-VLAN-Anhänge verwendet werden.
Backend-Subnetze konfigurieren
Verwenden Sie dieses Subnetz, um die zonalen NEG-Back-Ends des Load Balancers zu erstellen:
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Rufen Sie das Netzwerk auf, das zum Konfigurieren der Hybridkonnektivität zwischen den Umgebungen verwendet wurde.
Im Bereich Subnetze:
- Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
- Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
- Geben Sie einen Namen für das Subnetz an.
- Wählen Sie eine Region aus: REGION_A
- Geben Sie einen IP-Adressbereich ein.
- Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
Klicken Sie auf Subnetz hinzufügen und wiederholen Sie die vorherigen Schritte für REGION_B, um weitere Subnetze in verschiedenen Regionen hinzuzufügen.
gcloud
Erstellen Sie Subnetze in dem Netzwerk, in dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.
gcloud compute networks subnets create SUBNET_A \ --network=NETWORK \ --range=LB_SUBNET_RANGE1 \ --region=REGION_A
gcloud compute networks subnets create SUBNET_B \ --network=NETWORK \ --range=LB_SUBNET_RANGE2 \ --region=REGION_B
API
Stellen Sie eine POST
-Anfrage an die Methode subnetworks.insert
.
Ersetzen Sie dabei PROJECT_ID
durch Ihre Projekt-ID.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks { "name": "SUBNET_A", "network": "projects/PROJECT_ID/global/networks/NETWORK", "ipCidrRange": "LB_SUBNET_RANGE1", "region": "projects/PROJECT_ID/regions/REGION_A", }
Stellen Sie eine POST
-Anfrage an die Methode subnetworks.insert
.
Ersetzen Sie dabei PROJECT_ID
durch Ihre Projekt-ID.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks { "name": "SUBNET_B", "network": "projects/PROJECT_ID/global/networks/NETWORK", "ipCidrRange": "LB_SUBNET_RANGE2", "region": "projects/PROJECT_ID/regions/REGION_B", }
Ersetzen Sie Folgendes:
SUBNET_A
undSUBNET_B
: die Namen der SubnetzeLB_SUBNET_RANGE1
undLB_SUBNET_RANGE2
: durch die IP-Adressbereiche für die SubnetzeREGION_A
undREGION_B
: die Regionen, in denen Sie den Load Balancer konfiguriert haben
Nur-Proxy-Subnetz konfigurieren
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 regionalen Load-Balancern in derselben Region des VPC-Netzwerks verwendet. Pro Zweck, Region und Netzwerk kann jeweils nur ein Nur-Proxy-Subnetz aktiv sein.
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.
- Klicken Sie auf den Namen des VPC-Netzwerks.
- Klicken Sie auf dem Tab Subnetze auf Subnetz hinzufügen.
- Geben Sie einen Namen für das Nur-Proxy-Subnetz an.
- Wählen Sie in der Liste Region REGION_A aus.
- Wählen Sie in der Liste Zweck die Option Regionenübergreifender verwalteter Proxy aus.
- Geben Sie im Feld IP-Adressbereich den Wert
10.129.0.0/23
ein. - Klicken Sie auf Hinzufügen.
Erstellen Sie das Nur-Proxy-Subnetz in REGION_B.
- Klicken Sie auf Subnetz hinzufügen.
- Geben Sie einen Namen für das Nur-Proxy-Subnetz an.
- Wählen Sie in der Liste Region REGION_B aus.
- Wählen Sie in der Liste Zweck die Option Regionenübergreifender verwalteter Proxy aus.
- Geben Sie im Feld IP-Adressbereich den Wert
10.130.0.0/23
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_SN_A \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE1
gcloud compute networks subnets create PROXY_SN_B \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_B \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE2
Ersetzen Sie Folgendes:
PROXY_SN_A
undPROXY_SN_B
: die Namen der Nur-Proxy-SubnetzePROXY_ONLY_SUBNET_RANGE1
undPROXY_ONLY_SUBNET_RANGE2
: der IP-Adressbereich für die Nur-Proxy-SubnetzeREGION_A
undREGION_B
: die Regionen, in denen Sie den Load-Balancer konfiguriert haben
API
Erstellen Sie das Nur-Proxy-Subnetz mit der Methode subnetworks.insert
und ersetzen Sie PROJECT_ID
dabei durch Ihre Projekt-ID.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks { "name": "PROXY_SN_A", "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE1", "network": "projects/PROJECT_ID/global/networks/NETWORK", "region": "projects/PROJECT_ID/regions/REGION_A", "purpose": "GLOBAL_MANAGED_PROXY", "role": "ACTIVE" }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks { "name": " PROXY_SN_B", "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE2", "network": "projects/PROJECT_ID/global/networks/NETWORK", "region": "projects/PROJECT_ID/regions/REGION_B", "purpose": "GLOBAL_MANAGED_PROXY", "role": "ACTIVE" }
Firewallregeln erstellen
In diesem Beispiel erstellen Sie die folgenden Firewallregeln für die zonalen NEG-Back-Ends in Google Cloud:
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, um die zonalen NEGs zu identifizieren, auf die sie angewendet werden soll.fw-allow-ssh
: Eine Regel für eingehenden Traffic, die eingehende SSH-Verbindungen an 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-Tagallow-ssh
verwendet, um die VMs zu identifizieren, auf die sie angewendet werden soll.fw-allow-proxy-only-subnet
: eine Regel für eingehenden Traffic, die zulässt, dass Verbindungen vom Nur-Proxy-Subnetz die zonalen NEG-Back-Ends erreichen.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die Traffic von Systemdiagnoseprüfungen zulässt:
- Geben Sie als Namen
fw-allow-health-check
ein. - Wählen Sie für Netzwerk die Option NETWORK aus.
- Wählen Sie unter Ziele die Option Angegebene Ziel-Tags aus.
- Tragen Sie im Feld Ziel-Tags
allow-health-check
ein. - Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
- Legen Sie unter Quell-IPv4-Bereiche die Werte
130.211.0.0/22
und35.191.0.0/16
fest. - Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
- Wählen Sie TCP aus und geben Sie
80
als Portnummer ein. - Klicken Sie auf Erstellen.
- Geben Sie als Namen
Klicken Sie noch einmal auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen zulässt:
- Name:
fw-allow-ssh
- Netzwerk: NETWORK
- Priorität:
1000
- 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.
- Wählen Sie TCP aus und geben Sie
22
als Portnummer ein. - Klicken Sie auf Erstellen.
- Name:
Klicken Sie noch einmal auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende Verbindungen vom Nur-Proxy-Subnetz zulässt:
- Name:
fw-allow-proxy-only-subnet
- Netzwerk: NETWORK
- Priorität:
1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Ziel-Tags
- Zieltags:
allow-proxy-only-subnet
- Quellfilter: IPv4-Bereiche.
- IPv4-Quellbereiche: PROXY_ONLY_SUBNET_RANGE1 und PROXY_ONLY_SUBNET_RANGE2
- Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus.
- Wählen Sie TCP aus und geben Sie
80
als Portnummer ein. - Klicken Sie auf Erstellen.
- Name:
gcloud
Erstellen Sie die Regel
fw-allow-health-check-and-proxy
, damit die Google Cloud-Systemdiagnosen die Backend-Instanzen auf dem TCP-Port80
erreichen können:gcloud compute firewall-rules create fw-allow-health-check \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
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=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Erstellen Sie eine Firewallregel zum Zulassen von eingehendem Traffic für das Nur-Proxy-Subnetz, damit der Load-Balancer mit Backend-Instanzen auf dem TCP-Port
80
kommunizieren kann:gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=PROXY_ONLY_SUBNET_RANGE1,PROXY_ONLY_SUBNET_RANGE2 \ --rules=tcp:80
Zonale NEG einrichten
Für Google Cloud-basierte Back-Ends sollten Sie mehrere zonale NEGs in derselben Region konfigurieren, in der Sie Hybridkonnektivität konfiguriert haben.
In diesem Beispiel wird eine zonale NEG mit Endpunkten des Typs GCE_VM_IP_PORT
in der REGION1
eingerichtet. Erstellen Sie zuerst die VMs in der Zone NEG_ZONE1
. Erstellen Sie dann eine zonale NEG in der NEG_ZONE2
und fügen Sie der NEG die Netzwerkendpunkte der VMs hinzu.
Um Hochverfügbarkeit zu unterstützen, richten wir eine ähnliche zonale NEG in der Region REGION2 ein. Wenn Backends in einer Region zufällig ausfallen, wird der Traffic auf die andere Region umgeleitet.
VMs erstellen
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Wiederholen Sie die Schritte 3 bis 8 pro VM mit folgenden Kombinationen aus Name und Zone.
- Name:
vm-a1
- Zone: NEG_ZONE1 in der Region REGION_A
- Subnetz: SUBNET_A
- Name:
vm-b1
- Zone: NEG_ZONE2 in der Region REGION_B
- Subnetz: SUBNET_B
- Name:
Klicken Sie auf Instanz erstellen.
Legen Sie den Namen wie im vorherigen Schritt angegeben fest.
Wählen Sie unter Region die Option wie im vorherigen Schritt angegeben aus.
Wählen Sie unter Zone die Option wie im vorherigen Schritt angegeben aus.
Achten Sie im Bereich Bootlaufwerk darauf, dass als Bootlaufwerk-Optionen das Betriebssystem Debian und die Version 10 (Buster) ausgewählt sind. Klicken Sie auf Auswählen, um das Image bei Bedarf zu ändern.
Maximieren Sie im Abschnitt Erweiterte Optionen den Bereich Netzwerk und gehen Sie dann so vor:
- Fügen Sie die folgenden Netzwerk-Tags hinzu:
allow-ssh
,allow-health-check
undallow-proxy-only-subnet
. - Klicken Sie im Bereich Netzwerkschnittstellen auf Netzwerkschnittstelle hinzufügen, nehmen Sie die folgenden Änderungen vor und klicken Sie dann auf Fertig:
- Netzwerk: NETWORK
- Subnetzwerk: Wie im vorherigen Schritt angegeben.
- Primäre interne IP: sitzungsspezifisch (automatisch)
- Externe IP: sitzungsspezifisch
Maximieren Sie die Verwaltung. Kopieren Sie den folgenden Scriptinhalt und fügen Sie ihn im Feld Automatisierung ein. Der Scriptinhalt ist für alle VMs identisch.
#! /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
- Fügen Sie die folgenden Netzwerk-Tags hinzu:
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die VMs. Führen Sie dazu den folgenden Befehl zweimal aus und verwenden Sie diese Kombinationen für den Namen der VM und ihrer Zone. Der Skriptinhalt ist für beide VMs identisch.
VM_NAME
vonvm-a1
- Die Zone
GCP_NEG_ZONE
als NEG_ZONE1 in der RegionREGION_A
- Das Subnetz
LB_SUBNET_NAME
als SUBNET_A
- Die Zone
VM_NAME
vonvm-b1
- Zone
GCP_NEG_ZONE
als NEG_ZONE2 in der RegionREGION_B
- Subnetz
LB_SUBNET_NAME
als SUBNET_B
gcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=LB_SUBNET_NAME \ --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'
- Zone
Zonale NEG erstellen
Console
So erstellen Sie eine zonale Netzwerk-Endpunktgruppe:
Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
Wiederholen Sie die Schritte 3 bis 8 pro zonaler VM mit folgenden Kombinationen aus Name und Zone.
- Name:
neg-1
- Zone: NEG_ZONE1 in der Region
REGION_A
- Subnetz: SUBNET_A
- Zone: NEG_ZONE1 in der Region
- Name:
neg-2
- Zone: NEG_ZONE2 in der Region
REGION_B
- Subnetz: SUBNET_B
- Zone: NEG_ZONE2 in der Region
- Name:
Klicken Sie auf Netzwerk-Endpunktgruppe erstellen.
Legen Sie den Namen wie im vorherigen Schritt angegeben fest.
Wählen Sie den Typ der Netzwerk-Endpunktgruppe aus: Netzwerk-Endpunktgruppe (zonal).
Wählen Sie das Netzwerk aus: NETWORK
Wählen Sie das Subnetzwerk wie im vorherigen Schritt angegeben aus.
Wählen Sie die Zone wie im vorherigen Schritt angegeben aus.
Geben Sie den Standardport ein:
80
.Klicken Sie auf Erstellen.
Fügen Sie der zonalen NEG Endpunkte hinzu:
Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
Klicken Sie auf den Namen der Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde. Die Seite Netzwerk-Endpunktgruppendetails wird angezeigt.
Klicken Sie im Bereich Netzwerkendpunkte in dieser Gruppe auf Netzwerkendpunkt hinzufügen. Die Seite Netzwerk-Endpunkt hinzufügen wird angezeigt.
Wählen Sie eine VM-Instanz aus, um deren interne IP-Adressen als Netzwerkendpunkte hinzuzufügen. Im Abschnitt Netzwerkschnittstelle werden der Name, die Zone und das Subnetz der VM angezeigt.
Geben Sie die IP-Adresse des neuen Netzwerkendpunkts ein.
Wählen Sie den Porttyp aus.
- Wenn Sie Standard auswählen, wird für den Endpunkt der Standardport
80
für alle Endpunkte in der Netzwerk-Endpunktgruppe verwendet. Dies ist für unser Beispiel ausreichend, da der Apache-Server Anfragen an Port80
verarbeitet. - Wenn Sie Benutzerdefiniert auswählen, geben Sie die Portnummer für den zu verwendenden Endpunkt ein.
- Wenn Sie Standard auswählen, wird für den Endpunkt der Standardport
Klicken Sie zum Hinzufügen weiterer Endpunkte auf Netzwerkendpunkt hinzufügen und wiederholen Sie die vorherigen Schritte.
Nachdem Sie alle Endpunkte hinzugefügt haben, klicken Sie auf Erstellen.
gcloud
Erstellen Sie zonale NEGs (mit
GCE_VM_IP_PORT
-Endpunkten) mit den Kombinationen aus Name, Zone und Subnetz. Führen Sie den Befehlgcloud compute network-endpoint-groups create
aus.- Name:
neg-1
- Zone
GCP_NEG_ZONE
: NEG_ZONE1 in der RegionREGION_A
- Subnetz
LB_SUBNET_NAME
: SUBNET_A
- Zone
- Name:
neg-2
- Zone
GCP_NEG_ZONE
: NEG_ZONE2 in der RegionREGION_B
- Subnetz
LB_SUBNET_NAME
: SUBNET_B
- Zone
gcloud compute network-endpoint-groups create GCP_NEG_NAME \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=GCP_NEG_ZONE \ --network=NETWORK \ --subnet=LB_SUBNET_NAME
Sie können entweder mit der Option
--default-port
beim Erstellen der NEG einen Port angeben oder für jeden Endpunkt eine Portnummer angeben, wie im nächsten Schritt gezeigt.- Name:
Fügen Sie Endpunkte zu
neg1
undneg2
hinzu.gcloud compute network-endpoint-groups update neg1 \ --zone=NEG_ZONE1 \ --add-endpoint='instance=vm-a1,port=80'
gcloud compute network-endpoint-groups update neg2 \ --zone=NEG_ZONE2 \ --add-endpoint='instance=vm-b1,port=80'
Hybridkonnektivitäts-NEG einrichten
Verwenden Sie beim Erstellen der NEG eine Zone, die die geografische Entfernung zwischen Google Cloud und Ihrer lokalen oder sonstigen Cloud-Umgebung minimiert.
Wenn Sie Cloud Interconnect verwenden, sollte sich die Zone zum Erstellen der NEG in derselben Region befinden, in der der Cloud Interconnect-Anhang konfiguriert wurde.
Hybrid-NEGs unterstützen nur verteilte Envoy-Systemdiagnosen.
Console
So erstellen Sie eine Endpunktgruppe in einer Hybridkonnektivität:
Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
Klicken Sie auf Netzwerk-Endpunktgruppe erstellen.
Wiederholen Sie die Schritte 4 bis 9 pro Hybrid-NEG mit folgenden Kombinationen aus Name und Zone.
- Name ON_PREM_NEG_NAME:
hybrid-1
- Zone: ON_PREM_NEG_ZONE1
- Subnetz: SUBNET_A
- Name ON_PREM_NEG_NAME:
hybrid-2
- Zone: ON_PREM_NEG_ZONE2
- Subnetz: SUBNET_B
- Name ON_PREM_NEG_NAME:
Legen Sie den Namen wie im vorherigen Schritt angegeben fest.
Wählen Sie den Typ der Netzwerk-Endpunktgruppe aus: Hybridkonnektivitätsnetzwerk-Endpunktgruppe (zonal).
Wählen Sie das Netzwerk aus: NETWORK
Wählen Sie das Subnetz wie im vorherigen Schritt angegeben aus.
Wählen Sie die Zone wie im vorherigen Schritt angegeben aus.
Geben Sie den Standardport ein.
Klicken Sie auf Erstellen.
Fügen Sie der Hybridkonnektivitäts-NEG Endpunkte hinzu:
Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
Klicken Sie auf den Namen der Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde. Die Seite Netzwerk-Endpunktgruppendetails wird angezeigt.
Klicken Sie im Bereich Netzwerkendpunkte in dieser Gruppe auf Netzwerkendpunkt hinzufügen. Die Seite Netzwerk-Endpunkt hinzufügen wird angezeigt.
Geben Sie die IP-Adresse des neuen Netzwerkendpunkts ein.
Wählen Sie den Porttyp aus.
- Wenn Sie Standard auswählen, wird für den Endpunkt der Standardport für alle Endpunkte in der Netzwerk-Endpunktgruppe verwendet.
- Wenn Sie Benutzerdefiniert auswählen, können Sie eine andere Portnummer für den zu verwendenden Endpunkt eingeben.
Klicken Sie zum Hinzufügen weiterer Endpunkte auf Netzwerkendpunkt hinzufügen und wiederholen Sie die vorherigen Schritte.
Nachdem Sie alle Nicht-Google Cloud-Endpunkte hinzugefügt haben, klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine Hybridkonnektivitäts-NEG mit den folgenden Namenskombinationen. Führen Sie den Befehl
gcloud compute network-endpoint-groups create
aus.- Name
ON_PREM_NEG_NAME
:hybrid-1
- Zone
ON_PREM_NEG_ZONE
: ON_PREM_NEG_ZONE1
- Zone
- Name
ON_PREM_NEG_NAME
:hybrid-2
- Zone
GCP_NEG_ZONE
: ON_PREM_NEG_ZONE2
- Zone
gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=ON_PREM_NEG_ZONE \ --network=NETWORK
- Name
Fügen Sie den lokalen Backend-VM-Endpunkt zu ON_PREM_NEG_NAME hinzu:
gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \ --zone=ON_PREM_NEG_ZONE \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
Mit diesem Befehl können Sie die Netzwerkendpunkte hinzufügen, die Sie zuvor lokal oder in Ihrer Cloud-Umgebung konfiguriert haben.
Wiederholen Sie den Vorgang --add-endpoint
so oft wie nötig.
Load-Balancer konfigurieren
Console
gcloud
Definieren Sie die HTTP-Systemdiagnose mit dem Befehl
gcloud compute health-checks create tcp
.gcloud compute health-checks create tcp gil4-basic-check \ --use-serving-port \ --global
Erstellen Sie den Backend-Dienst und aktivieren Sie das Logging mit dem Befehl
gcloud compute backend-services create
.gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --enable-logging \ --logging-sample-rate=1.0 \ --health-checks=gil4-basic-check \ --global-health-checks \ --global
Fügen Sie dem Backend-Dienst mit dem Befehl
gcloud compute backend-services add-backend
Backends hinzu.gcloud compute backend-services add-backend BACKEND_SERVICE \ --global \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=MAX_CONNECTIONS \ --network-endpoint-group=neg1 \ --network-endpoint-group-zone=NEG_ZONE1 \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
Weitere Informationen zum Konfigurieren des Balancing-Modus finden Sie in der Dokumentation zur gcloud CLI für das Flag
--max-connections-per-endpoint
. Geben Sie unter MAX_CONNECTIONS die maximale Anzahl gleichzeitiger Verbindungen ein, die vom Backend verarbeitet werden sollen.Fügen Sie dem Backend-Dienst die hybriden NEGs als Backend hinzu.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --global \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=MAX_CONNECTIONS \ --network-endpoint-group=hybrid1 \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE1 \ --network-endpoint-group=hybrid2 \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE2 \
Weitere Informationen zum Konfigurieren des Balancing-Modus finden Sie in der Dokumentation zur gcloud CLI für den Parameter
--max-connections-per-endpoint
. Geben Sie unterMAX_CONNECTIONS
die maximale Anzahl gleichzeitiger Verbindungen ein, die vom Backend verarbeitet werden sollen.Erstellen Sie den Zielproxy.
Erstellen Sie den Zielproxy mit dem Befehl
gcloud compute target-tcp-proxies create
.gcloud compute target-tcp-proxies create gil4-tcp-proxy \ --url-map=gil4-map \ --global
Erstellen Sie zwei Weiterleitungsregeln, eine mit einer VIP IP_ADDRESS1 in REGION_A und eine andere mit einer VIP IP_ADDRESS2 in
REGION_B
. Verwenden Sie für die IP-Adresse der Weiterleitungsregel den IP-Adressbereich LB_SUBNET_RANGE1 oder LB_SUBNET_RANGE2. Wenn Sie das Nur-Proxy-Subnetz verwenden, schlägt das Erstellen der Weiterleitungsregel fehl.Bei benutzerdefinierten Netzwerken müssen Sie in der Weiterleitungsregel auf das Subnetz verweisen. Achten Sie darauf, dass dies das VM-Subnetz und nicht das Proxy-Subnetz ist.
Verwenden Sie den Befehl
gcloud compute forwarding-rules create
mit den richtigen Flags.gcloud compute forwarding-rules create gil4-forwarding-rule-a \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET_A \ --subnet-region=REGION_A \ --address=IP_ADDRESS1 \ --ports=80 \ --target-tcp-proxy=gil4-tcp-proxy \ --global
gcloud compute forwarding-rules create gil4-forwarding-rule-b \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET_B \ --subnet-region=REGION_B \ --address=IP_ADDRESS2 \ --ports=80 \ --target-tcp-proxy=gil4-tcp-proxy \ --global
Load-Balancer testen
VM-Instanz zum Testen der Konnektivität erstellen
Erstellen Sie Client-VMs in
REGION_A
undREGION_B
und Regionen:gcloud compute instances create l4-ilb-client-a \ --image-family=debian-10 \ --image-project=debian-cloud \ --network=NETWORK \ --subnet=SUBNET_A \ --zone=NEG_ZONE1 \ --tags=allow-ssh
gcloud compute instances create l4-ilb-client-b \ --image-family=debian-10 \ --image-project=debian-cloud \ --network=NETWORK \ --subnet=SUBNET_B \ --zone=NEG_ZONE2 \ --tags=allow-ssh
Verwenden Sie SSH, um eine Verbindung zu jeder Clientinstanz herzustellen.
gcloud compute ssh l4-ilb-client-a \ --zone=NEG_ZONE1
gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
Prüfen Sie, ob die IP-Adresse ihren Hostnamen bereitstellt.
Prüfen Sie, ob die Client-VM beide IP-Adressen erreichen kann. Der Befehl sollte erfolgreich sein und den Namen der Backend-VM zurückgeben, von der die Anfrage verarbeitet wurde:
curl IP_ADDRESS1
curl IP_ADDRESS2
100 Anfragen ausführen
Führen Sie 100 curl-Anfragen aus und prüfen Sie anhand der Antworten, ob ein Load-Balancing stattfindet.
Prüfen Sie, ob die Client-VM beide IP-Adressen erreichen kann. Der Befehl sollte erfolgreich sein und den Namen der Backend-VM zurückgeben, von der die Anfrage verarbeitet wurde:
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS1)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS1: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS2)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS2: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
Failover testen
Prüfen Sie das Failover auf Back-Ends in der Region
REGION_A
, wenn Back-Ends in derREGION_B
fehlerhaft oder nicht erreichbar sind. Wir simulieren dies, indem wir alle Backends ausREGION_B
entfernen:gcloud compute backend-services remove-backend BACKEND_SERVICE \ --balancing-mode=CONNECTION \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
Stellen Sie mit SSH eine Verbindung zur Client-VM in
REGION_B
her.gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
Senden Sie Anfragen an die IP-Adresse mit Load-Balancing in der Region
REGION_B
. Die Befehlsausgabe sollte Antworten von Backend-VMs inREGION_A
anzeigen:{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS2:443)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS2: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
Nächste Schritte
- Interner Proxy-Network Load Balancer – Übersicht
- Nur-Proxy-Subnetze für Envoy-basierte Load-Balancer
- Load-Balancing-Einrichtung bereinigen