Auf dieser Seite wird gezeigt, wie Sie einen regionalen internen Application Load Balancer bereitstellen, um Load-Balancing auf Traffic an Netzwerk-Endpunkte anzuwenden, die sich lokal oder in anderen öffentlichen Clouds befinden und über Hybridkonnektivität erreichbar sind.
In der Übersicht über NEGs mit Hybrid-Konnektivität werden die Netzwerkanforderungen zum Einrichten von Hybrid-Load-Balancing erläutert.
Einrichtung: Übersicht
Auf dieser Seite wird die folgende Beispielbereitstellung eingerichtet:
Sie müssen Hybridkonnektivität konfigurieren, bevor Sie eine Bereitstellung mit Hybrid-Load-Balancing einrichten. Auf dieser Seite wird nicht die Einrichtung von Hybridkonnektivität behandelt.
Beachten Sie je nach ausgewähltem Produkt für Hybridkonnektivität (entweder Cloud VPN oder Cloud Interconnect (Dedicated oder Partner)) die entsprechende Produktdokumentation.
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:
Aufgabe | 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.
Die Prüfbereiche der Systemdiagnose von Google müssen bei Hybrid-NEGs nicht auf die Zulassungsliste gesetzt werden. 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 für die zonalen NEGs auf die Zulassungsliste setzen.
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 verwendete Region (in diesem Verfahren REGION genannt) mit der Region übereinstimmt, die zum Erstellen des Cloud VPN-Tunnels oder des Cloud Interconnect-VLAN-Anhangs verwendet wurde.
Nur-Proxy-Subnetz konfigurieren
Dieses Nur-Proxy-Subnetz wird für alle regionalen Envoy-basierten Load-Balancer in der Region REGION verwendet.
Console
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Zur Seite „VPC-Netzwerke“ - Wechseln Sie zu dem Netzwerk, in dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.
- Klicken Sie auf Subnetz hinzufügen.
- Geben Sie einen Namen ein: PROXY_ONLY_SUBNET_NAME.
- Wählen Sie eine Region aus: REGION.
- Setzen Sie Zweck auf Regional verwalteter Proxy.
- Geben Sie einen IP-Adressbereich ein: PROXY_ONLY_SUBNET_RANGE
- 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_NAME \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE
Load-Balancer-Subnetz konfigurieren
Dieses Subnetz wird zum Erstellen der zonalen NEG-Back-Ends, des Front-Ends und der internen IP-Adresse des Load-Balancers verwendet.
Cloud Console
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Zur Seite „VPC-Netzwerke“ - 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:
- Name: LB_SUBNET_NAME
- Region: REGION
- IP-Adressbereich: LB_SUBNET_RANGE
- Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
gcloud
Erstellen Sie ein Subnetz in dem Netzwerk, in dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.
gcloud compute networks subnets create LB_SUBNET_NAME \ --network=NETWORK \ --range=LB_SUBNET_RANGE \ --region=REGION
IP-Adresse des Load-Balancers reservieren
Standardmäßig wird für jede Weiterleitungsregel eine IP-Adresse verwendet. Sie können eine gemeinsam genutzte IP-Adresse reservieren, sodass Sie dieselbe IP-Adresse mit mehreren Weiterleitungsregeln verwenden können. Wenn Sie jedoch den Load Balancer mit Private Service Connect veröffentlichen möchten, verwenden Sie keine freigegebene IP-Adresse für die Weiterleitungsregel.
Console
Sie können eine eigenständige interne IP-Adresse über die Google Cloud Console reservieren.
- Rufen Sie die Seite VPC-Netzwerke auf.
- Klicken Sie auf das Netzwerk, das zum Konfigurieren der Hybridkonnektivität zwischen den Umgebungen verwendet wurde.
- Klicken Sie auf Statische interne IP-Adressen und dann auf Statische Adresse reservieren.
- Geben Sie einen Namen ein: LB_IP_ADDRESS.
- Wählen Sie LB_SUBNET_NAME als Subnetz aus.
- Wenn Sie angeben möchten, welche IP-Adresse reserviert werden soll, wählen Sie unter Statische IP-Adresse die Option Selbst auswählen aus und geben Sie dann eine benutzerdefinierte IP-Adresse ein. Andernfalls weist das System automatisch eine IP-Adresse im Subnetz zu.
- Wenn Sie diese IP-Adresse mit mehreren Weiterleitungsregeln verwenden möchten, wählen Sie unter Zweck die Option Freigegeben aus.
- Klicken Sie auf Reservieren, um den Vorgang abzuschließen.
gcloud
Führen Sie in der gcloud CLI den Befehl
compute addresses create
aus:gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --subnet=LB_SUBNET_NAME \
Verwenden Sie den Befehl
compute addresses describe
, um die zugewiesene IP-Adresse aufzurufen:gcloud compute addresses describe LB_IP_ADDRESS \ --region=REGION
Wenn Sie dieselbe IP-Adresse mit mehreren Weiterleitungsregeln verwenden möchten, geben Sie
--purpose=SHARED_LOADBALANCER_VIP
an.
Firewallregeln für zonale NEGs 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 Backend-VMs zu identifizieren, auf die sie angewendet werden soll. Die Prüfbereiche der Systemdiagnose von Google müssen bei Hybrid-NEGs nicht auf die Zulassungsliste gesetzt werden. 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 für die zonalen NEGs auf die Zulassungsliste setzen.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 Back-Ends erreichen.
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 Traffic von Systemdiagnoseprüfungen zulässt:
- Geben Sie als Namen
fw-allow-health-check
ein. - Wählen Sie unter Netzwerk die Option NETWORK aus.
- Wählen Sie unter Ziele 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_RANGE
- 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_RANGE \ --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 Region REGION eingerichtet. Erstellen Sie zuerst die VMs in der Zone GCP_NEG_ZONE. Erstellen Sie dann eine zonale NEG in derselben GCP_NEG_ZONE und fügen Sie der NEG die Netzwerkendpunkte der VMs hinzu.
VMs erstellen
Console
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zu „VM-Instanzen“ - Klicken Sie auf Instanz erstellen.
- Legen Sie als Name
vm-a1
fest. - Wählen Sie als Region REGION und dann eine beliebige Zone aus. In diesem Verfahren wird sie als GCP_NEG_ZONE bezeichnet.
- Achten Sie darauf, dass im Abschnitt Bootlaufwerk Debian GNU/Linux 12 (bookworm) als Bootlaufwerk-Optionen ausgewählt ist. Klicken Sie auf Auswählen, um das Image bei Bedarf zu ändern.
Klicken Sie auf Erweiterte Optionen und nehmen Sie die folgenden Änderungen vor:
- Klicken Sie auf Netzwerke und fügen Sie die folgenden Netzwerk-Tags hinzu:
allow-ssh
,allow-health-check
undallow-proxy-only-subnet
. - Klicken Sie unter Netzwerkschnittstellen auf Bearbeiten
- Netzwerk: NETWORK
- Subnetz: LB_SUBNET_NAME
- Primäre interne IP: flüchtig (automatisch)
- Externe IP: sitzungsspezifisch
, nehmen Sie die folgenden Änderungen vor und klicken Sie dann auf Fertig: Klicken Sie auf Verwaltung. Kopieren Sie den folgenden Skriptinhalt und fügen Sie ihn im Feld Startskript ein. Der Skriptinhalt ist für alle vier VMs gleich:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
- Klicken Sie auf Netzwerke und fügen Sie die folgenden Netzwerk-Tags hinzu:
Klicken Sie auf Erstellen.
Wiederholen Sie die folgenden Schritte, um eine zweite VM zu erstellen. Verwenden Sie dabei die folgende Kombination aus Name und Zone:
- Name:
vm-a2
, Zone: GCP_NEG_ZONE
- Name:
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 von
vm-a1
und einer GCP_NEG_ZONE-Zone Ihrer Wahl VM_NAME von
vm-a2
und derselben GCP_NEG_ZONE-Zonegcloud 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'
Zonale NEG erstellen
Console
So erstellen Sie eine zonale Netzwerk-Endpunktgruppe:
- Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
Zur Seite "Netzwerk-Endpunktgruppen" - Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.
- Geben Sie einen Namen für die zonale NEG ein. In diesem Verfahren als GCP_NEG_NAME bezeichnet.
- Wählen Sie den Typ der Netzwerk-Endpunktgruppe aus: Netzwerk-Endpunktgruppe (zonal).
- Wählen Sie das Netzwerk aus: NETWORK
- Wählen Sie das Subnetz aus: LB_SUBNET_NAME
- Wählen Sie die Zone aus: GCP_NEG_ZONE
- Geben Sie den Standardport ein:
80
. - Klicken Sie auf Erstellen.
Fügen Sie der zonalen NEG Endpunkte hinzu:
- Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
Zur Netzwerk-Endpunktgruppe - Klicken Sie auf den Namen der Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde (GCP_NEG_NAME). 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 im Feld IPv4-Adresse die IPv4-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 mit dem Befehl
gcloud compute network-endpoint-groups create
eine zonale NEG (mitGCE_VM_IP_PORT
-Endpunkten):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 beim Erstellen der NEG einen
--default-port
angeben oder eine Portnummer für jeden Endpunkt festlegen, wie im nächsten Schritt gezeigt.Fügen Sie Endpunkte zu GCP_NEG_NAME hinzu.
gcloud compute network-endpoint-groups update GCP_NEG_NAME \ --zone=GCP_NEG_ZONE \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,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 beispielsweise einen Dienst in einer lokalen Umgebung in Frankfurt hosten, können Sie beim Erstellen der NEG die Google Cloud-Zone europe-west3-a
angeben.
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.
Informationen zu den verfügbaren Regionen und Zonen finden Sie in der Compute Engine-Dokumentation: Verfügbare Regionen und Zonen.
Console
So erstellen Sie eine Endpunktgruppe in einer Hybridkonnektivität:
- Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
Zu den Netzwerk-Endpunktgruppen - Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.
- Geben Sie einen Namen für die Hybrid-NEG ein. In diesem Verfahren als ON_PREM_NEG_NAME bezeichnet.
- 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 aus: LB_SUBNET_NAME
- Wählen Sie die Zone aus: ON_PREM_NEG_ZONE
- Geben Sie den Standardport ein.
- Klicken Sie auf Erstellen.
Fügen Sie der Hybridkonnektivitäts-NEG Endpunkte hinzu:
- Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
Zur Seite "Netzwerk-Endpunktgruppen" - Klicken Sie auf den Namen der Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde (ON_PREM_NEG_NAME). 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 mit dem Befehl
gcloud compute network-endpoint-groups create
eine Hybridkonnektivitäts-NEG.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
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.
Sie können diese Schritte wiederholen, um bei Bedarf mehrere Hybrid-NEGs zu erstellen.
Load-Balancer konfigurieren
Console
gcloud
- Erstellen Sie eine Systemdiagnose für die Back-Ends.
Systemdiagnoseprüfungen für Hybrid-NEG-Back-Ends stammen von Envoy-Proxys im Nur-Proxy-Subnetz, während Prüfungen für zonale NEG-Back-Ends von [zentralen Prüfungs-IP-Bereichen von Google](/load-balancing/docs/health-check-concepts#ip-ranges) stammen.gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- Erstellen Sie einen Backend-Dienst für Google Cloud-basierte Backends. Fügen Sie diesem Backend-Dienst die zonale NEG und die NEG mit Hybrid-Konnektivität als Backends hinzu.
gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=REGION \ --region=REGION
- Fügen Sie dem Backend-Dienst die zonale NEG als Backend hinzu.
Weitere Informationen zum Konfigurieren des Balancing-Modus finden Sie in der Dokumentation zur gcloud CLI für den Parametergcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=GCP_NEG_NAME \ --network-endpoint-group-zone=GCP_NEG_ZONE
--max-rate-per-endpoint
. - Fügen Sie dem Backend-Dienst das hybride NEG als Backend hinzu.
Weitere Informationen zum Konfigurieren des Balancing-Modus finden Sie in der Dokumentation zur gcloud CLI für den Parametergcloud compute backend-services add-backend BACKEND_SERVICE \ --region=REGION \ --balancing-mode=RATE \ --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \ --network-endpoint-group=ON_PREM_NEG_NAME \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE
--max-rate-per-endpoint
. - Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
gcloud compute url-maps create URL_MAP_NAME \ --default-service BACKEND_SERVICE \ --region=REGION
- Optional: Führen Sie diesen Schritt aus, wenn Sie HTTPS zwischen dem Client und dem Load Balancer verwenden. Dies ist für HTTP-Load-Balancer nicht erforderlich.
Sie können entweder Compute Engine- oder Zertifikatmanager-Zertifikate erstellen. Verwenden Sie eine der folgenden Methoden, um Zertifikate mit Zertifikatmanager zu erstellen:
- Selbst verwaltete regionale Zertifikate Informationen zum Erstellen und Verwenden regionaler selbstverwalteter Zertifikate finden Sie unter Regionales selbstverwaltetes Zertifikat bereitstellen. Zertifikatszuordnungen werden nicht unterstützt.
Regionale von Google verwaltete Zertifikate Zertifikatszuordnungen werden nicht unterstützt.
Die folgenden Arten von regionalen von Google verwalteten Zertifikaten werden von Certificate Manager unterstützt:
- Regionale von Google verwaltete Zertifikate mit projektspezifischer DNS-Autorisierung. Weitere Informationen finden Sie unter Regionales von Google verwaltetes Zertifikat bereitstellen.
- Regionale von Google verwaltete (private) Zertifikate mit Certificate Authority Service. Weitere Informationen finden Sie unter Regionales von Google verwaltetes Zertifikat mit CA Service bereitstellen.
- Erstellen Sie einen HTTP(S)-Zielproxy, um Anfragen an Ihre URL-Zuordnung weiterzuleiten.
Erstellen Sie einen HTTP-Zielproxy für einen HTTP-Load-Balancer: Erstellen Sie einen HTTPS-Zielproxy für einen HTTPS-Load-Balancer. Der Proxy ist der Teil des Load-Balancers, der das SSL-Zertifikat für den HTTPS-Load-Balancer besitzt. Daher laden Sie in diesem Schritt auch Ihr Zertifikat.gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
- Erstellen Sie eine Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten. Verwenden Sie nicht das Nur-Proxy-Subnetz, um die Weiterleitungsregel zu erstellen.
Für einen HTTP-Load-Balancer: Für einen HTTPS-Load-Balancer:gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=80 \ --region=REGION \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --target-http-proxy-region=REGION
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=LB_SUBNET_NAME \ --address=LB_IP_ADDRESS \ --ports=443 \ --region=REGION \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --target-https-proxy-region=REGION
Nachdem Sie Zertifikate erstellt haben, hängen Sie diese direkt an den Zielproxy an.
So erstellen Sie eine selbstverwaltete SSL-Zertifikatsressource von Compute Engine:gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate CRT_FILE_PATH \ --private-key KEY_FILE_PATH
Domain mit dem Load-Balancer verbinden
Notieren Sie sich nach der Erstellung des Load-Balancers die IP-Adresse, die diesem zugewiesen ist, z. B. 30.90.80.100
. Wenn Sie Ihre Domain auf den Load-Balancer verweisen möchten, erstellen Sie mit Ihrem Domain-Registrierungsdienst einen A
-Eintrag. Wenn Sie Ihrem SSL-Zertifikat mehrere Domains hinzugefügt haben, müssen Sie für jede Domain einen A
-Eintrag hinzufügen, der auf die IP-Adresse des Load-Balancers verweist. So erstellen Sie beispielsweise A
-Einträge für www.example.com
und example.com
:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Einträge hinzufügen, ändern und löschen.
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
In diesem Beispiel wird eine Client-VM (vm-client
) erstellt, die sich in derselben Region wie die Backend-NEGs befindet. Der Client validiert die Konfiguration des Load-Balancers und demonstriert das erwartete Verhalten, wie im Abschnitt "Test" beschrieben.
Console
- Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
Zu „VM-Instanzen“ - Klicken Sie auf Instanz erstellen.
- Legen Sie als Name
vm-client
fest. - Setzen Sie Zone auf CLIENT_VM_ZONE.
- Klicken Sie auf Erweiterte Optionen und nehmen Sie die folgenden Änderungen vor:
- Klicken Sie auf Vernetzung und fügen Sie
allow-ssh
an die Netzwerk-Tags hinzu. - Klicken Sie unter Netzwerkschnittstellen auf die Schaltfläche "Bearbeiten", nehmen Sie die folgenden Änderungen vor und klicken Sie auf Fertig:
- Netzwerk: NETWORK
- Subnetz: LB_SUBNET_NAME
- Primäre interne IP: flüchtig (automatisch)
- Externe IP: sitzungsspezifisch
- Klicken Sie auf Vernetzung und fügen Sie
- Klicken Sie auf Erstellen.
gcloud
Die Client-VM kann sich in einer beliebigen Zone in derselben Region wie der Load-Balancer befinden. Außerdem kann sie jedes Subnetz in dieser Region verwenden. In diesem Beispiel befindet sich der Client in der Zone CLIENT_VM_ZONE und verwendet dasselbe Subnetz wie die Backend-VMs.
gcloud compute instances create vm-client \ --zone=CLIENT_VM_ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=LB_SUBNET_NAME
Traffic an den Load-Balancer senden
Nachdem Sie den Load-Balancer konfiguriert haben, können Sie Traffic an die IP-Adresse des Load-Balancers senden.
Verwenden Sie SSH, um eine Verbindung zur Clientinstanz herzustellen.
gcloud compute ssh client-vm \ --zone=CLIENT_VM_ZONE
Rufen Sie die IP-Adresse des Load-Balancers ab. Verwenden Sie den Befehl
compute addresses describe
, um die zugewiesene IP-Adresse aufzurufen:gcloud compute addresses describe l7-ilb-ip-address \ --region=us-west1
Prüfen Sie, ob der Load-Balancer die Backend-Hostnamen wie erwartet bereitstellt. Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers.
Führen Sie für HTTP-Tests folgenden Befehl aus:
curl IP_ADDRESS
Führen Sie für HTTPS-Tests folgenden Befehl aus:
curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS:443
Das Flag -k
bewirkt, dass curl die Zertifikatsvalidierung überspringt.
Das Testen der Nicht-Google Cloud-Endpunkte hängt vom Dienst ab, den Sie über den Hybrid-NEG-Endpunkt freigegeben haben.
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.
HTTP-Keepalive-Zeitlimit des Clients aktualisieren
Der in den vorherigen Schritten erstellte Load Balancer wurde mit einem Standardwert für das Client-HTTP-Keepalive-Zeitlimit konfiguriert.Folgen Sie der nachstehenden Anleitung, um das HTTP-Keepalive-Zeitlimit des Clients zu aktualisieren.
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen des Load-Balancers, den Sie ändern möchten.
- Klicken Sie auf Bearbeiten.
- Klicken Sie auf Frontend-Konfiguration.
- Maximieren Sie Erweiterte Funktionen. Geben Sie für HTTP-Keepalive-Zeitlimit ein Zeitlimit ein.
- Klicken Sie auf Aktualisieren.
- Klicken Sie zum Prüfen Ihrer Änderungen auf Prüfen und abschließen und dann auf Aktualisieren.
gcloud
Aktualisieren Sie bei einem HTTP-Load Balancer den Ziel-HTTP-Proxy mit dem Befehl gcloud compute target-http-proxies update
.
gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --region=REGION
Aktualisieren Sie bei einem HTTPS-Load Balancer den Ziel-HTTPS-Proxy mit dem Befehl gcloud compute target-https-proxies update
.
gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \ --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \ --region REGION
Ersetzen Sie Folgendes:
TARGET_HTTP_PROXY_NAME
ist der Name des HTTP-Ziel-Proxys.TARGET_HTTPS_PROXY_NAME
ist der Name des HTTPS-Ziel-Proxys.HTTP_KEEP_ALIVE_TIMEOUT_SEC
ist das HTTP-Keepalive-Zeitlimit von 5 bis 600 Sekunden.