Dieses Dokument zeigt zwei Beispielkonfigurationen zum Einrichten eines globalen externen Application Load Balancers mit VM-Instanzgruppen-Back-Ends in einer freigegebenen VPC-Umgebung:
- Im ersten Beispiel werden die Frontend- und Backend-Komponenten des Load-Balancers in einem 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 in einem Projekt auf einen Backend-Dienst in einem anderen Projekt verweist, wird als projektübergreifender Dienstverweis bezeichnet.
Beide Beispiele erfordern dieselbe Erstkonfiguration, um Berechtigungen zu erteilen, das Netzwerk und das Subnetz im Hostprojekt zu konfigurieren und freigegebene VPC einzurichten, bevor Sie den Load-Balancer erstellen können.
Dies sind nicht die einzigen Konfigurationen für freigegebene VPCs, die vom globalen externen Application Load Balancer unterstützt werden. Weitere Architekturen mit freigegebener VPC finden Sie unter Architektur freigegebener VPCs.
Wenn Sie kein freigegebenes VPC-Netzwerk verwenden möchten, lesen Sie die Informationen unter Globalen externen Application Load Balancer mit VM-Instanzgruppen-Back-Ends einrichten.
Hinweise
- Freigegebene VPC – Übersicht
- Weitere Informationen finden Sie unter Übersicht über externen Application Load Balancer, einschließlich des Abschnitts „Architektur der freigegebenen VPC“.
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 einem Subnetz für die Back-Ends des Load-Balancers.In diesem Beispiel werden das folgende Netzwerk, die Region und das Subnetze verwendet:
Netzwerk Das Netzwerk hat den Namen
lb-network
.Subnetz für Back-Ends des Load-Balancers. Ein Subnetz mit dem Namen
lb-backend-subnet
in der Regionus-west1
verwendet10.1.2.0/24
für seinen primären IP-Bereich.
Subnetz für 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.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-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-backend-subnet
--network=lb-network
--range=10.1.2.0/24
--region=us-west1
Gewähren Sie Dienstprojektadministratoren Zugriff auf das Backend-Subnetz
Dienstprojektadministratoren benötigen Zugriff auf das Subnetzlb-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.
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.
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
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.
Nachdem Sie die in diesem Abschnitt beschriebenen Voraussetzungen erfüllt haben, können Sie eine der folgenden Konfigurationen ausführen:
Load-Balancer in einem Dienstprojekt konfigurieren
Nachdem Sie das VPC-Netzwerk im Hostprojekt konfiguriert und die freigegebene VPC eingerichtet haben, können Sie sich auf das Dienstprojekt konzentrieren, in dem Sie alle Load-Balancing-Komponenten (Backend-Dienst, URL-Zuordnung, Ziel-Proxy und Weiterleitungsregel) und die Backends erstellen müssen.
In diesem Abschnitt wird davon ausgegangen, dass Sie die im vorherigen Abschnitt beschriebenen erforderlichen Schritte im Hostprojekt ausgeführt haben. In diesem Abschnitt werden die Frontend- und Backend-Komponenten des Load-Balancers zusammen mit den Backends in einem Dienstprojekt erstellt.
Die folgende Abbildung zeigt die Komponenten eines globalen externen Application Load Balancers in einem Dienstprojekt, das mit dem Hostprojekt in einem freigegebenen VPC-Netzwerk verknüpft ist.
Diese Schritte sollten vom Dienstprojektadministrator ausgeführt werden (oder von einem innerhalb des Dienstprojekts tätigen Entwickler). Sie erfordern keine Einbeziehung des Hostprojektadministrators. Die Schritte in diesem Abschnitt ähneln den Standardschritten zum Einrichten eines globalen externen Application Load Balancers.
Im Beispiel auf dieser Seite wird explizit eine reservierte IP-Adresse für die Weiterleitungsregel des global 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
Die Voraussetzung für das Erstellen einer verwalteten Instanzgruppe ist die Erstellung einer Instanzvorlage. Dies ist eine Ressource, mit der Sie VM-Instanzen erstellen können. Der Traffic von Clients wird auf VMs in einer Instanzgruppe verteilt. Die verwaltete Instanzgruppe umfasst VMs, auf denen die Backend-Server eines externen Application Load Balancer ausgeführt werden. In diesem Beispiel stellen die Back-Ends ihre eigenen Hostnamen bereit.
Console
Instanzvorlage erstellen
Rufen Sie in der Google Cloud Console die Compute Engine-Seite Instanzvorlagen auf.
Klicken Sie auf Instanzvorlage erstellen.
Geben Sie für Name
backend-template
ein.Achten Sie im Abschnitt Bootlaufwerk darauf, dass das Bootlaufwerk auf ein Debian-Image wie Debian GNU/Linux 12 (bookworm) festgelegt ist. Klicken Sie auf Ändern, um das Image bei Bedarf zu ändern.
Maximieren Sie den Bereich Erweiterte Optionen.
Maximieren Sie den Abschnitt Netzwerk und geben Sie im Feld Netzwerk-Tags den Wert
load-balanced-backend
ein.Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt:
HOST_PROJECT_ID
) aus.Wählen Sie in der Liste Freigegebenes Subnetzwerk das Subnetz
lb-backend-subnet
aus dem Netzwerklb-network
aus.Maximieren Sie den Abschnitt Verwaltung und geben Sie im Feld Automatisierung das folgende Startskript an:
#! /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 Compute Engine-Seite Instanzgruppen auf.
Klicken Sie auf Instanzgruppe erstellen.
Wählen Sie aus den Optionen Neue verwaltete Instanzgruppe (zustandslos) aus.
Geben Sie als Namen der Instanzgruppe
lb-backend
ein.Wählen Sie in der Liste Instanzvorlage die Instanzvorlage
backend-template
aus, die Sie im vorherigen Schritt erstellt haben.Wählen Sie im Abschnitt Standort die Option Einzelne Zone aus und geben Sie die folgenden Werte ein:
Wählen Sie bei Region die Option
us-west1
aus.Wählen Sie bei Zone die Option
us-west1-a
aus.
Geben Sie im Abschnitt Autoscaling die folgenden Werte ein:
Wählen Sie für den Autoscaling-Modus die Option Ein: der Gruppe Instanzen hinzufügen und aus ihr entfernen aus.
Wählen Sie für Mindestanzahl von Instanzen die Option
2
aus.Wählen Sie unter Maximale Anzahl von Instanzen die Option
3
aus.
Klicken Sie im Abschnitt Portzuordnung auf Port hinzufügen und geben Sie die folgenden Werte ein:
Geben Sie als Portname
http
ein.Geben Sie für Portnummer
80
ein.
Klicken Sie auf Erstellen.
gcloud
Instanzvorlage erstellen:
gcloud compute instance-templates create backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_ID
Erstellen Sie eine verwaltete Instanzgruppe und wählen Sie die Instanzvorlage aus, die Sie im vorherigen Schritt erstellt haben:
gcloud compute instance-groups managed create lb-backend \ --zone=us-west1-a \ --size=2 \ --template=backend-template \ --project=SERVICE_PROJECT_ID
Benannten Port zur Instanzgruppe hinzufügen:
gcloud compute instance-groups set-named-ports lb-backend \ --named-ports=http:80 \ --zone=us-west1-a \ --project=SERVICE_PROJECT_ID
Systemdiagnose erstellen
Systemdiagnosen sind Tests, die die Verfügbarkeit von Back-Ends bestätigen. Erstellen Sie eine Systemdiagnose, die das HTTP-Protokoll und Prüfungen auf Port 80
verwendet. Später hängen Sie diese Systemdiagnose an den Backend-Dienst an, auf den der Load-Balancer verweist.
Console
Rufen Sie in der Google Cloud Console die Compute Engine-Seite Systemdiagnosen auf:
Geben Sie als Namen der Systemdiagnose
lb-health-check
ein.Legen Sie das Protokoll HTTP fest.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine HTTP-Systemdiagnose.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=SERVICE_PROJECT_ID
IP-Adresse des Load-Balancers reservieren
Reservieren Sie eine globale statische externe IP-Adresse, die der Weiterleitungsregel des Load-Balancers zugewiesen werden kann.
Console
Rufen Sie in der Google Cloud Console die VPC-Seite IP-Adressen auf.
Klicken Sie auf Externe statische IP-Adresse reservieren.
Geben Sie für Name
lb-ipv4-1
ein.Setzen Sie die Netzwerkdienststufe auf Premium.
Setzen Sie die IP-Version auf IPv4.
Setzen Sie Typ auf Global.
Klicken Sie auf Reservieren.
gcloud
Erstellen Sie eine globale statische externe IP-Adresse.
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global --project=SERVICE_PROJECT_ID
SSL-Zertifikatsressource einrichten
Erstellen Sie für einen Load-Balancer, der HTTPS als Anfrage- und Antwortprotokoll verwendet, eine SSL-Zertifikatsressource, wie in den folgenden Ressourcen beschrieben:
Wir empfehlen die Verwendung eines von Google verwalteten Zertifikats.
In diesem Beispiel wird davon ausgegangen, dass Sie ein SSL-Zertifikat mit dem Namen lb-ssl-cert
erstellt haben. Das SSL-Zertifikat ist mit dem Zielproxy verknüpft, den Sie in einem der folgenden Schritte erstellen.
Load-Balancer konfigurieren
In diesem Abschnitt erfahren Sie, wie Sie die folgenden Ressourcen für einen globalen externen Application Load Balancer erstellen:
- Backend-Dienst mit einer verwalteten Instanzgruppe als Backend
- URL-Zuordnung
- SSL-Zertifikat (nur für HTTPS-Traffic erforderlich)
- Zielproxy
- Weiterleitungsregel
In diesem Beispiel können Sie HTTP oder HTTPS als Anfrage- und Antwortprotokoll zwischen dem Client und dem Load-Balancer verwenden. Für HTTPS benötigen Sie eine SSL-Zertifikatsressource, um den Proxy zu konfigurieren. Wir empfehlen die Verwendung eines von Google verwalteten Zertifikats.
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 Einzelregion-Bereitstellung die Option Am besten für globale Arbeitslasten aus und klicken Sie auf Weiter.
- Wählen Sie unter Generation des Load Balancers die Option Globaler externer Application Load Balancer aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
- Geben Sie
l7-xlb-shared-vpc
als Name des Load-Balancers ein.
Load-Balancer-Frontend konfigurieren
Bei HTTP-Traffic:
Klicken Sie auf Frontend-Konfiguration.
Geben Sie für das Frontend das Load-Balancers den Namen
http-fw-rule
ein.Wählen Sie für Protokoll die Option HTTP aus.
Setzen Sie die IP-Version auf IPv4.
Wählen Sie unter IP-Adresse die IP-Adresse
lb-ipv4-1
aus, die Sie zuvor reserviert haben.Legen Sie den Port auf
80
fest, um HTTP-Traffic zuzulassen.Klicken Sie zum Abschließen der Frontend-Konfiguration auf Fertig.
Überprüfen Sie, bevor Sie fortfahren, ob sich neben der Frontend-Konfiguration ein blaues Häkchen befindet.
Bei HTTPS-Traffic:
Klicken Sie auf Frontend-Konfiguration.
Geben Sie für das Frontend das Load-Balancers den Namen
https-fw-rule
ein.Wählen Sie für Protokoll die Option HTTPS aus.
Setzen Sie die IP-Version auf IPv4.
Wählen Sie unter IP-Adresse die IP-Adresse
lb-ipv4-1
aus, die Sie zuvor reserviert haben.Legen Sie den Port auf
443
fest, um HTTP-Traffic zuzulassen.Wählen Sie in der Liste Zertifikat das von Ihnen erstellte SSL-Zertifikat aus.
Klicken Sie zum Abschließen der Frontend-Konfiguration auf Fertig.
Überprüfen Sie, bevor Sie fortfahren, ob sich neben der Frontend-Konfiguration ein blaues Häkchen befindet.
Back-End konfigurieren
Klicken Sie auf Backend-Konfiguration.
Klicken Sie im Menü Backend-Dienste und Backend-Buckets auf Backend-Dienst erstellen.
Geben Sie als Name des Backend-Dienstes
lb-backend-service
ein.Wählen Sie für den Backend-Typ die Option Instanzgruppe aus.
Legen Sie als Protokoll HTTP fest.
Geben Sie im Feld Benannter Port
http
ein. Dies ist der Portname, den Sie beim Erstellen der verwalteten Instanzgruppe eingegeben haben.So fügen Sie backends zum Backend-Dienst hinzu:
Legen Sie im Bereich Back-Ends die Instanzgruppe auf
lb-backend
fest. Dies ist die verwaltete Instanzgruppe, die Sie in einem vorherigen Schritt erstellt haben.Geben Sie unter Portnummern
80
ein.Klicken Sie auf Fertig, um das Backend hinzuzufügen.
Wählen Sie zum Hinzufügen einer Systemdiagnose in der Liste Systemdiagnose die zuvor erstellte Systemdiagnose
lb-health-check
aus.Klicken Sie auf Erstellen, um den Backend-Dienst zu erstellen.
Überprüfen Sie, bevor Sie fortfahren, ob sich neben Backend-Konfiguration ein blaues Häkchen befindet.
Routingregeln konfigurieren
- Klicken Sie auf Routingregeln. Achten Sie darauf, dass
lb-backend-service
der Standard-Backend-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 Prüfen und abschließen.
Prüfen Sie das Frontend und das Backend des Load-Balancers, um sicherzustellen, dass er wie gewünscht konfiguriert ist.
Klicken Sie auf Erstellen und warten Sie, bis der Load-Balancer erstellt ist.
gcloud
Erstellen Sie einen Backend-Dienst, um den Traffic auf Backends zu verteilen:
gcloud compute backend-services create lb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=lb-health-check \ --global \ --project=SERVICE_PROJECT_ID
Fügen Sie Ihre Instanzgruppe als Backend zum Backend-Dienst hinzu:
gcloud compute backend-services add-backend lb-backend-service \ --instance-group=lb-backend \ --instance-group-zone=us-west1-a \ --global \ --project=SERVICE_PROJECT_ID
Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
gcloud compute url-maps create lb-map \ --default-service=lb-backend-service \ --global \ --project=SERVICE_PROJECT_ID
Erstellen Sie einen Zielproxy.
Erstellen Sie für HTTP-Traffic einen Ziel-HTTP-Proxy, um Anfragen an die URL-Zuordnung weiterzuleiten:
gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_ID
Erstellen Sie für HTTPS-Traffic einen Ziel-HTTPS-Proxy, um Anfragen an die URL-Zuordnung weiterzuleiten. Der Proxy ist der Teil des Load-Balancers, der das SSL-Zertifikat für das HTTPS-Load-Balancing besitzt. Daher laden Sie in diesem Schritt auch Ihr SSL-Zertifikat.
gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --ssl-certificates=lb-ssl-cert --global \ --project=SERVICE_PROJECT_ID
Erstellen Sie eine Weiterleitungsregel.
Erstellen Sie für HTTP-Traffic eine globale Weiterleitungsregel, um eingehende Anfragen an den Zielproxy weiterzuleiten:
gcloud compute forwarding-rules create http-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-http-proxy=http-proxy \ --ports=80 \ --project=SERVICE_PROJECT_ID
Erstellen Sie für HTTPS-Traffic eine globale Weiterleitungsregel, um eingehende Anfragen an den Zielproxy weiterzuleiten:
gcloud compute forwarding-rules create https-fw-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-proxy \ --ports=443 \ --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. Sie gibt an, dass die VMs fehlerfrei sind. Zum Beispiel: Wenn zwei Instanzen erstellt wurden, sollten Sie die Meldung
2 of 2
mit einem grünen Häkchen daneben sehen. Wenn Sie etwas anderes sehen, versuchen Sie zuerst, die Seite neu zu laden. 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, die Ihren Backend-VMs zugewiesen sind.Sobald die Google Cloud Console anzeigt, dass die Backend-Instanzen in Ordnung sind, können Sie Ihren Load-Balancer testen. Verweisen Sie dazu in Ihrem Webbrowser auf
https://LB_IP_ADDRESS
(oderhttp://LB_IP_ADDRESS
). Ersetzen SieLB_IP_ADDRESS
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 einem 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 aus dieser Anleitung.
gcloud
Notieren Sie sich die reservierte IP-Adresse:
gcloud compute addresses describe IP_ADDRESS_NAME \ --format="get(address)" \ --global
Sie können Ihren Load-Balancer testen, indem Sie Ihren Webbrowser auf https://LB_IP_ADDRESS
(oder http://LB_IP_ADDRESS
) verweisen. Ersetzen Sie LB_IP_ADDRESS
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 in einem Dienstprojekt erstellt werden.
Mit globalen 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 einzigen Dienstprojekt und Backend-Dienst in einem anderen Dienstprojekt
Einrichtungsvoraussetzungen
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:
- Erforderliche Berechtigungen zum Einrichten einer freigegebenen VPC
- Vorbereitende Konfiguration im Hostprojekt
In dieser Konfiguration befinden sich die Weiterleitungsregel, der Zielproxy und die URL-Zuordnung in einem Dienstprojekt und der Backend-Dienst sowie die Backends in einem anderen Dienstprojekt.
- In service project B, you'll configure the following
backend resources:
- Backend einer verwalteten Instanzgruppe
- Systemdiagnose
- Globaler Backend-Dienst
- In service project A, you'll configure the following
frontend resources:
- IP-Adresse
- SSL-Zertifikat
- URL-Zuordnung
- Zielproxy
- Weiterleitungsregel
Die folgende Abbildung zeigt einen globalen externen Application Load Balancer, in dem der Backend-Dienst des Load-Balancers in einem Dienstprojekt durch eine URL-Zuordnung in einem anderen Dienstprojekt referenziert wird.
Für projektübergreifende Dienstreferenzen mit einem globalen externen Application Load Balancer müssen Backend-Instanzen nicht Teil desselben VPC-Netzwerks oder eines freigegebenen VPC-Netzwerks sein.
In diesem Beispiel sind die Backend-VMs im Dienstprojekt Teil des freigegebenen VPC-Netzwerks, das im Hostprojekt erstellt wird. Sie können jedoch in einem Dienstprojekt auch ein eigenständiges VPC-Netzwerk, also ein nicht freigegebenes VPC-Netzwerk, zusammen mit den erforderlichen Firewallregeln einrichten. Sie haben dann die Möglichkeit, Backend-Instanzen wie eine Instanzgruppe zu erstellen, die Teil dieses eigenständigen VPC-Netzwerks sind. Nachdem Sie die Backend-Instanzen erstellt haben, können Sie die verbleibenden Schritte wie in diesem Beispiel beschrieben ausführen, um einen Backend-Dienst im Dienstprojekt zu erstellen und mit einer URL-Zuordnung in einem anderen Dienstprojekt mithilfe von projektübergreifenden Dienstreferenzen zu verbinden.
Backend-Komponenten des Load-Balancers in Dienstprojekt B konfigurieren
In diesem Abschnitt müssen Sie die folgenden Backend-Ressourcen in Dienstprojekt B konfigurieren:
- Verwaltete Instanzgruppe
- Systemdiagnose
- Globaler Backend-Dienst
Backend einer verwalteten Instanzgruppe erstellen
Die Voraussetzung für das Erstellen einer verwalteten Instanzgruppe ist die Erstellung einer Instanzvorlage. Dies ist eine Ressource, mit der Sie VM-Instanzen erstellen können. Der Traffic von Clients wird auf VMs in einer Instanzgruppe verteilt. Die verwaltete Instanzgruppe umfasst VMs, auf denen die Backend-Server eines externen Application Load Balancer ausgeführt werden. In diesem Beispiel stellen die Back-Ends ihre eigenen Hostnamen bereit.
Console
Instanzvorlage erstellen
Rufen Sie in der Google Cloud Console die Compute Engine-Seite Instanzvorlagen auf.
Klicken Sie auf Instanzvorlage erstellen.
Geben Sie für Name
backend-template
ein.Achten Sie im Abschnitt Bootlaufwerk darauf, dass das Bootlaufwerk auf ein Debian-Image wie Debian GNU/Linux 12 (bookworm) festgelegt ist. Klicken Sie auf Ändern, um das Image bei Bedarf zu ändern.
Maximieren Sie den Bereich Erweiterte Optionen.
Maximieren Sie den Abschnitt Netzwerk und geben Sie im Feld Netzwerk-Tags den Wert
load-balanced-backend
ein.Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt:
HOST_PROJECT_ID)
) aus.Wählen Sie in der Liste Freigegebenes Subnetzwerk das Subnetz
lb-backend-subnet
aus dem Netzwerklb-network
aus.Maximieren Sie den Abschnitt Verwaltung und geben Sie im Feld Automatisierung das folgende Startskript an:
#! /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 Compute Engine-Seite Instanzgruppen auf.
Klicken Sie auf Instanzgruppe erstellen.
Wählen Sie aus den Optionen Neue verwaltete Instanzgruppe (zustandslos) aus.
Geben Sie als Namen der Instanzgruppe
lb-backend
ein.Wählen Sie in der Liste Instanzvorlage die Instanzvorlage
backend-template
aus, die Sie im vorherigen Schritt erstellt haben.Wählen Sie im Abschnitt Standort die Option Einzelne Zone aus und geben Sie die folgenden Werte ein:
Wählen Sie bei Region die Option
us-west1
aus.Wählen Sie bei Zone die Option
us-west1-a
aus.
Geben Sie im Abschnitt Autoscaling die folgenden Werte ein:
Wählen Sie für den Autoscaling-Modus die Option Ein: der Gruppe Instanzen hinzufügen und aus ihr entfernen aus.
Wählen Sie für Mindestanzahl von Instanzen die Option
2
aus.Wählen Sie unter Maximale Anzahl von Instanzen die Option
3
aus.
Klicken Sie im Abschnitt Portzuordnung auf Port hinzufügen und geben Sie die folgenden Werte ein:
Geben Sie als Portname
http
ein.Geben Sie für Portnummer
80
ein.
Klicken Sie auf Erstellen.
gcloud
Instanzvorlage erstellen:
gcloud compute instance-templates create backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_B_ID
Erstellen Sie eine verwaltete Instanzgruppe und wählen Sie die Instanzvorlage aus, die Sie im vorherigen Schritt erstellt haben:
gcloud compute instance-groups managed create lb-backend \ --zone=us-west1-a \ --size=2 \ --template=backend-template \ --project=SERVICE_PROJECT_B_ID
Benannten Port zur Instanzgruppe hinzufügen:
gcloud compute instance-groups set-named-ports lb-backend \ --named-ports=http:80 \ --zone=us-west1-a \ --project=SERVICE_PROJECT_B_ID
Systemdiagnose erstellen
Systemdiagnosen sind Tests, die die Verfügbarkeit von Back-Ends bestätigen. Erstellen Sie eine Systemdiagnose, die das HTTP-Protokoll und Prüfungen auf Port 80
verwendet. Später hängen Sie diese Systemdiagnose an den Backend-Dienst an, auf den der Load-Balancer verweist.
Console
Rufen Sie in der Google Cloud Console die Compute Engine-Seite Systemdiagnosen auf:
Geben Sie als Namen der Systemdiagnose
lb-health-check
ein.Legen Sie das Protokoll HTTP fest.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine HTTP-Systemdiagnose.
gcloud compute health-checks create http lb-health-check \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
Globalen Backend-Dienst erstellen
Erstellen Sie einen globalen Backend-Dienst, um den Traffic auf die Backends zu verteilen. In diesem Schritt müssen Sie dem Backend-Dienst die erstellte Systemdiagnose zuweisen und die Instanzgruppe dem Backend-Dienst als Backend hinzufügen.
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Gehen Sie zum Abschnitt Back-Ends.
Klicken Sie auf Backend-Dienst erstellen.
Klicken Sie neben Globaler Backend-Dienst auf Erstellen.
Geben Sie als Name des Backend-Dienstes
cross-ref-backend-service
ein.Wählen Sie für den Backend-Typ die Option Instanzgruppe aus.
Legen Sie als Protokoll HTTP fest.
Geben Sie im Feld Benannter Port
http
ein. Dies ist der Portname, den Sie beim Erstellen der verwalteten Instanzgruppe eingegeben haben.So fügen Sie backends zum Backend-Dienst hinzu:
Legen Sie im Bereich Back-Ends die Instanzgruppe auf
lb-backend
fest. Dies ist die verwaltete Instanzgruppe, die Sie in einem vorherigen Schritt erstellt haben.Geben Sie unter Portnummern
80
ein.Klicken Sie auf Fertig, um das Backend hinzuzufügen.
Wählen Sie zum Hinzufügen einer Systemdiagnose in der Liste Systemdiagnose die zuvor erstellte Systemdiagnose
lb-health-check
aus.Klicken Sie auf Erstellen, um den Backend-Dienst zu erstellen.
gcloud
Erstellen Sie einen globalen Backend-Dienst, um den Traffic auf die Backends zu verteilen:
gcloud compute backend-services create cross-ref-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=lb-health-check \ --global \ --project=SERVICE_PROJECT_B_ID
Fügen Sie Ihre Instanzgruppe als Backend zum Backend-Dienst hinzu:
gcloud compute backend-services add-backend cross-ref-backend-service \ --instance-group=lb-backend \ --instance-group-zone=us-west1-a \ --global \ --project=SERVICE_PROJECT_B_ID
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.backendServices.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.backendServices.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 Einzelne Backend-Dienstberechtigungen (Berechtigungen auf Ressourcenebene) den Backend-Dienst aus, dem Sie Zugriff gewähren möchten.
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.
Klicken Sie auf Speichern.
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.backendServices.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.backendServices.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.
Frontend-Komponenten des Load-Balancers in Dienstprojekt A konfigurieren
In diesem Abschnitt müssen Sie die folgenden Frontend-Ressourcen in Dienstprojekt A konfigurieren:
- IP-Adresse
- SSL-Zertifikat
- URL-Zuordnung
- Zielproxy
- Weiterleitungsregel
IP-Adresse des Load-Balancers reservieren
Reservieren Sie eine globale statische externe IP-Adresse, die der Weiterleitungsregel des Load-Balancers zugewiesen werden kann.
Console
Rufen Sie in der Google Cloud Console die VPC-Seite IP-Adressen auf.
Klicken Sie auf Externe statische IP-Adresse reservieren.
Geben Sie für Name
cross-ref-ip-address
ein.Setzen Sie die Netzwerkdienststufe auf Premium.
Setzen Sie die IP-Version auf IPv4.
Setzen Sie Typ auf Global.
Klicken Sie auf Reservieren.
gcloud
Erstellen Sie eine globale statische externe IP-Adresse.
gcloud compute addresses create cross-ref-ip-address \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global \ --project=SERVICE_PROJECT_A_ID
SSL-Zertifikatsressource einrichten
Erstellen Sie für einen Load-Balancer, der HTTPS als Anfrage- und Antwortprotokoll verwendet, eine SSL-Zertifikatsressource, wie in den folgenden Ressourcen beschrieben:
Wir empfehlen die Verwendung eines von Google verwalteten Zertifikats.
In diesem Beispiel wird davon ausgegangen, dass Sie ein SSL-Zertifikat mit dem Namen lb-ssl-cert
erstellt haben. Das SSL-Zertifikat ist mit dem Zielproxy verknüpft, den Sie in einem der folgenden Schritte erstellen.
Frontend-Komponenten erstellen
Console
Die Google Cloud Console wird für projektübergreifende Backend-Dienstverweise derzeit nicht unterstützt. Sie können jedoch über die Google Cloud CLI auf den Backend-Dienst in Dienstprojekt B aus der URL-Zuordnung in Dienstprojekt A verweisen.
gcloud
Optional: Bevor Sie einen Load Balancer mit aufeinander verweisenden Backend-Diensten erstellen, sollten Sie prüfen, ob die Backend-Dienste, auf die Sie verweisen möchten, über eine URL-Zuordnung referenziert werden können:
gcloud compute backend-services list-usable \ --global \ --project=SERVICE_PROJECT_B_ID
Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
gcloud compute url-maps create cross-ref-url-map \ --default-service=projects/SERVICE_PROJECT_B_ID/global/backendServices/cross-ref-backend-service \ --global \ --project=SERVICE_PROJECT_A_ID
Erstellen Sie einen Zielproxy.
Erstellen Sie für HTTP-Traffic einen Ziel-HTTP-Proxy, um Anfragen an die URL-Zuordnung weiterzuleiten:
gcloud compute target-http-proxies create cross-ref-http-proxy \ --url-map=cross-ref-url-map \ --global \ --project=SERVICE_PROJECT_A_ID
Erstellen Sie für HTTPS-Traffic einen Ziel-HTTPS-Proxy, um Anfragen an die URL-Zuordnung weiterzuleiten. Der Proxy ist der Teil des Load-Balancers, der das SSL-Zertifikat für das HTTPS-Load-Balancing besitzt. Daher laden Sie in diesem Schritt auch Ihr Zertifikat.
gcloud compute target-https-proxies create cross-ref-https-proxy \ --url-map=cross-ref-url-map \ --ssl-certificates=lb-ssl-cert --global \ --project=SERVICE_PROJECT_A_ID
Erstellen Sie eine Weiterleitungsregel.
Erstellen Sie für HTTP-Traffic eine globale Weiterleitungsregel, um eingehende Anfragen an den Zielproxy weiterzuleiten:
gcloud compute forwarding-rules create cross-ref-http-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=cross-ref-ip-address \ --global \ --target-http-proxy=cross-ref-http-proxy \ --ports=80 \ --project=SERVICE_PROJECT_A_ID
Erstellen Sie für HTTPS-Traffic eine globale Weiterleitungsregel, um eingehende Anfragen an den Zielproxy weiterzuleiten:
gcloud compute forwarding-rules create cross-ref-https-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=cross-ref-ip-address \ --global \ --target-https-proxy=cross-ref-https-proxy \ --ports=443 \ --project=SERVICE_PROJECT_A_ID
Load-Balancer testen
Die Konfiguration des Load-Balancers kann einige Minuten dauern. Wenn der Load-Balancing-Dienst ausgeführt wird, können Sie Traffic an die Weiterleitungsregel in Dienstprojekt A senden und den Traffic auf verschiedene VM-Instanzen in Dienstprojekt B verteilen
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing in Dienstprojekt A 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.Sie können Ihren Load-Balancer testen, indem Sie Ihren Webbrowser auf
https://LB_IP_ADDRESS
(oderhttp://LB_IP_ADDRESS
) verweisen. Ersetzen SieLB_IP_ADDRESS
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 einem 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 aus dieser Anleitung.
gcloud
Notieren Sie sich die reservierte IP-Adresse:
gcloud compute addresses describe IP_ADDRESS_NAME \ --format="get(address)" \ --global --project=SERVICE_PROJECT_A_ID
Sie können Ihren Load-Balancer testen, indem Sie Ihren Webbrowser auf https://LB_IP_ADDRESS
(oder http://LB_IP_ADDRESS
) verweisen. Ersetzen Sie LB_IP_ADDRESS
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.
Nächste Schritte
- Verwendung freigegebener VPC-Features wie die projektübergreifende Dienstreferenz in Ihrem Projekt mithilfe von Einschränkungen für Organisationsrichtlinien für Cloud Load Balancing einschränken.
- Probleme mit einem globalen externen Application Load Balancer beheben
- Einrichtung des Load-Balancing bereinigen