Globalen externen Application Load Balancer mit freigegebener VPC einrichten

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

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:

  1. Einmalige administrative Aufgaben wie das Einrichten der freigegebenen VPC und das Aktivieren eines Hostprojekts ausführen
  2. 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.

Im Dienstprojekt zugewiesene Rollen
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.

Im Dienstprojekt zugewiesene Rollen
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:

  1. Netzwerk und Subnetze im Hostprojekt konfigurieren.
  2. Freigegebene VPC im Hostprojekt einrichten.

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 Region us-west1 verwendet 10.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

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.
  3. Geben Sie für Name lb-network ein.
  4. Im Bereich Subnetze:

    1. Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    2. Geben Sie im Bereich Neues Subnetz folgende Informationen ein:

      • Name: lb-backend-subnet
      • Region: us-west1

      • IP-Adressbereich: 10.1.2.0/24

    3. Klicken Sie auf Fertig.

  5. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute networks create ein VPC-Netzwerk:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Erstellen Sie ein Subnetz im Netzwerk lb-network in der Region us-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 Subnetz lb-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 (in 130.211.0.0/22 und 35.191.0.0/16). In diesem Beispiel wird das Ziel-Tag load-balanced-backend verwendet, um die Instanzen zu identifizieren, auf die es angewendet werden soll.
Without this firewall rule, the default deny ingress rule blocks incoming traffic to the backend instances.

Alle Schritte in diesem Abschnitt müssen im Hostprojekt ausgeführt werden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.

    Zu den Firewall-Richtlinien

  2. 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 und 35.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 Port 80 Ihre VMs kontaktieren. Es kann jedoch nicht HTTPS auf Port 443 verwenden, um den Kontakt herzustellen.

  3. Klicken Sie auf Erstellen.

gcloud

  1. 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.

Frontend- und Backend-Komponenten des Load-Balancers in einem Dienstprojekt
Abbildung 1. Load balancer's frontend and backend components in one service project

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

  1. Rufen Sie in der Google Cloud Console die Compute Engine-Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie für Name backend-template ein.

  4. 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.

  5. Maximieren Sie den Bereich Erweiterte Optionen.

  6. Maximieren Sie den Abschnitt Netzwerk und geben Sie im Feld Netzwerk-Tags den Wert load-balanced-backend ein.

  7. Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt: HOST_PROJECT_ID) aus.

  8. Wählen Sie in der Liste Freigegebenes Subnetzwerk das Subnetz lb-backend-subnet aus dem Netzwerk lb-network aus.

  9. 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
    
  10. Klicken Sie auf Erstellen.

Erstellen Sie eine verwaltete Instanzgruppe.

  1. Rufen Sie in der Google Cloud Console die Compute Engine-Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.

  3. Wählen Sie aus den Optionen Neue verwaltete Instanzgruppe (zustandslos) aus.

  4. Geben Sie als Namen der Instanzgruppe lb-backend ein.

  5. Wählen Sie in der Liste Instanzvorlage die Instanzvorlage backend-template aus, die Sie im vorherigen Schritt erstellt haben.

  6. 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.

  7. 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.

  8. 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.

  9. Klicken Sie auf Erstellen.

gcloud

  1. 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
    
  2. 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
    
  3. 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

  1. Rufen Sie in der Google Cloud Console die Compute Engine-Seite Systemdiagnosen auf:

    Zur Seite „Systemdiagnosen“

  2. Geben Sie als Namen der Systemdiagnose lb-health-check ein.

  3. Legen Sie das Protokoll HTTP fest.

  4. 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

  1. Rufen Sie in der Google Cloud Console die VPC-Seite IP-Adressen auf.

    "IP-Adressen" aufrufen

  2. Klicken Sie auf Externe statische IP-Adresse reservieren.

  3. Geben Sie für Name lb-ipv4-1 ein.

  4. Setzen Sie die Netzwerkdienststufe auf Premium.

  5. Setzen Sie die IP-Version auf IPv4.

  6. Setzen Sie Typ auf Global.

  7. 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

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  5. Wählen Sie unter Globale oder Einzelregion-Bereitstellung die Option Am besten für globale Arbeitslasten aus und klicken Sie auf Weiter.
  6. Wählen Sie unter Generation des Load Balancers die Option Globaler externer Application Load Balancer aus und klicken Sie auf Weiter.
  7. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie l7-xlb-shared-vpc als Name des Load-Balancers ein.

Load-Balancer-Frontend konfigurieren

