In diesem Dokument erfahren Sie, wie Sie einen globalen externen Application Load Balancer mit einem Backend-Dienst und einem Backend-Bucket erstellen, die sich in einem anderen Projekt als das Frontend des Load Balancers und die URL-Zuordnung befinden. Dieses Bereitstellungsmodell wird als projektübergreifender Dienstverweis bezeichnet.
Im Beispiel in diesem Dokument wird keine freigegebene VPC-Umgebung verwendet, um projektübergreifende Dienstverweise zu konfigurieren. Weitere Informationen zum Konfigurieren von projektübergreifenden Dienstverweisen in einer Umgebung mit freigegebene VPC finden Sie unter Globalen externen Application Load Balancer mit freigegebener VPC einrichten.
Hinweise
Richten Sie Ihr System so ein, dass die folgenden Voraussetzungen erfüllt sind.
Erforderliche IAM-Rollen und -Berechtigungen
Damit Sie diesem Leitfaden folgen können, benötigen Sie die folgenden IAM-Rollen:
Aufgabe | Erforderliche Rolle |
---|---|
Projekt erstellen | Rolle „Projektersteller“ (roles/resourcemanager.projectCreator )
|
Computing-Ressourcen erstellen | Rolle „Compute-Netzwerkadministrator“ (roles/compute.networkAdmin )
|
Cloud Storage-Buckets erstellen | Rolle „Storage-Objekt-Administrator“ (roles/storage.objectAdmin )
|
Ressource aus einem anderen Projekt verwenden In diesem Beispiel verweist Projekt A auf den Backend-Dienst und den Backend-Bucket in Projekt B. |
In diesem Beispiel muss ein Administrator von Projekt B dem Administrator von Projekt A die Rolle Nutzer von Compute-Load-Balancer-Diensten ( Weitere Informationen zum Zuweisen dieser Rolle finden Sie unter Dem Compute Load Balancer-Administrator die Berechtigungen erteilen, den Backend-Dienst zu verwenden. |
Google Cloud Projekte erstellen
Folgen Sie für das Beispiel in diesem Dokument der Anleitung zweimal, um zwei Google Cloud -Projekte zu erstellen.
Console
So erstellen Sie ein neues Projekt:
-
Öffnen Sie in der Google Cloud Console die Seite Ressourcen verwalten.
Zur Seite „Ressourcen verwalten“
Die verbleibenden Schritte werden in der Google Cloud Console angezeigt.
- Wählen Sie oben auf der Seite in der Drop-down-Liste Organisation auswählen die Organisationsressource aus, in der Sie ein Projekt erstellen möchten. Wenn Sie eine kostenlose Testversion verwenden, überspringen Sie diesen Schritt, da diese Liste dann nicht angezeigt wird.
- Klicken Sie auf Projekt erstellen.
- Geben Sie im angezeigten Fenster Neues Projekt einen Projektnamen ein und wählen Sie ggf. ein Rechnungskonto aus. Ein Projektname darf nur Buchstaben, Zahlen, einfache Anführungszeichen, Bindestriche, Leerzeichen oder Ausrufezeichen enthalten und muss zwischen 4 und 30 Zeichen lang sein.
- Geben Sie die übergeordnete Organisations- oder Ordnerressource in das Feld Speicherort ein. Diese Ressource ist das hierarchisch übergeordnete Element des neuen Projekts. Wenn die Option Keine Organisation angezeigt wird, können Sie sie auswählen, um das neue Projekt als oberste Ebene seiner eigenen Ressourcenhierarchie zu erstellen.
- Nachdem Sie die Details zum neuen Projekt eingegeben haben, klicken Sie auf Erstellen.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Verwenden Sie zum Erstellen eines neuen Projekts den Befehl
gcloud projects create
:gcloud projects create PROJECT_ID
Dabei steht PROJECT_ID für die ID des Projekts, das Sie erstellen möchten. Die Projekt-ID muss mit einem Kleinbuchstaben beginnen, 6 bis 30 Zeichen lang sein und darf nur ASCII-Buchstaben, Ziffern oder Bindestriche enthalten.
Einrichtung: Übersicht
Wie im folgenden Diagramm dargestellt, werden das Frontend und die URL-Zuordnung eines globalen externen Application Load Balancers in einem anderen Projekt erstellt als der Backend-Dienst und der Backend-Bucket des Load Balancers. Bei dieser Art der projektübergreifenden Bereitstellung wird keine freigegebene VPC-Umgebung verwendet.
In dieser Konfiguration leitet die URL-Zuordnung Anfragen für statische Inhalte (/images/*
) an einen Back-End-Bucket weiter, während alle anderen Anfragen an den Standard-Back-End-Dienst weitergeleitet werden.
Die folgende Tabelle bietet einen Überblick über die Ressourcen, die in Projekt A und Projekt B erstellt werden. Das Frontend und die URL-Zuordnung des Load Balancers werden in Projekt A erstellt, die Backend-Komponenten in Projekt B.
In Projekt A erstellte Ressourcen | In Projekt B erstellte Ressourcen |
---|---|
|
|
In den folgenden Abschnitten konfigurieren wir die verschiedenen in der vorherigen Tabelle aufgeführten Ressourcen. Beginnen wir mit der Konfiguration eines VPC-Netzwerk und eines Subnetzes für die Back-End-VMs des Load Balancers in Projekt B.
Netzwerk und Subnetz für die Backend-VMs des Load Balancers in Projekt B konfigurieren
In diesem Beispiel werden die Back-End-VMs im folgenden Netzwerk und Subnetz erstellt:
Netzwerk: Das Netzwerk ist ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen
lb-network
.Subnetz für die Backend-VMs 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. Die primären und sekundären IPv4-Adressbereiche eines Subnetzes sind regionale interne IPv4-Adressen. Weitere Informationen finden Sie unter Gültige IPv4-Bereiche.
Console
Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
lb-network
ein.Wählen Sie im Abschnitt Subnetze als Modus für die Subnetzerstellung Benutzerdefiniert aus.
Geben Sie im Abschnitt Neues Subnetz die folgenden Informationen ein:
- Name:
lb-backend-subnet
- Wählen Sie eine Region aus:
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 benutzerdefiniertes VPC-Netzwerk mit dem Namenlb-network
.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=PROJECT_B_ID
Erstellen Sie mit dem Befehl
gcloud compute networks subnets create
ein Subnetz im VPC-Netzwerklb-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 \ --project=PROJECT_B_ID
Backend-Dienst in Projekt B konfigurieren
So konfigurieren Sie einen Back-End-Dienst:
- Erstellen Sie eine Instanzvorlage.
- Erstellen Sie eine Instanzgruppe:
- Erstellen Sie eine Systemdiagnose.
- Erstellen Sie eine Firewallregel.
- Erstellen Sie einen Back-End-Dienst.
Instanzvorlage 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
Rufen Sie in der Google Cloud Console die Seite Compute Engine-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.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags den Wert
load-balanced-backend
ein. - Konfigurieren Sie im Bereich Netzwerkschnittstellen die folgenden Felder:
- Netzwerk:
lb-network
- Subnetz:
lb-backend-subnet
- IP-Stack-Typ: IPv4
- Netzwerk:
- Klicken Sie auf Fertig.
- Geben Sie bei Netzwerk-Tags den Wert
Maximieren Sie die Verwaltung. Geben Sie im Feld Startskript das folgende Skript ein:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine Instanzvorlage.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --region=us-west1 \ --network=projects/PROJECT_B_ID/global/networks/lb-network \ --subnet=projects/PROJECT_B_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 # Retrieve the instance name from metadata vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" # Create an index file echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html # Restart Apache to apply changes systemctl restart apache2' \ --project=PROJECT_B_ID
Erstellen Sie eine verwaltete Instanzgruppe.
Console
Rufen Sie in der Google Cloud Console die Seite Compute Engine-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
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 INSTANCE_GROUP_NAME \ --zone=us-west1-a \ --size=2 \ --template=INSTANCE_TEMPLATE_NAME \ --project=PROJECT_B_ID
Benannten Port zur Instanzgruppe hinzufügen:
gcloud compute instance-groups set-named-ports INSTANCE_GROUP_NAME \ --named-ports=http:80 \ --zone=us-west1-a \ --project=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=PROJECT_B_ID
Firewallregel erstellen
Für die Systemdiagnoseprüfungen müssen Sie eine Firewallregel zum Zulassen von eingehendem Traffic auf Netzwerkebene erstellen. In diesem Beispiel ist das lb-network
. Mit dieser Firewallregel können Systemdiagnoseprüfungen Ihre Back-End-Instanzen erreichen. In diesem Beispiel wird die folgende Firewallregel 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 (130.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 sie angewendet werden soll.
Console
Rufen Sie in der Google Cloud Console die Seite Firewall-Richtlinien auf.
Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen auf der Client-VM zulässt:
- Name:
fw-allow-health-check
- Netzwerk:
lb-network
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Ziel-Tags
- 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.
- Klicken Sie das Kästchen TCP an und geben Sie
80
als Portnummer ein. Sie sollten diese Regeln nur auf Protokolle und Ports beschränken, die mit den von Ihren Systemdiagnosen verwendeten übereinstimmen. Wenn Sie „tcp:80“ für das Protokoll und den Port verwenden,kann Google Cloud Ihre VMs über HTTP an Port 80 kontaktieren, aber nicht über HTTPS an Port 443.
- Name:
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Firewallregel
fw-allow-health-check
, umGoogle 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 FIREWALL_RULE_NAME \ --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 \ --project=PROJECT_B_ID
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 BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=HEALTH_CHECK_NAME \ --global \ --project=PROJECT_B_ID
Fügen Sie Ihre Instanzgruppe als Backend zum Backend-Dienst hinzu:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP_NAME \ --instance-group-zone=us-west1-a \ --global \ --project=PROJECT_B_ID
Backend-Bucket in Projekt B konfigurieren
So erstellen Sie einen Back-End-Bucket:
- Erstellen Sie den Cloud Storage-Bucket.
- Kopieren Sie Inhalte in den Bucket.
- Machen Sie den Bucket öffentlich zugänglich.
- Erstellen Sie einen Backend-Bucket und verweisen Sie darauf.
Cloud Storage-Bucket erstellen
Console
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie auf
Erstellen.Geben Sie im Feld Bucket benennen einen global eindeutigen Namen ein, der den Benennungsrichtlinien entspricht.
Klicken Sie auf Speicherort für Daten auswählen.
Legen Sie Standorttyp auf Region fest.
Wählen Sie in der Liste der Regionen us-east1 aus.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie mit dem Befehl
gcloud storage buckets create
einen Bucket in der Regionus-east1
.gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=PROJECT_B_ID
Ersetzen Sie die Variable BUCKET_NAME durch den Namen Ihres Cloud Storage-Bucket.
Grafikdatei in den Cloud Storage-Bucket kopieren
Führen Sie in Cloud Shell den folgenden Befehl aus und ersetzen Sie die Variablen für die Bucket-Namen durch den Namen Ihres Cloud Storage-Buckets, um die Grafikdatei aus einem öffentlichen Cloud Storage-Bucket in den Ordner images/
in Ihrem eigenen Cloud Storage-Bucket zu kopieren:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET_NAME/images/
Ihren Cloud Storage-Bucket öffentlich lesbar machen
Wenn Sie alle Objekte in einem Bucket für alle Nutzer im öffentlichen Internet lesbar machen möchten, weisen Sie dem Hauptkonto allUsers
die Rolle „Storage-Objekt-Betrachter“ (roles/storage.objectViewer
) zu.
Console
Um allen Nutzern Zugriff auf Objekte in Ihren Buckets zu gewähren, wiederholen Sie das folgende Verfahren für jeden Bucket:
- Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.
Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie veröffentlichen möchten.
Wählen Sie oben auf der Seite den Tab Berechtigungen aus.
Klicken Sie im Bereich Berechtigungen auf die Schaltfläche
Zugriff gewähren. Das Dialogfeld Zugriff gewähren wird angezeigt.Geben Sie im Feld Neue Hauptkonten
allUsers
ein.Geben Sie im Feld Rolle auswählen
Storage Object Viewer
in das Filterfeld ein und wählen Sie Storage-Objekt-Betrachter aus den gefilterten Ergebnissen aus.Klicken Sie auf Speichern.
Klicken Sie auf Öffentlichen Zugriff erlauben.
gcloud
Führen Sie den Befehl buckets add-iam-policy-binding
aus, um allen Nutzern Zugriff auf Objekte in Ihren Buckets zu gewähren.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
Ersetzen Sie die Variablen für den Bucket-Namen durch die eindeutigen Namen Ihrer Cloud Storage-Buckets.
Backend-Bucket erstellen
Back-End-Buckets dienen als Wrapper für die zuvor erstellten Cloud Storage-Buckets. Sie leiten eingehenden Traffic an Cloud Storage-Buckets weiter.
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Gehen Sie zum Abschnitt Back-Ends.
Klicken Sie auf Backend-Bucket erstellen.
Geben Sie einen Namen für den Backend-Bucket ein.
Wählen Sie einen Cloud Storage-Bucket aus, auf den Ihr Back-End-Bucket verweisen soll.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie einen Backend-Bucket mit dem Befehl gcloud compute backend-buckets create
in Projekt B.
gcloud compute backend-buckets create BACKEND_BUCKET_NAME \ --gcs-bucket-name=BUCKET_NAME \ --project=PROJECT_B_ID
Frontend-Komponenten des Load Balancers in Projekt A konfigurieren
In diesem Abschnitt erfahren Sie, wie Sie die folgenden Load Balancer-Frontend-Komponenten in Projekt 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 Seite VPC-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 IP_ADDRESS_NAME \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global \ --project=PROJECT_A_ID
SSL-Zertifikatsressource einrichten
In diesem Beispiel können Sie HTTP oder HTTPS als Anfrage- und Antwortprotokoll zwischen dem Client und dem Load-Balancer verwenden. Zum Erstellen eines HTTPS-Load-Balancers müssen Sie dem Frontend des Load-Balancers eine SSL-Zertifikatsressource hinzufügen.
Erstellen Sie eine SSL-Zertifikatsressource, wie in der folgenden Dokumentation beschrieben:
Wir empfehlen die Verwendung eines von Google verwalteten Zertifikats.
Nachdem Sie das Zertifikat erstellt haben, können Sie es an den HTTPS-Zielproxy anhängen.
Komponenten eines globalen externen Application Load Balancers konfigurieren
Console
Konfiguration starten
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option 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 einen Namen für den Load Balancer ein.
- Lassen Sie die Seite geöffnet, um fortzufahren.
Frontend konfigurieren
Bei HTTP:
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie einen Namen für die Weiterleitungsregel ein.
- Legen Sie als Protokoll
HTTP
fest. - Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren 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.
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie einen Namen für die Weiterleitungsregel ein.
- Wählen Sie im Feld Protokoll die Option
HTTPS (includes HTTP/2)
aus. - Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren erstellt haben.
- Achten Sie darauf, dass der Port auf
443
festgelegt ist, um HTTPS-Traffic zuzulassen. - Klicken Sie auf die Liste Zertifikat.
- Wählen Sie den Namen des SSL-Zertifikats aus, das Sie zuvor erstellt haben.
- 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 Projekt B ein.
- Wählen Sie in der Liste Backend-Dienste auswählen den gewünschten Backend-Dienst aus Projekt B aus.
- Klicken Sie auf OK.
Routingregeln konfigurieren
Klicken Sie auf Routingregeln.
Wählen Sie als Modus Erweiterte Host- und Pfadregel aus.
Wählen Sie Host- und Pfadregel hinzufügen aus.
Geben Sie im Feld Hosts
*
ein, um alle Hostnamen abzugleichen.Geben Sie im Abschnitt Patch-Matcher die folgende YAML-Konfiguration ein.
defaultService: projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME name: PATH_MATCHER_NAME pathRules: - paths: - /images/* service: projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
Der Pfad-Matcher besteht in diesem Beispiel aus einer Pfadregel und einem Standarddienst. Die Pfadregel leitet alle Anfragen an
/images/*
an einen Backend-Bucket weiter. Alle anderen Anfragen werden an den Standard-Back-End-Dienst weitergeleitet.Klicken Sie auf Fertig.
Weitere Informationen zur Trafficverwaltung finden Sie unter Trafficverwaltung – Übersicht.
Konfiguration prüfen und fertigstellen
Sehen Sie sich die verschiedenen Komponenten des Load Balancers an, die Sie in den vorherigen Schritten konfiguriert haben. Sie sehen, dass der Abschnitt Backends sowohl auf den Backend-Dienst als auch auf den Backend-Bucket verweist.
Klicken Sie auf Erstellen.
gcloud
So erstellen Sie die oben genannten Load Balancing-Komponenten mit der gcloud CLI:
Erstellen Sie eine URL-Zuordnung mit dem Befehl
gcloud compute url-maps create
.gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --global \ --project=PROJECT_A_ID
Fügen Sie der URL-Zuordnung einen Pfad-Matcher hinzu. Der Pfad-Matcher besteht in diesem Beispiel aus einer Pfadregel und einem Standarddienst. Die Pfadregel leitet alle Anfragen an
/images/*
an einen Back-End-Bucket weiter. Alle anderen Anfragen werden an den Standard-Back-End-Dienst weitergeleitet.gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER_NAME \ --default-service=projects/PROJECT_B_ID/global/backendServices/BACKEND_SERVICE_NAME \ --backend-bucket-path-rules=/images/*=projects/PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME
Erstellen Sie einen Zielproxy mit dem Befehl
gcloud compute target-http-proxies create
.Erstellen Sie für HTTP-Traffic einen Ziel-HTTP-Proxy, um Anfragen an die URL-Zuordnung weiterzuleiten:
gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --global \ --project=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 einen HTTPS-Load Balancer enthält. Nachdem Sie das Zertifikat erstellt haben, können Sie es an den HTTPS-Zielproxy anhängen.
gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \ --url-map=URL_MAP_NAME \ --ssl-certificates=CERTIFICATE_NAME \ --global \ --project=PROJECT_A_ID
Ersetzen Sie
CERTIFICATE_NAME
durch den Namen des SSL-Zertifikats.Erstellen Sie mit dem Befehl
gcloud compute forwarding-rules create
eine globale Weiterleitungsregel.Erstellen Sie für HTTP-Traffic globale Weiterleitungsregeln, um eingehende Anfragen an den HTTP-Zielproxy weiterzuleiten:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-http-proxy=TARGET_HTTP_PROXY_NAME \ --ports=80 \ --project=PROJECT_A_ID
Erstellen Sie für HTTPS-Traffic globale Weiterleitungsregeln, um eingehende Anfragen an den HTTPS-Zielproxy weiterzuleiten:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --address=IP_ADDRESS_NAME \ --global \ --target-https-proxy=TARGET_HTTPS_PROXY_NAME \ --ports=443 \ --project=PROJECT_A_ID
Load-Balancer testen
Es kann einige Minuten dauern, bis der Load Balancer konfiguriert ist. Anschließend können Sie eine Anfrage an den Load Balancer senden. In diesem Beispiel wird die Anfrage an die HTTP-Weiterleitungsregel des Load Balancers gesendet.
Rufen Sie die IP-Adresse der HTTP-Weiterleitungsregel des Load Balancers ab.
gcloud compute forwarding-rules describe HTTP_FORWARDING_RULE_NAME \ --global
Wenn Sie Ihren Browser auf http://IP_ADDRESS verweisen, wird die Anfrage an den Back-End-Dienst weitergeleitet, der eine Seite mit minimalen Informationen zur Back-End-Instanz zurückgibt.
Wenn Sie Ihren Browser jedoch auf http://IP_ADDRESS/images/drei-katzen.jpg verweisen, wird die Anfrage an /images/*
an den Back-End-Bucket weitergeleitet, der die Grafikdatei zurückgibt.
Nächste Schritte
- Übersicht über externen Application Load Balancer
- SSL-Zertifikate
- Load-Balancing-Einrichtung bereinigen