Dieses Dokument zeigt zwei Beispielkonfigurationen zum Einrichten eines regionalen externen Application Load Balancers in einer Umgebung mit freigegebener VPC:
- Im ersten Beispiel werden alle Load-Balancer-Komponenten und Back-Ends im Dienstprojekt erstellt.
- Im zweiten Beispiel werden die Frontend-Komponenten und die URL-Zuordnung des Load-Balancers in einem Dienstprojekt erstellt, während der Backend-Dienst und die Backends des Load-Balancers in einem anderen Dienstprojekt erstellt werden. Diese Art der Bereitstellung, bei der die URL-Zuordnung auf einen Backend-Dienst in einem anderen Projekt verweist, wird als projektübergreifender Dienstverweis bezeichnet.
Beide Beispiele erfordern dieselbe Erstkonfiguration, um Berechtigungen zu erteilen und eine freigegebene VPC einzurichten, bevor Sie Load-Balancer erstellen können.
Dies sind nicht die einzigen Konfigurationen für freigegebene VPCs, die vom regionalen externen Application Load Balancer unterstützt werden. Weitere Architekturen mit freigegebener VPC finden Sie unter Architekturen freigegebener VPCs.
Wenn Sie kein freigegebenes VPC-Netzwerk verwenden möchten, lesen Sie die Informationen unter Regionalen externen Application Load Balancer mit VM-Instanzgruppen-Back-Ends einrichten.
Hinweise
- Weitere Informationen finden Sie unter Freigegebene VPC – Übersicht.
- Weitere Informationen finden Sie unter Übersicht über den externen Application Load Balancer, einschließlich des Abschnitts Architekturen freigegebener VPCs.
Erforderliche Berechtigungen
Das Einrichten eines Load-Balancers in einem freigegebenen VPC-Netzwerk erfordert eine Ersteinrichtung und -bereitstellung durch einen Administrator. Nach der Ersteinrichtung kann ein Dienstprojektinhaber einen der folgenden Schritte ausführen:
- Stellen Sie alle Komponenten des Load-Balancers und seine Back-Ends in einem Dienstprojekt bereit.
- Stellen Sie die Backend-Komponenten des Load-Balancers (Backend-Dienst und Backends) in Dienstprojekten bereit, auf die in einer URL-Zuordnung in einem anderen Dienst oder Hostprojekt verwiesen werden kann.
In diesem Abschnitt werden die Berechtigungen zusammengefasst, die zum Einrichten eines Load-Balancers in einem freigegebenen VPC-Netzwerk nach dieser Anleitung erforderlich sind.
Freigegebene VPC einrichten
Die folgenden Rollen sind für die folgenden Aufgaben erforderlich:
- Einmalige administrative Aufgaben wie das Einrichten der freigegebenen VPC und das Aktivieren eines Hostprojekts ausführen
- Führen Sie administrative Aufgaben aus, die jedes Mal wiederholt werden müssen, wenn Sie ein neues Dienstprojekt aufnehmen möchten. Dies umfasst das Anhängen des Dienstprojekts, das Bereitstellen und Konfigurieren von Netzwerkressourcen und das Gewähren des Zugriffs für den Dienstprojektadministrator.
Diese Aufgaben müssen im Hostprojekt der freigegebenen VPC ausgeführt werden. Wir empfehlen, dass der Administrator der freigegebenen VPC auch der Inhaber des Hostprojekts der freigegebenen VPC ist. Dadurch werden automatisch die Rollen Netzwerkadministrator und Sicherheitsadministrator zugewiesen.
Aufgabe | Erforderliche Rolle |
---|---|
Richten Sie eine freigegebene VPC ein, aktivieren Sie das Hostprojekt und gewähren Sie Dienstprojektadministratoren Zugriff | Shared VPC-Administrator |
Erstellen Sie Subnetze im freigegebenen VPC-Hostprojekt und gewähren Sie Dienstprojektadministratoren Zugriff | Netzwerkadministrator |
Firewallregeln hinzufügen und löschen | Sicherheitsadministrator |
Nachdem die Subnetze bereitgestellt wurden, muss der Inhaber des Hostprojekts die Rolle des Netzwerknutzers im Hostprojekt allen Nutzern (in der Regel Dienstprojektadministratoren, -entwickler oder Dienstkonten) zuweisen, die Zugriff auf diese Ressourcen benötigen.
Aufgabe | Erforderliche Rolle |
---|---|
VPC-Netzwerke und Subnetze verwenden, die zum Hostprojekt gehören | Netzwerknutzer |
Diese Rolle kann auf Projektebene oder für einzelne Subnetze gewährt werden. Wir empfehlen, die Rolle für einzelne Subnetze zu gewähren. Durch das Gewähren der Rolle für das Projekt wird Zugriff auf alle aktuellen und zukünftigen Subnetze im VPC-Netzwerk des Hostprojekts gewährt.
Load-Balancer und Back-Ends bereitstellen
Dienstprojektadministratoren benötigen die folgenden Rollen im Dienstprojekt, um Load-Balancing-Ressourcen und Back-Ends zu erstellen. Diese Berechtigungen werden dem Inhaber oder Bearbeiter des Dienstprojekts automatisch erteilt.
Aufgabe | Erforderliche Rolle |
---|---|
Load-Balancer-Komponenten erstellen | Netzwerkadministrator |
Instanzen erstellen | Instanzadministrator |
SSL-Zertifikate erstellen und ändern | Sicherheitsadministrator |
Projektübergreifende Backend-Dienste referenzieren
Wenn Ihr Load-Balancer auf Backend-Dienste aus anderen Dienstprojekten verweisen muss, die auch als projektübergreifende Dienstreferenz bezeichnet werden, benötigen Load-Balancer-Administratoren die folgende Rolle im Dienstprojekt, in dem der Backend-Dienst erstellt wird.
Aufgabe | Erforderliche Rolle |
---|---|
Berechtigungen zur Verwendung von Diensten in anderen Projekten | Load-Balancer-Dienstnutzer |
Diese Rolle kann entweder auf Projektebene oder für einzelne Backend-Dienste gewährt werden. Eine Anleitung zum Zuweisen dieser Rolle finden Sie auf dieser Seite im Beispiel für den projektübergreifenden Dienstverweis.
Weitere Informationen zu IAM finden Sie in den folgenden Anleitungen:
Vorbereitung
Führen Sie in diesem Abschnitt die folgenden Schritte aus:
Die Schritte in diesem Abschnitt müssen nicht jedes Mal ausgeführt werden, wenn Sie einen neuen Load-Balancer erstellen möchten. Sie müssen jedoch sicherstellen, dass Sie Zugriff auf die hier beschriebenen Ressourcen haben, bevor Sie mit dem Erstellen des Load-Balancers fortfahren.
Netzwerk und Subnetze im Hostprojekt konfigurieren
Sie benötigen ein freigegebenes VPC-Netzwerk mit zwei Subnetzen: eines für das Frontend und die Back-Ends des Load-Balancers und das andere für die Proxys des Load-Balancers.In diesem Beispiel werden die folgenden Netzwerke, Regionen und Subnetze verwendet:
Netzwerk: Das Netzwerk hat den Namen
lb-network
.Subnetz für das Frontend und die Back-Ends des Load-Balancers: Ein Subnetz mit dem Namen
lb-frontend-and-backend-subnet
in der Regionus-west1
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 Regionus-west1
verwendet10.129.0.0/23
für seinen primären IP-Bereich.
Subnetz für das Frontend und die Back-Ends des Load-Balancers konfigurieren
Dieser Schritt muss nicht jedes Mal ausgeführt werden, wenn Sie einen neuen Load-Balancer erstellen möchten. Sie müssen nur sicherstellen, dass das Dienstprojekt Zugriff auf ein Subnetz im freigegebenen VPC-Netzwerk hat (zusätzlich zum Nur-Proxy-Subnetz).Alle Schritte in diesem Abschnitt müssen im Hostprojekt ausgeführt werden.
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. Im Bereich Subnetze:
- Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
- Name:
lb-frontend-and-backend-subnet
Region:
us-west1
IP-Adressbereich:
10.1.2.0/24
- Name:
Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie mit dem Befehl
gcloud compute networks create
ein VPC-Netzwerk:gcloud compute networks create lb-network --subnet-mode=custom
Erstellen Sie ein Subnetz im Netzwerk
lb-network
in der Regionus-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Terraform
Erstellen Sie ein VPC-Netzwerk:
Erstellen Sie ein Subnetz in der Region
us-west1
:
Nur-Proxy-Subnetz konfigurieren
Das Nur-Proxy-Subnetz wird von allen regionalen Envoy-basierten Load-Balancern in der Region us-west1
im VPC-Netzwerk lb-network
verwendet. Pro Region und Netzwerk kann nur ein Nur-Proxy-Subnetz aktiv sein.
Führen Sie diesen Schritt nicht aus, wenn bereits ein Nur-Proxy-Subnetz in der Region us-west1
in diesem Netzwerk reserviert ist.
Alle Schritte in diesem Abschnitt müssen im Hostprojekt ausgeführt werden.
Console
- Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
- 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
us-west1
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=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Terraform
Erstellen Sie das Nur-Proxy-Subnetz:
Gewähren Sie Dienstprojektadministratoren Zugriff auf das Backend-Subnetz
Dienstprojektadministratoren benötigen Zugriff auf das Subnetzlb-frontend-and-backend-subnet
, damit sie die Back-Ends des Load-Balancers bereitstellen können.
Ein Administrator der freigegebenen VPC muss Dienstprojektadministratoren Zugriff auf das Backend-Subnetz gewähren (oder auch Entwicklern, die Ressourcen und Backends bereitstellen, die das Subnetz verwenden). Eine Anleitung finden Sie unter Dienstprojektadministratoren für bestimmte Subnetze.
Firewallregeln im Hostprojekt konfigurieren
In diesem Beispiel werden die folgenden Firewallregeln verwendet:fw-allow-health-check
: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und TCP-Traffic von den Google Cloud-Systemen für Systemdiagnosen zulässt (in130.211.0.0/22
und35.191.0.0/16
). In diesem Beispiel wird das Ziel-Tagload-balanced-backend
verwendet, um die Instanzen zu identifizieren, auf die es angewendet werden soll.
fw-allow-proxies
: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und TCP-Traffic über Ports80
,443
und8080
aus den verwalteten Proxys des Load-Balancers zulässt. In diesem Beispiel wird das Ziel-Tagload-balanced-backend
verwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden soll.
Alle Schritte in diesem Abschnitt müssen im Hostprojekt ausgeführt werden.
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 Google Cloud-Systemdiagnosen zulässt:
- Name:
fw-allow-health-check
- Netzwerk:
lb-network
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Zieltags
- Zieltags:
load-balanced-backend
- 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.
- Prüfen Sie TCP und geben Sie
80
als Portnummer ein.
Sie sollten diese Regeln nur auf Protokolle und Ports beschränken, die mit den von Ihren Systemdiagnosen verwendeten übereinstimmen. Wenn Sie
tcp:80
für das Protokoll und den Port verwenden, kann Google Cloud mit HTTP auf Port80
Ihre VMs kontaktieren. Es kann jedoch nicht HTTPS auf Port443
verwenden, um den Kontakt herzustellen. - Klicken Sie auf Erstellen.
- Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die Google Cloud-Systemdiagnosen zulässt:
- Name:
fw-allow-proxies
- Netzwerk:
lb-network
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Zieltags
- Zieltags:
load-balanced-backend
- Quellfilter: IPv4-Bereiche.
- IPv4-Quellbereiche:
10.129.0.0/23
- Protokolle und Ports:
- Wählen Sie Angegebene Protokolle und Ports aus.
- Prüfen Sie TCP und geben Sie
80, 443, 8080
als Portnummern ein.
- Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Firewallregel
fw-allow-health-check
, um Google Cloud-Systemdiagnosen zuzulassen. In diesem Beispiel wird der gesamte TCP-Traffic von Systemdiagnoseprüfern 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=load-balanced-backend \ --rules=tcp
Erstellen Sie die Firewallregel
fw-allow-proxies
, um Traffic von dem Nur-Proxy-Subnetz zuzulassen, das Ihre Back-Ends erreicht.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Terraform
Erstellen Sie eine Firewallregel, um Google Cloud-Systemdiagnosen zuzulassen.
Erstellen Sie eine Firewallregel, um Traffic vom Nur-Proxy-Subnetz zuzulassen und Ihre Back-Ends zu erreichen.
Freigegebene VPC im Hostprojekt einrichten
Dieser Schritt umfasst das Aktivieren eines freigegebenen VPC-Hostprojekts, das Freigeben von Subnetzen des Hostprojekts und das Anhängen von Dienstprojekten an das Hostprojekt, damit die Dienstprojekte das freigegebene VPC-Netzwerk verwenden können. Informationen zum Einrichten einer freigegebenen VPC im Hostprojekt finden Sie auf den folgenden Seiten:
In den weiteren Anleitungen wird davon ausgegangen, dass Sie die freigegebene VPC bereits eingerichtet haben. Dazu müssen Sie IAM-Richtlinien für Ihre Organisation einrichten und die Host- und Dienstprojekte festlegen.
Fahren Sie erst fort, wenn Sie die freigegebene VPC eingerichtet und die Host- und Dienstprojekte aktiviert haben.
Load-Balancer im Dienstprojekt konfigurieren
In diesem Beispiel wird ein regionaler externer Application Load Balancer erstellt, bei dem alle Load-Balancing-Komponenten (Weiterleitungsregel, Zielproxy, URL-Zuordnung und Backend-Dienst) und Backends im Dienstprojekt erstellt werden.
Die Netzwerkressourcen des regionalen externen Application Load Balancers wie das Nur-Proxy-Subnetz und das Subnetz für die Backend-Instanzen werden im Hostprojekt erstellt. Die Firewallregeln für die Backend-Instanzen werden auch im Hostprojekt erstellt.
In diesem Abschnitt erfahren Sie, wie Sie den Load-Balancer und die Back-Ends einrichten. Diese Schritte sollten vom Dienstprojektadministrator (oder einem innerhalb des Dienstprojekts tätigen Entwickler) durchgeführt werden und erfordern keine Einbeziehung des Hostprojektadministrators. Die Schritte in diesem Abschnitt ähneln weitgehend den Standardschritten zum Einrichten regionaler externer Application Load Balancer.
Im Beispiel auf dieser Seite wird explizit eine reservierte IP-Adresse für die Weiterleitungsregel des regionalen externen Application Load Balancers festgelegt, statt die Zuweisung einer sitzungsspezifischen IP-Adresse zuzulassen. Als Best Practice empfehlen wir, IP-Adressen für Weiterleitungsregeln zu reservieren.
Backend einer verwalteten Instanzgruppe erstellen
In diesem Abschnitt erfahren Sie, wie Sie eine Instanzvorlage und ein Backend für eine verwaltete Instanzgruppe erstellen. Der Traffic von Clients wird auf VMs in diesen Instanzgruppen verteilt.
Console
Erstellen Sie eine Instanzvorlage. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.
- Klicken Sie auf Instanzvorlage erstellen.
- Geben Sie für Name
l7-xlb-backend-template
ein. - Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B.
apt-get
. Wenn Sie das Bootlaufwerk ändern müssen, klicken Sie auf Ändern.- Wählen Sie als Betriebssystem die Option Debian aus.
- Wählen Sie für Version eines der verfügbaren Debian-Images aus, z. B. Debian GNU/Linux 10 (buster).
- Klicken Sie auf Auswählen.
- Klicken Sie auf Erweiterte Optionen und dann auf Netzwerk.
- Geben Sie die folgenden Netzwerk-Tags ein:
load-balanced-backend
. - Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt: HOST_PROJECT_ID) aus.
- Wählen Sie das Subnetz
lb-frontend-and-backend-subnet
aus dem Netzwerklb-network
aus. Klicken Sie auf Verwaltung. Fügen Sie unter Verwaltung das folgende Skript in das Feld Startskript 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
l7-xlb-backend-example
ein. - Wählen Sie für Standort die Option Einzelne Zone aus.
- Wählen Sie als Region us-west1 aus.
- Wählen Sie als Zone us-west1-a aus.
- Wählen Sie bei Instanzvorlage die Option
l7-xlb-backend-template
aus. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.
Geben Sie für dieses Beispiel für Autoscaling die folgenden Optionen an:
- Wählen Sie für Autoscaling-Modus
Off:do not autoscale
aus. - Geben Sie für Maximale Anzahl von Instanzen den Wert
2
ein.
Optional können Sie im Abschnitt Autoscaling die Instanzgruppe so konfigurieren, dass Instanzen basierend auf der CPU-Auslastung automatisch hinzugefügt oder entfernt werden.
- Wählen Sie für Autoscaling-Modus
Klicken Sie auf Erstellen.
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 l7-xlb-backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-10 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_ID
Erstellen Sie mit dem Befehl
gcloud compute instance-groups managed create
eine verwaltete Instanzgruppe in der Zone.gcloud compute instance-groups managed create l7-xlb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-xlb-backend-template \ --project=SERVICE_PROJECT_ID
IP-Adresse des Load-Balancers im Dienstprojekt reservieren
Reservieren Sie im Dienstprojekt eine regionale statische externe IP-Adresse für den Load-Balancer.
Alle Schritte in diesem Abschnitt müssen im Dienstprojekt ausgeführt werden.
Console
Rufen Sie in der Google Cloud Console die Seite Statische Adresse reservieren auf.
Geben Sie einen Namen für die neue Adresse ein.
Wählen Sie für Netzwerkdienststufe die Option Standard aus.
Setzen Sie die IP-Version auf IPv4. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.
Wählen Sie unter Typ die Option Regional aus.
Wählen Sie bei Region die Option
us-west1
aus.Übernehmen Sie für die Option Verknüpft mit die Einstellung Keine. Nachdem Sie den Load-Balancer erstellt haben, wird diese IP-Adresse an die Weiterleitungsregel des Load-Balancers angehängt.
Klicken Sie zum Reservieren der IP-Adresse auf Reservieren.
gcloud
Verwenden Sie den Befehl compute addresses create
, um eine statische externe IP-Adresse zu reservieren.
gcloud compute addresses create IP_ADDRESS_NAME \ --region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Dabei gilt:
IP_ADDRESS_NAME
: der Name, den Sie für diese IP-Adresse vergeben möchten.SERVICE_PROJECT_ID
: die Projekt-ID des Dienstprojekts, in dem der Load-Balancer erstellt wird.
Load-Balancer konfigurieren
In diesem Abschnitt erfahren Sie, wie Sie die folgenden regionalen externen Application Load Balancer-Ressourcen erstellen:
- HTTP-Systemdiagnose
- Backend-Dienst mit einer verwalteten Instanzgruppe als Backend
- Eine URL-Zuordnung
- SSL-Zertifikat (nur für HTTPS erforderlich)
- Zielproxy
- Weiterleitungsregel
Proxyverfügbarkeit
Je nach Anzahl der Dienstprojekte, die dasselbe freigegebene VPC-Netzwerk verwenden, werden Kontingente oder Limits möglicherweise schneller ausgeschöpft als im Netzwerkbereitstellungsmodell, in dem jedes Google Cloud-Projekt sein eigenes Netzwerk hostet.
Beispielsweise haben Google Cloud-Regionen manchmal nicht genügend Proxy-Kapazität für einen neuen regionalen externen Application Load Balancer. In diesem Fall gibt die Google Cloud Console beim Erstellen des Load-Balancers eine Warnmeldung zur Proxyverfügbarkeit aus. Sie haben folgende Möglichkeiten, dieses Problem zu beheben:
- Warten Sie, bis das Kapazitätsproblem behoben ist.
Wenden Sie sich an Ihr Google Cloud-Vertriebsteam, um diese Limits zu erhöhen.
Console
Kontext zum Dienstprojekt wechseln
- Öffnen Sie in der Google Cloud Console die Seite Dashboard.
- Klicken Sie oben auf der Seite auf die Liste Auswählen aus. Wählen Sie im angezeigten Fenster Auswählen aus das Dienstprojekt aus, in dem Sie den Load-Balancer erstellen möchten.
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 Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
- Wählen Sie unter Globale oder einzelne Region Bereitstellung die Option Am besten für regionale Arbeitslasten aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
- Geben Sie
l7-xlb-shared-vpc
als Name für den Load-Balancer ein. - Wählen Sie als Region us-west1 aus.
Wählen Sie für das Netzwerk die Option lb-network (aus Projekt: HOST_PROJECT_ID) aus.
Wenn die Warnung Nur-Proxy-Subnetz im freigegebenen VPC-Netzwerk erforderlich angezeigt wird, prüfen Sie, ob der Administrator des Hostprojekts das
proxy-only-subnet
in der Regionus-west1
im freigegebenen VPC-Netzwerklb-network
erstellt hat. Die Erstellung des Load-Balancers ist auch dann erfolgreich, wenn Sie keine Berechtigung zum Ansehen des Nur-Proxy-Subnetzes auf dieser Seite haben.Lassen Sie die Seite geöffnet, um fortzufahren.
Frontend konfigurieren
Bei HTTP:
- Klicken Sie auf Frontend-Konfiguration.
- Klicken Sie auf Frontend-IP-Adresse und -Port hinzufügen.
- Legen Sie als Name
l7-xlb-forwarding-rule
fest. - Legen Sie als Protokoll
HTTP
fest. - Legen Sie als Port
80
fest. Für die IP-Adresse, die Sie unter IP-Adresse des Load-Balancers reservieren erstellt haben.
Klicken Sie auf Fertig.
Bei HTTPS:
Wenn Sie HTTPS zwischen dem Client und dem Load-Balancer verwenden, benötigen Sie eine oder mehrere SSL-Zertifikatsressourcen, um den Proxy zu konfigurieren. Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Von Google verwaltete Zertifikate werden derzeit nicht mit regionalen externen Application Load Balancern unterstützt.
- Klicken Sie auf Frontend-Konfiguration.
- Klicken Sie auf Frontend-IP und Port hinzufügen.
- Geben Sie im Feld Name
l7-xlb-forwarding-rule
ein. - Wählen Sie im Feld Protokoll die Option
HTTPS (includes HTTP/2)
aus. - Achten Sie darauf, dass der Port auf
443
festgelegt ist, um HTTPS-Traffic zuzulassen. - Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren erstellt haben.
- Klicken Sie auf die Liste Zertifikat.
- Wenn Sie bereits eine selbstverwaltete SSL-Zertifikatressource haben, die Sie als primäres SSL-Zertifikat verwenden möchten, wählen Sie es aus dem Menü aus.
- Wählen Sie andernfalls Neues Zertifikat erstellen aus.
- Geben Sie
l7-xlb-cert
als Name ein. - Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
- Public-Key-Zertifikat
- Zertifikatskette
- Privater Schlüssel
- Klicken Sie auf Erstellen.
- Geben Sie
- So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
- Klicken Sie auf Zertifikat hinzufügen.
- Wählen Sie ein Zertifikat in der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen und befolgen Sie die obige Anleitung.
- Klicken Sie auf Fertig.
Backend konfigurieren
- Klicken Sie auf Backend-Konfiguration.
- Wählen Sie im Menü Back-End-Service erstellen oder auswählen die Option Back-End-Service erstellen aus.
- Legen Sie als Name für den Back-End-Dienst
l7-xlb-backend-service
fest. - Setzen Sie den Backend-Typ auf Instanzgruppen.
- In the New backend section:
- Legen Sie für Instanzgruppe
l7-xlb-backend-example
fest. - Setzen Sie die Portnummern auf
80
. - Setzen Sie den Balancing-Modus auf Auslastung.
- Klicken Sie auf Fertig.
- Legen Sie für Instanzgruppe
- Wählen Sie im Abschnitt Systemdiagnose die Option Systemdiagnose erstellen mit den folgenden Parametern aus:
- Name:
l7-xlb-basic-check
- Protokoll:
HTTP
- Port:
80
- Name:
- Klicken Sie auf Speichern und Fortfahren.
- Klicken Sie auf Erstellen.
Routingregeln konfigurieren
- Klicken Sie auf Routingregeln. Achten Sie darauf, dass
l7-xlb-backend-service
der einzige Back-End-Dienst für alle nicht übereinstimmenden Hosts und alle nicht übereinstimmenden Pfade ist.
Weitere Informationen zur Trafficverwaltung finden Sie unter Trafficverwaltung einrichten.
Konfiguration prüfen und fertigstellen
- Klicken Sie auf Erstellen.
gcloud
Definieren Sie die HTTP-Systemdiagnose mit dem Befehl
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-xlb-basic-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_ID
Definieren Sie den Backend-Dienst mit dem Befehl
gcloud compute backend-services create
.gcloud compute backend-services create l7-xlb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-xlb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Fügen Sie dem Back-End-Dienst mit dem Befehl
gcloud compute backend-services add-backend
Back-Ends hinzu.gcloud compute backend-services add-backend l7-xlb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-xlb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Erstellen Sie die URL-Zuordnung mit dem Befehl
gcloud compute url-maps create
.gcloud compute url-maps create l7-xlb-map \ --default-service=l7-xlb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Erstellen Sie den Zielproxy.
Bei HTTP:
Erstellen Sie für einen HTTP-Load-Balancer den Zielproxy mit dem Befehl
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Bei HTTPS:
Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Von Google verwaltete Zertifikate werden derzeit nicht mit regionalen externen Application Load Balancern unterstützt.
Weisen Sie Ihre Dateipfade den entsprechenden Variablennamen zu.
export LB_CERT=path to PEM-formatted file
export LB_PRIVATE_KEY=path to PEM-formatted file
Erstellen Sie ein regionales SSL-Zertifikat mit dem Befehl
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create l7-xlb-cert \ --certificate=$LB_CERT \ --private-key=$LB_PRIVATE_KEY \ --region=us-west1
Verwenden Sie das regionale SSL-Zertifikat, um mit dem Befehl
gcloud compute target-https-proxies create
einen Zielproxy zu erstellen.gcloud compute target-https-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --region=us-west1 \ --ssl-certificates=l7-xlb-cert \ --project=SERVICE_PROJECT_ID
Erstellen Sie die Weiterleitungsregel.
Bei benutzerdefinierten Netzwerken müssen Sie in der Weiterleitungsregel auf das Subnetz verweisen.
Verwenden Sie
lb-frontend-and-backend-subnet
für die IP-Adresse der Weiterleitungsregel. Wenn Sie das Nur-Proxy-Subnetz verwenden, schlägt das Erstellen der Weiterleitungsregel fehl.Bei HTTP:
Verwenden Sie den Befehl
gcloud compute forwarding-rules create
mit den richtigen Flags.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-xlb-proxy \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Bei HTTPS:
Erstellen Sie die Weiterleitungsregel mit dem Befehl
gcloud compute forwarding-rules create
und den richtigen Flags.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-xlb-proxy \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Load-Balancer testen
Sobald der Load-Balancing-Dienst ausgeführt wird, können Sie Traffic an die Weiterleitungsregel senden. Dieser wird dann an verschiedene Instanzen verteilt.
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Load-Balancer, den Sie gerade erstellt haben.
- Notieren Sie die IP-Adresse des Load-Balancers. Diese IP-Adresse wird in den folgenden Schritten als
LB_IP_ADDRESS
bezeichnet. - Prüfen Sie im Bereich Backend, ob die VMs fehlerfrei sind. Die Spalte Fehlerfrei sollte ausgefüllt sein; in diesem Fall sind beide VMs fehlerfrei (
2/2
). Falls sie doch leer ist, aktualisieren Sie zuerst die Seite. Es kann einige Minuten dauern, bis in der Google Cloud Console angezeigt wird, dass die VMs fehlerfrei sind. Wenn die Backends nach einigen Minuten nicht als fehlerfrei angezeigt werden, prüfen Sie die Firewallkonfiguration und das Netzwerk-Tag, das Ihren Backend-VMs zugewiesen wurde. - Sobald die Backend-Instanzen in der Google Cloud Console als fehlerfrei angezeigt werden, können Sie den Load-Balancer mit einem Webbrowser testen. Rufen Sie dafür
https://LB_IP_ADDRESS
(oderhttp://LB_IP_ADDRESS
) auf. Ersetzen SieLB_IP_ADDRESS
durch die IP-Adresse des Load-Balancers. - Wenn Sie ein selbst signiertes Zertifikat zu HTTPS-Testzwecken genutzt haben, zeigt Ihr Browser eine Warnung an. Sie müssen den Browser ausdrücklich anweisen, ein selbst signiertes Zertifikat zu akzeptieren.
- Im Browser sollte eine Seite mit Inhalt dargestellt werden, der den Namen der Instanz, die die Seite bereitstellt, und deren Zone enthält (z. B.
Page served from: lb-backend-example-xxxx
). Wenn der Browser diese Seite nicht anzeigt, prüfen Sie die Konfigurationseinstellungen in dieser Anleitung.
gcloud
Notieren Sie sich die reservierte IP-Adresse:
gcloud compute addresses describe IP_ADDRESS_NAME \ --format="get(address)" \ --region=us-west1
Sie können Ihren Load-Balancer mit einem Webbrowser testen, indem Sie https://IP_ADDRESS_NAME
(oder http://IP_ADDRESS_NAME
) aufrufen. Ersetzen Sie IP_ADDRESS_NAME
durch die IP-Adresse des Load-Balancers.
Wenn Sie ein selbst signiertes Zertifikat genutzt haben, um HTTPS zu testen, zeigt Ihr Browser eine Warnung an. Sie müssen Ihren Browser ausdrücklich anweisen, ein selbst signiertes Zertifikat zu akzeptieren.
Im Browser sollte eine Seite mit minimalen Informationen zur Backend-Instanz angezeigt werden. Wenn diese Seite im Browser nicht angezeigt wird, prüfen Sie die Konfigurationseinstellungen in dieser Anleitung.
Load-Balancer mit einem projektübergreifenden Backend-Dienst konfigurieren
Das vorherige Beispiel auf dieser Seite zeigt, wie Sie die Bereitstellung einer freigegebenen VPC einrichten, bei der alle Load-Balancer-Komponenten und ihre Back-Ends im Dienstprojekt erstellt werden.
Mit regionalen externen Application Load Balancern können Sie auch Bereitstellungen freigegebener VPC-Netzwerke konfigurieren, bei denen eine URL-Zuordnung in einem Host- oder Dienstprojekt auf Backend-Dienste (und Backends) in mehreren Dienstprojekten in Umgebungen mit freigegebener VPC verweisen kann. Dies wird als projektübergreifender Dienstverweis bezeichnet.
Sie können die Schritte in diesem Abschnitt als Referenz verwenden, um alle hier aufgeführten unterstützten Kombinationen zu konfigurieren:
- Weiterleitungsregel, Ziel-Proxy und URL-Zuordnung im Hostprojekt und Backend-Dienst in einem Dienstprojekt
- Weiterleitungsregel, Ziel-Proxy und URL-Zuordnung in einem Dienstprojekt und Backend-Dienst in einem anderen Dienstprojekt
Der projektübergreifende Dienstverweis kann mit Instanzgruppen, serverlosen NEGs oder anderen unterstützten Backend-Typen verwendet werden. Wenn Sie serverlose NEGs verwenden, müssen Sie eine VM in dem VPC-Netzwerk erstellen, in dem Sie das Frontend des Load-Balancers erstellen möchten. Ein Beispiel finden Sie unter VM-Instanz in einem bestimmten Subnetz erstellen im Abschnitt Regionalen externen Application Load Balancer mit Cloud Run einrichten.
Anforderungen einrichten
In diesem Beispiel wird ein Beispiel-Load-Balancer mit seinem Frontend und Backend in zwei verschiedenen Dienstprojekten konfiguriert.
Wenn Sie es noch nicht getan haben, müssen Sie alle erforderlichen Schritte ausführen, um die freigegebene VPC einzurichten und das Netzwerk sowie die Subnetze und Firewallregeln zu konfigurieren, die für dieses Beispiel erforderlich sind. Eine Anleitung finden Sie in den folgenden Abschnitten am Anfang dieser Seite:
Reservieren Sie die IP-Adresse des Load-Balancers in Dienstprojekt A
Reservieren Sie eine regionale statische externe IP-Adresse für den Load-Balancer in Dienstprojekt A.
Alle Schritte in diesem Abschnitt müssen im Dienstprojekt A ausgeführt werden.
Console
Rufen Sie in der Google Cloud Console die Seite Statische Adresse reservieren auf.
Geben Sie als Namen der neuen Adresse
cross-ref-ip-address
ein.Wählen Sie für Netzwerkdienststufe die Option Standard aus.
Setzen Sie die IP-Version auf IPv4. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.
Wählen Sie unter Typ die Option Regional aus.
Wählen Sie bei Region die Option
us-west1
aus.Übernehmen Sie für die Option Verknüpft mit die Einstellung Keine. Nachdem Sie den Load-Balancer erstellt haben, wird diese IP-Adresse an die Weiterleitungsregel des Load-Balancers angehängt.
Klicken Sie zum Reservieren der IP-Adresse auf Reservieren.
gcloud
Verwenden Sie den Befehl compute addresses create
, um eine statische externe IP-Adresse zu reservieren.
gcloud compute addresses create IP_ADDRESS_CROSS_REF \ --region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
IP_ADDRESS_CROSS_REF
ist der Name, den Sie für diese IP-Adresse vergeben möchten.SERVICE_PROJECT_A_ID
ist die Projekt-ID des Dienstprojekts A, in dem das Frontend des Load-Balancers erstellt wird.
Backends und Backend-Dienst in Dienstprojekt B erstellen
Alle Schritte in diesem Abschnitt müssen in Dienstprojekt B ausgeführt werden.
Console
Erstellen Sie eine Instanzvorlage. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.
- Klicken Sie auf Instanzvorlage erstellen.
- Geben Sie einen Namen für die Instanzvorlage ein:
cross-ref-backend-template
. - Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B.
apt-get
. Wenn Sie das Bootlaufwerk ändern müssen, klicken Sie auf Ändern.- Wählen Sie als Betriebssystem die Option Debian aus.
- Wählen Sie für Version eines der verfügbaren Debian-Images aus, z. B. Debian GNU/Linux 10 (buster).
- Klicken Sie auf Auswählen.
- Klicken Sie auf Erweiterte Optionen und dann auf Netzwerk.
- Geben Sie die folgenden Netzwerk-Tags ein:
load-balanced-backend
. - Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt: HOST_PROJECT_ID) aus.
- Wählen Sie das Subnetz
lb-frontend-and-backend-subnet
aus dem Netzwerklb-network
aus. Klicken Sie auf Verwaltung. Fügen Sie unter Verwaltung das folgende Skript in das Feld Startskript 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 im Feld Name eine Bezeichnung für die Instanzgruppe ein:
cross-ref-ig-backend
. - Wählen Sie für Standort die Option Einzelne Zone aus.
- Wählen Sie als Region us-west1 aus.
- Wählen Sie als Zone us-west1-a aus.
- Wählen Sie für Instanzvorlage die Option cross-ref-backend-template aus.
Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.
Geben Sie für dieses Beispiel für Autoscaling die folgenden Optionen an:
- Wählen Sie für Autoscaling-Modus
Off:do not autoscale
aus. - Geben Sie für Maximale Anzahl von Instanzen den Wert
2
ein.
Optional können Sie im Abschnitt Autoscaling die Instanzgruppe so konfigurieren, dass Instanzen basierend auf der CPU-Auslastung automatisch hinzugefügt oder entfernt werden.
- Wählen Sie für Autoscaling-Modus
Klicken Sie auf Erstellen.
Erstellen Sie einen regionalen Backend-Dienst. In diesem Schritt erstellen wir auch die Systemdiagnose und fügen dem Backend-Dienst Backends hinzu. Öffnen Sie in der Google Cloud Console die Seite Back-Ends.
- Klicken Sie auf Regionalen Backend-Dienst erstellen.
- Geben Sie im Feld Name eine Bezeichnung für den Backend-Dienst ein:
cross-ref-backend-service
. - Wählen Sie als Region us-west1 aus.
- Wählen Sie für Typ des Load-Balancers die Option Regionaler externer Application Load Balancer (EXTERNAL_MANAGED) aus.
- Setzen Sie den Backend-Typ auf Instanzgruppen.
- Legen Sie im Bereich Back-Ends für Netzwerk den Wert lb-network fest.
- Click Add backend and set the following fields:
- Legen Sie für die Instanzgruppe cross-ref-ig-backend fest.
- Legen Sie für Portnummern den Wert
80
fest. - Setzen Sie den Balancing-Modus auf Auslastung.
- Klicken Sie auf Fertig.
- Wählen Sie im Abschnitt Systemdiagnose die Option Systemdiagnose erstellen mit den folgenden Parametern aus:
- Name:
cross-ref-http-health-check
- Protokoll:
HTTP
- Port:
80
- Klicken Sie auf Speichern.
- Name:
Optional: Geben Sie im Abschnitt Berechtigungen hinzufügen die IAM-Hauptkonten (normalerweise eine E-Mail-Adresse) von Load-Balancer-Administratoren aus anderen Projekten ein, damit sie diesen Backend-Dienst für Load-Balancern in ihren eigenen Projekten verwenden können. Ohne diese Berechtigung können Sie keinen projektübergreifenden Dienstverweis verwenden.
Wenn Sie keine Berechtigung zum Festlegen von Zugriffssteuerungsrichtlinien für Backend-Dienste in diesem Projekt haben, können Sie den Backend-Dienst jetzt erstellen. Ein autorisierter Nutzer kann diesen Schritt später wie in der Gewähren Sie dem Load-Balancer-Administrator Berechtigungen zur Verwendung des Backend-Dienstes ausführen. In diesem Abschnitt wird auch beschrieben, wie Sie Zugriff auf alle Backend-Dienste in diesem Projekt gewähren, damit Sie nicht jedes Mal Zugriff gewähren müssen, wenn Sie einen neuen Backend-Dienst erstellen.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie mit dem Befehl
gcloud compute instance-templates create
eine VM-Instanzvorlage mit einem HTTP-Server.gcloud compute instance-templates create BACKEND_IG_TEMPLATE \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-10 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_B_ID
Dabei gilt:
BACKEND_IG_TEMPLATE
: Der Name der Instanzgruppenvorlage.SERVICE_PROJECT_B_ID
: Die Projekt-ID des Dienstprojekts B, in dem die Backends des Load-Balancers und der Backend-Dienst erstellt werden.HOST_PROJECT_ID
: Die Projekt-ID des freigegebenen VPC-Hostprojekts.
Erstellen Sie mit dem Befehl
gcloud compute instance-groups managed create
eine verwaltete Instanzgruppe in der Zone.gcloud compute instance-groups managed create BACKEND_MIG \ --zone=us-west1-a \ --size=2 \ --template=BACKEND_IG_TEMPLATE \ --project=SERVICE_PROJECT_B_ID
Dabei gilt:
BACKEND_MIG
: Der Name der Backend-Instanzgruppe.
Definieren Sie die HTTP-Systemdiagnose mit dem Befehl
gcloud compute health-checks create http
.gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
Dabei gilt:
HTTP_HEALTH_CHECK_NAME
: Der Name für die HTTP-Systemdiagnose.
Definieren Sie den Backend-Dienst mit dem Befehl
gcloud compute backend-services create
.gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Dabei gilt:
BACKEND_SERVICE_NAME
: Der Name des Backend-Dienstes, der in Dienstprojekt B erstellt wurde.
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_NAME \ --balancing-mode=UTILIZATION \ --instance-group=BACKEND_MIG \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Load-Balancer-Frontend und URL-Zuordnung in Dienstprojekt A erstellen
Alle Schritte in diesem Abschnitt müssen im Dienstprojekt A ausgeführt werden.
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 Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
- Wählen Sie unter Globale oder einzelne Region Bereitstellung die Option Am besten für regionale Arbeitslasten aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Load-Balancer vorbereiten
- Geben Sie den Namen des Load-Balancers ein:
cross-ref-l7-xlb-shared-vpc
. - Wählen Sie als Region us-west1 aus.
Wählen Sie für das Netzwerk die Option lb-network (aus Projekt: HOST_PROJECT_ID) aus.
Wenn die Warnung Nur-Proxy-Subnetz im freigegebenen VPC-Netzwerk erforderlich angezeigt wird, prüfen Sie, ob der Administrator des Hostprojekts das
proxy-only-subnet
in der Regionus-west1
im freigegebenen VPC-Netzwerklb-network
erstellt hat. Die Erstellung des Load Balancers ist auch dann erfolgreich, wenn Sie keine Berechtigung zum Ansehen des Nur-Proxy-Subnetzes auf dieser Seite haben.Lassen Sie die Seite geöffnet, um fortzufahren.
Frontend konfigurieren
Damit der projektübergreifende Dienst verweist, muss das Frontend dasselbe Netzwerk (lb-network
) aus dem freigegebenen VPC-Hostprojekt verwenden, mit dem der Backend-Dienst erstellt wurde.
Bei HTTP:
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie einen Name für die Weiterleitungsregel ein:
cross-ref-http-forwarding-rule
. - Legen Sie als Protokoll
HTTP
fest. Setzen Sie die Option Subnetzwerk auf
lb-frontend-and-backend-subnet
.Wählen Sie nicht das Nur-Proxy-Subnetz für das Frontend aus, auch wenn es sich um eine Option in der Liste handelt.
Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren mit dem Namen cross-ref-ip-address erstellt haben.
Legen Sie als Port
80
fest.Klicken Sie auf Fertig.
Bei HTTPS:
Wenn Sie HTTPS zwischen dem Client und dem Load-Balancer verwenden, benötigen Sie eine oder mehrere SSL-Zertifikatsressourcen, um den Proxy zu konfigurieren. Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Von Google verwaltete Zertifikate werden derzeit nicht mit regionalen externen Application Load Balancern unterstützt.
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie einen Name für die Weiterleitungsregel ein:
cross-ref-https-forwarding-rule
. - Wählen Sie im Feld Protokoll die Option
HTTPS (includes HTTP/2)
aus. Setzen Sie die Option Subnetzwerk auf
lb-frontend-and-backend-subnet
.Wählen Sie nicht das Nur-Proxy-Subnetz für das Frontend aus, auch wenn es sich um eine Option in der Liste handelt.
Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren mit dem Namen cross-ref-ip-address erstellt haben.
Achten Sie darauf, dass der Port auf
443
festgelegt ist, um HTTPS-Traffic zuzulassen.Klicken Sie auf die Liste Zertifikat.
- Wenn Sie bereits eine selbstverwaltete SSL-Zertifikatsressource haben, die Sie als primäres SSL-Zertifikat verwenden möchten, wählen Sie diese aus dem Menü aus.
- Wählen Sie andernfalls Neues Zertifikat erstellen aus.
- Geben Sie einen Namen für das SSL-Zertifikat ein.
- Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
- Public-Key-Zertifikat
- Zertifikatskette
- Privater Schlüssel
- Klicken Sie auf Erstellen.
So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
- Klicken Sie auf Zertifikat hinzufügen.
- Wählen Sie ein Zertifikat aus der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der vorherigen Anleitung.
Klicken Sie auf Fertig.
Backend konfigurieren
- Klicken Sie auf Backend-Konfiguration.
- Klicken Sie auf Projektübergreifende Backend-Dienste.
- Geben Sie als Projekt-ID die Projekt-ID für Dienstprojekt B ein.
- Geben Sie unter Name des Backend-Dienstes den Namen des Backend-Dienstes aus Dienstprojekt B ein, das Sie verwenden möchten. In diesem Beispiel geben Sie
cross-ref-backend-service
ein. - Klicken Sie auf Backend-Dienst hinzufügen.
Routingregeln konfigurieren
- Klicken Sie auf Routingregeln. Der cross-ref-backend-service muss der einzige Backend-Dienst für alle nicht übereinstimmenden Hosts und alle nicht übereinstimmenden Pfade sein.
Weitere Informationen zur Trafficverwaltung finden Sie unter Trafficverwaltung einrichten.
Konfiguration prüfen und fertigstellen
- Klicken Sie auf Erstellen.
Load-Balancer testen
Nachdem Sie den Load-Balancer erstellt haben, testen Sie ihn mithilfe der Schritte unter Load-Balancer testen.
gcloud
Erstellen Sie die URL-Zuordnung und legen Sie den Standarddienst auf den Backend-Dienst in Dienstprojekt B fest.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/SERVICE_PROJECT_B_ID/regions/us-west1/backendServices/BACKEND_SERVICE_NAME \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
URL_MAP_NAME
: Der Name für die URL-Zuordnung.BACKEND_SERVICE_NAME
: Der Name des Backend-Dienstes, der in Dienstprojekt B erstellt wurde.SERVICE_PROJECT_B_ID
: Die Projekt-ID des Dienstprojekts B, in dem die Backends und der Backend-Dienst des Load-Balancers erstellt werden.SERVICE_PROJECT_A_ID
ist die Projekt-ID des Dienstprojekts A, in dem das Frontend des Load-Balancers erstellt wird.
Die Erstellung einer URL-Zuordnung schlägt fehl, wenn Sie die Berechtigung
compute.backendServices.use
für den Backend-Dienst in Dienstprojekt B nicht haben.Erstellen Sie den Zielproxy.
Bei HTTP:
gcloud compute target-http-proxies create HTTP_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
HTTP_TARGET_PROXY_NAME
: Der Name des HTTP-Ziel-Proxys.
Bei HTTPS:
Erstellen Sie ein regionales SSL-Zertifikat mit dem Befehl
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate=PATH_TO_CERTIFICATE \ --private-key=PATH_TO_PRIVATE_KEY \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
SSL_CERTIFICATE_NAME
: Der Name der SSL-Zertifikatsressource.PATH_TO_CERTIFICATE
: Der Pfad zur lokalen SSL-Zertifikatsdatei im PEM-Format.PATH_TO_PRIVATE_KEY
: Der Pfad zum privaten Schlüssel des lokalen SSL-Zertifikats im PEM-Format.
Verwenden Sie das regionale SSL-Zertifikat, um mit dem Befehl
gcloud compute target-https-proxies create
einen Zielproxy zu erstellen.gcloud compute target-https-proxies create HTTPS_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-west1 \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
HTTPS_TARGET_PROXY_NAME
: Der Name für den Ziel-HTTPS-Proxy.
Erstellen Sie die Weiterleitungsregel. Damit der projektübergreifende Dienst verweist, muss die Weiterleitungsregel dasselbe Netzwerk (
lb-network
) aus dem freigegebenen VPC-Hostprojekt verwenden, mit dem der Backend-Dienst erstellt wurde.Bei HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
HTTP_FORWARDING_RULE_NAME
: Der Name der Weiterleitungsregel, die zur Verarbeitung von HTTP-Traffic verwendet wird.
Bei HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Dabei gilt:
HTTPS_FORWARDING_RULE_NAME
: Der Name der Weiterleitungsregel, die für die Verarbeitung von HTTPS-Traffic verwendet wird.
Testen Sie den Load-Balancer mit den unter Load-Balancer testen beschriebenen Schritten.
Dem Load-Balancer-Administrator die Berechtigungen erteilen, den Backend-Dienst zu verwenden
Wenn Load-Balancer auf Backend-Dienste in anderen Dienstprojekten verweisen sollen, muss der Load-Balancer-Administrator die Berechtigung compute.backendServices.use
haben. Um diese Berechtigung zu erteilen, können Sie die vordefinierte IAM-Rolle „Nutzer von Compute-Load-Balancer-Diensten“ (roles/compute.loadBalancerServiceUser
) verwenden. Diese Rolle muss vom Dienstprojektadministrator gewährt werden und kann auf Projektebene oder auf der Ebene eines einzelnen Backend-Dienstes zugewiesen werden.
Dieser Schritt ist nicht erforderlich, wenn Sie beim Erstellen des Backend-Dienstes bereits die erforderlichen Berechtigungen auf Backend-Dienstebene gewährt haben. Sie können entweder diesen Abschnitt überspringen oder weiterlesen, um zu erfahren, wie Sie Zugriff auf alle Backend-Dienste in diesem Projekt gewähren, damit Sie nicht bei jedem Erstellen eines neuen Backend-Dienstes Zugriff gewähren müssen.
In diesem Beispiel muss ein Dienstprojektadministrator aus dem Dienstprojekt B genau einen der folgenden Befehle ausführen, um einem Load-Balancer-Administrator aus Dienstprojekt A die Berechtigung compute.backendServices.use
zu erteilen. Dies kann entweder auf Projektebene (für alle Backend-Dienste im Projekt) oder pro Backend-Dienst erfolgen.
Console
Berechtigungen auf Projektebene
Gehen Sie folgendermaßen vor, um allen Backend-Diensten in Ihrem Projekt Berechtigungen zu erteilen.
Sie benötigen die Berechtigungen compute.regionBackendServices.setIamPolicy
und resourcemanager.projects.setIamPolicy
, um diesen Schritt auszuführen.
Rufen Sie in der Google Cloud Console die Seite Freigegebene Load-Balancing-Dienste auf.
Wählen Sie im Abschnitt Alle Backend-Dienstberechtigungen (Berechtigungen auf Projektebene) Ihr Projekt aus.
Wenn das Feld "Berechtigungen" nicht sichtbar ist, klicken Sie auf Bereich "Berechtigungen" anzeigen. Der Bereich Berechtigungen auf Projektebene wird rechts geöffnet.
Klicken Sie auf
Hauptkonto hinzufügen.Geben Sie unter Neue Hauptkonten die E-Mail-Adresse oder die andere Kennung des Hauptkontos ein.
Wählen Sie unter Rolle die Rolle Nutzer von Compute-Load-Balancer-Diensten aus der Drop-down-Liste aus.
Optional: Fügen Sie der Rolle eine Bedingung hinzu.
Klicken Sie auf Speichern.
Berechtigungen auf Ressourcenebene für einzelne Backend-Dienste
Gehen Sie folgendermaßen vor, um einzelnen Backend-Diensten in Ihrem Projekt Berechtigungen zu erteilen.
Sie benötigen die Berechtigung compute.regionBackendServices.setIamPolicy
, um diesen Schritt auszuführen.
gcloud
Berechtigungen auf Projektebene
Gehen Sie folgendermaßen vor, um allen Backend-Diensten in Ihrem Projekt Berechtigungen zu erteilen.
Sie benötigen die Berechtigungen compute.regionBackendServices.setIamPolicy
und resourcemanager.projects.setIamPolicy
, um diesen Schritt auszuführen.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser"
Berechtigungen auf Ressourcenebene für einzelne Backend-Dienste
Auf Backend-Dienstebene können Dienstprojektadministratoren einen der folgenden Befehle verwenden, um die Rolle „Nutzer von Compute-Load-Balancer-Diensten“ (roles/compute.loadBalancerServiceUser
) zuzuweisen.
Sie benötigen die Berechtigung compute.regionBackendServices.setIamPolicy
, um diesen Schritt auszuführen.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'
oder
gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --project=SERVICE_PROJECT_B_ID \ --region=us-west1
Wenn Sie diese Befehle verwenden möchten, ersetzen Sie LOAD_BALANCER_ADMIN
durch das Hauptkonto des Nutzers, z. B. test-user@gmail.com
.
IAM-Berechtigungen können von Ihnen mithilfe von Bedingungen und durch Angabe von Bedingungsattributen auch so konfiguriert werden, dass sie nur für einen Teil der regionalen Backend-Dienste gelten.
Nächste Schritte
- Sie können mithilfe von Einschränkungen für Organisationsrichtlinien einschränken, wie Funktionen von freigegebenen VPCs wie die projektübergreifende Dienstreferenz in Ihrem Projekt verwendet werden. Weitere Informationen finden Sie unter Einschränkungen für Organisationsrichtlinien für Cloud Load Balancing.
- Informationen zum Verwalten der Nur-Proxy-Subnetzressource, die für regionale externe Application Load Balancer erforderlich ist, finden Sie unter Nur-Proxy-Subnetz für regionale externe Application Load Balancer.
- Informationen zum Beheben von Problemen mit einem regionalen externen Application Load Balancer finden Sie unter Probleme mit externen Application Load Balancern beheben.
- Einrichtung des Load-Balancers bereinigen