Bei HTTP-Traffic:

  1. Klicken Sie auf Frontend-Konfiguration.

  2. Geben Sie für das Frontend das Load-Balancers den Namen http-fw-rule ein.

  3. Wählen Sie für Protokoll die Option HTTP aus.

  4. Setzen Sie die IP-Version auf IPv4.

  5. Wählen Sie unter IP-Adresse die IP-Adresse lb-ipv4-1 aus, die Sie zuvor reserviert haben.

  6. Legen Sie den Port auf 80 fest, um HTTP-Traffic zuzulassen.

  7. Klicken Sie zum Abschließen der Frontend-Konfiguration auf Fertig.

  8. Überprüfen Sie, bevor Sie fortfahren, ob sich neben der Frontend-Konfiguration ein blaues Häkchen befindet.

Bei HTTPS-Traffic:

  1. Klicken Sie auf Frontend-Konfiguration.

  2. Geben Sie für das Frontend das Load-Balancers den Namen https-fw-rule ein.

  3. Wählen Sie für Protokoll die Option HTTPS aus.

  4. Setzen Sie die IP-Version auf IPv4.

  5. Wählen Sie unter IP-Adresse die IP-Adresse lb-ipv4-1 aus, die Sie zuvor reserviert haben.

  6. Legen Sie den Port auf 443 fest, um HTTP-Traffic zuzulassen.

  7. Wählen Sie in der Liste Zertifikat das von Ihnen erstellte SSL-Zertifikat aus.

  8. Klicken Sie zum Abschließen der Frontend-Konfiguration auf Fertig.

  9. Überprüfen Sie, bevor Sie fortfahren, ob sich neben der Frontend-Konfiguration ein blaues Häkchen befindet.

Back-End konfigurieren

  1. Klicken Sie auf Backend-Konfiguration.

  2. Klicken Sie im Menü Backend-Dienste und Backend-Buckets auf Backend-Dienst erstellen.

  3. Geben Sie als Name des Backend-Dienstes lb-backend-service ein.

  4. Wählen Sie für den Backend-Typ die Option Instanzgruppe aus.

  5. Legen Sie als Protokoll HTTP fest.

  6. Geben Sie im Feld Benannter Port http ein. Dies ist der Portname, den Sie beim Erstellen der verwalteten Instanzgruppe eingegeben haben.

  7. So fügen Sie backends zum Backend-Dienst hinzu:

    1. 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.

    2. Geben Sie unter Portnummern 80 ein.

    3. Klicken Sie auf Fertig, um das Backend hinzuzufügen.

  8. Wählen Sie zum Hinzufügen einer Systemdiagnose in der Liste Systemdiagnose die zuvor erstellte Systemdiagnose lb-health-check aus.

  9. Klicken Sie auf Erstellen, um den Backend-Dienst zu erstellen.

  10. Ü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

  1. Klicken Sie auf Prüfen und abschließen.

  2. Prüfen Sie das Frontend und das Backend des Load-Balancers, um sicherzustellen, dass er wie gewünscht konfiguriert ist.

  3. Klicken Sie auf Erstellen und warten Sie, bis der Load-Balancer erstellt ist.

gcloud

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Load-Balancer, den Sie gerade erstellt haben.

  3. Notieren Sie die IP-Adresse des Load-Balancers. Diese IP-Adresse wird in den folgenden Schritten als LB_IP_ADDRESS bezeichnet.

  4. 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.

  5. 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 (oder http://LB_IP_ADDRESS). Ersetzen Sie LB_IP_ADDRESS durch die IP-Adresse des Load-Balancers.

  6. 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.

  7. 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:

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.

  1. In service project B, you'll configure the following backend resources:
    • Backend einer verwalteten Instanzgruppe
    • Systemdiagnose
    • Globaler Backend-Dienst
  2. 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.

Frontend- und Backend-Komponenten des Load-Balancers in verschiedenen Dienstprojekten
Abbildung 2. Load balancer's frontend and backend in different service projects

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

  1. Rufen Sie in der Google Cloud Console die Compute Engine-Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie für Name backend-template ein.

  4. 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.

  5. Maximieren Sie den Bereich Erweiterte Optionen.

  6. Maximieren Sie den Abschnitt Netzwerk und geben Sie im Feld Netzwerk-Tags den Wert load-balanced-backend ein.

  7. Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt: HOST_PROJECT_ID)) aus.

  8. Wählen Sie in der Liste Freigegebenes Subnetzwerk das Subnetz lb-backend-subnet aus dem Netzwerk lb-network aus.

  9. 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
    
  10. Klicken Sie auf Erstellen.

Erstellen Sie eine verwaltete Instanzgruppe.

  1. Rufen Sie in der Google Cloud Console die Compute Engine-Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.

  3. Wählen Sie aus den Optionen Neue verwaltete Instanzgruppe (zustandslos) aus.

  4. Geben Sie als Namen der Instanzgruppe lb-backend ein.

  5. Wählen Sie in der Liste Instanzvorlage die Instanzvorlage backend-template aus, die Sie im vorherigen Schritt erstellt haben.

  6. 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.

  7. 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.

  8. 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.

  9. Klicken Sie auf Erstellen.

gcloud

  1. 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
    
  2. 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
    
  3. 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

  1. Rufen Sie in der Google Cloud Console die Compute Engine-Seite Systemdiagnosen auf:

    Zur Seite „Systemdiagnosen“

  2. Geben Sie als Namen der Systemdiagnose lb-health-check ein.

  3. Legen Sie das Protokoll HTTP fest.

  4. 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

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Gehen Sie zum Abschnitt Back-Ends.

  3. Klicken Sie auf Backend-Dienst erstellen.

  4. Klicken Sie neben Globaler Backend-Dienst auf Erstellen.

  5. Geben Sie als Name des Backend-Dienstes cross-ref-backend-service ein.

  6. Wählen Sie für den Backend-Typ die Option Instanzgruppe aus.

  7. Legen Sie als Protokoll HTTP fest.

  8. Geben Sie im Feld Benannter Port http ein. Dies ist der Portname, den Sie beim Erstellen der verwalteten Instanzgruppe eingegeben haben.

  9. So fügen Sie backends zum Backend-Dienst hinzu:

    1. 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.

    2. Geben Sie unter Portnummern 80 ein.

    3. Klicken Sie auf Fertig, um das Backend hinzuzufügen.

  10. Wählen Sie zum Hinzufügen einer Systemdiagnose in der Liste Systemdiagnose die zuvor erstellte Systemdiagnose lb-health-check aus.

  11. Klicken Sie auf Erstellen, um den Backend-Dienst zu erstellen.

gcloud

  1. 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
    
  2. 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.

  1. Rufen Sie in der Google Cloud Console die Seite Freigegebene Load-Balancing-Dienste auf.

    Zu den Load-Balancing-Diensten

  2. Wählen Sie im Abschnitt Alle Backend-Dienstberechtigungen (Berechtigungen auf Projektebene) Ihr Projekt aus.

  3. Wenn das Feld "Berechtigungen" nicht sichtbar ist, klicken Sie auf Bereich "Berechtigungen" anzeigen. Der Bereich Berechtigungen auf Projektebene wird rechts geöffnet.

  4. Klicken Sie auf Hauptkonto hinzufügen.

  5. Geben Sie unter Neue Hauptkonten die E-Mail-Adresse oder die andere Kennung des Hauptkontos ein.

  6. Wählen Sie unter Rolle die Rolle Nutzer von Compute-Load-Balancer-Diensten aus der Drop-down-Liste aus.

  7. Optional: Fügen Sie der Rolle eine Bedingung hinzu.

  8. 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.

  1. Rufen Sie in der Google Cloud Console die Seite Freigegebene Load-Balancing-Dienste auf.

    Zu den Load-Balancing-Diensten

  2. Wählen Sie im Abschnitt Einzelne Backend-Dienstberechtigungen (Berechtigungen auf Ressourcenebene) den Backend-Dienst aus, dem Sie Zugriff gewähren möchten.

  3. Klicken Sie auf Hauptkonto hinzufügen.

  4. Geben Sie unter Neue Hauptkonten die E-Mail-Adresse oder die andere Kennung des Hauptkontos ein.

  5. Wählen Sie unter Rolle die Rolle Nutzer von Compute-Load-Balancer-Diensten aus der Drop-down-Liste aus.

  6. 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

  1. Rufen Sie in der Google Cloud Console die VPC-Seite IP-Adressen auf.

    "IP-Adressen" aufrufen

  2. Klicken Sie auf Externe statische IP-Adresse reservieren.

  3. Geben Sie für Name cross-ref-ip-address ein.

  4. Setzen Sie die Netzwerkdienststufe auf Premium.

  5. Setzen Sie die IP-Version auf IPv4.

  6. Setzen Sie Typ auf Global.

  7. 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

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing in Dienstprojekt A auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Load-Balancer, den Sie gerade erstellt haben.

  3. Notieren Sie die IP-Adresse des Load-Balancers. Diese IP-Adresse wird in den folgenden Schritten als LB_IP_ADDRESS bezeichnet.

  4. 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.

  5. 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.

  6. 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