Regionale externe HTTP(S)-Load-Balancer mit freigegebener VPC einrichten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Dieses Dokument zeigt zwei Beispielkonfigurationen zum Einrichten eines regionalen externen HTTP(S)-Load-Balancers in einer Umgebung mit freigegebener VPC:

  • Im ersten Beispiel werden alle Load-Balancer-Komponenten und Back-Ends im Dienstprojekt erstellt.
  • Im zweiten Beispiel werden die Front-End-Komponenten und die URL-Zuordnung des Load-Balancers in einem Dienstprojekt und der Back-End-Dienst und die Back-Ends des Load-Balancers in einem anderen Dienstprojekt erstellt. Diese Art der Bereitstellung, bei der die URL-Zuordnung auf einen Back-End-Dienst in einem anderen Projekt verweist, wird als projektübergreifender Dienstverweis bezeichnet.

Beide Beispiele erfordern dieselbe Erstkonfiguration, um Berechtigungen zu erteilen und eine freigegebene VPC einzurichten, bevor Sie Load-Balancer erstellen können.

Dies sind nicht die einzigen Konfigurationen für freigegebene VPCs, die vom regionalen externen HTTP(S)-Load-Balancer unterstützt werden. Weitere Architekturen mit freigegebener VPC finden Sie unter Architekturen freigegebener VPCs.

Wenn Sie kein freigegebenes VPC-Netzwerk verwenden möchten, lesen Sie die Informationen unter Regionale externe HTTP(S)-Load-Balancer einrichten.

Vorbereitung

  1. Weitere Informationen finden Sie unter Freigegebene VPC – Übersicht.
  2. Weitere Informationen finden Sie unter Übersicht über externe HTTP(S)-Load-Balancer, einschließlich des Abschnitts Architekturen freigegebener VPCs.

Erforderliche Berechtigungen

Das Einrichten eines regionalen externen HTTP(S)-Load-Balancers für eine freigegebene VPC 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 Back-End-Komponenten des Load-Balancers (Back-End-Dienst und Back-Ends) 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 regionalen externen HTTP(S)-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 Back-End-Dienste referenzieren

Wenn Ihr Load-Balancer auf Back-End-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 Back-End-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 Back-End-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

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.

Freigegebene VPC mit einem Host- und Dienstprojekt einrichten

  1. Freigegebene VPC einrichten.
  2. Hostprojekt aktivieren.
  3. Dienstprojekt anhängen

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.

Netzwerk und Subnetze im Hostprojekt konfigurieren

Sie benötigen ein freigegebenes VPC-Netzwerk mit zwei Subnetzen: eines für das Front-End und die Back-Ends des Load-Balancers und das andere für die Proxys des Load-Balancers.

In diesem Beispiel werden die folgenden Netzwerke, Regionen und Subnetze verwendet:

  • Netzwerk Das Netzwerk hat den Namen lb-network.

  • Subnetz für das Front-End und die Back-Ends des Load-Balancers Ein Subnetz mit dem Namen lb-frontend-and-backend-subnet in der Region us-west1 verwendet 10.1.2.0/24 für seinen primären IP-Bereich.

  • Subnetz für Proxys Ein Subnetz mit dem Namen proxy-only-subnet in der Region us-west1 verwendet 10.129.0.0/23 für seinen primären IP-Bereich.

Subnetz für das Front-End und die Back-Ends des Load-Balancers konfigurieren

Dieser Schritt muss nicht jedes Mal ausgeführt werden, wenn Sie einen neuen Load-Balancer erstellen möchten. Sie müssen nur sicherstellen, dass das Dienstprojekt Zugriff auf ein Subnetz im freigegebenen VPC-Netzwerk hat (zusätzlich zum Nur-Proxy-Subnetz).

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

Console

  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 im Feld 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-frontend-and-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-frontend-and-backend-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-west1
    

Nur-Proxy-Subnetz konfigurieren

Das Nur-Proxy-Subnetz wird von allen regionalen Envoy-basierten Load-Balancern in der Region us-west1 im VPC-Netzwerk lb-network verwendet. Pro Region und Netzwerk kann nur ein Nur-Proxy-Subnetz aktiv sein.

Führen Sie diesen Schritt nicht aus, wenn bereits ein Nur-Proxy-Subnetz in der Region us-west1 in diesem Netzwerk reserviert ist.

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

Console

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

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf den Namen des freigegebenen VPC-Netzwerks: lb-network.
  3. Klicken Sie auf Subnetz hinzufügen.
  4. Geben Sie im Feld Name proxy-only-subnet ein.
  5. Wählen Sie us-west1 als Region aus.
  6. Setzen Sie Zweck auf Regional verwalteter Proxy.
  7. Geben Sie 10.129.0.0/23 als IP-Adressbereich ein.
  8. Klicken Sie auf Hinzufügen.

gcloud

Erstellen Sie das Nur-Proxy-Subnetz mit dem Befehl gcloud compute networks subnets create.

gcloud compute networks subnets create proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=us-west1 \
  --network=lb-network \
  --range=10.129.0.0/23

Gewähren Sie Dienstprojektadministratoren Zugriff auf das Back-End-Subnetz

Dienstprojektadministratoren benötigen Zugriff auf das Subnetz lb-frontend-and-backend-subnet, damit sie die Back-Ends des Load-Balancers bereitstellen können.

Ein Administrator der freigegebenen VPC muss Dienstprojektadministratoren (oder Entwicklern, die Ressourcen und Back-Ends bereitstellen, die das Subnetz verwenden) Zugriff auf das Back-End-Subnetz gewähren. 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.

  • fw-allow-proxies. Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und TCP-Traffic über Port 80, 443und 8080 von den verwalteten Proxys des internen HTTP(S)-Load-Balancers zulässt. In diesem Beispiel wird das Ziel-Tag load-balanced-backend verwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden soll.

Ohne diese Firewallregeln blockiert die Standardregel zum Ablehnen von eingehendem Traffic den eingehenden Traffic zu den Back-End-Instanzen.

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

Console

  1. Rufen Sie in der Google Cloud Console die Seite Firewallregeln auf.

    Zu Firewallregeln

  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 Ziel-Tags
    • 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 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 HTTP auf Port 80 verwenden, um Ihre VMs zu kontaktieren. Es kann HTTPS jedoch nicht auf Port 443 verwenden, um den Kontakt herzustellen.
  3. Klicken Sie auf Erstellen.
  4. Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die dem Nur-Proxy-Subnetz des Load-Balancers die Verbindung mit den Back-Ends ermöglicht:
    • Name: fw-allow-proxies
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: load-balanced-backend
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 10.129.0.0/23
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Prüfen Sie tcp und geben Sie 80, 443, 8080 für die Portnummern ein.
  5. Klicken Sie auf Erstellen.

gcloud

  • Erstellen Sie die Regel fw-allow-health-check, um Google Cloud-Systemdiagnosen zuzulassen. In diesem Beispiel wird der gesamte TCP-Traffic von Systemdiagnosetests zugelassen. Sie können jedoch Ihren Anforderungen entsprechend eine kleinere Gruppe von Ports konfigurieren:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --target-tags=load-balanced-backend \
        --rules=tcp
    
  • Erstellen Sie die Regel fw-allow-proxies, um Traffic von dem Nur-Proxy-Subnetz zuzulassen, das Ihre Back-Ends erreicht.

    gcloud compute firewall-rules create fw-allow-proxies \
      --network=lb-network \
      --action=allow \
      --direction=ingress \
      --source-ranges=10.129.0.0/23 \
      --target-tags=load-balanced-backend \
      --rules=tcp:80,tcp:443,tcp:8080
    
  • Load-Balancer im Dienstprojekt konfigurieren

    In diesem Beispiel wird ein regionaler externer HTTP(S)-Load-Balancer erstellt, bei dem alle Load-Balancing-Komponenten (Weiterleitungsregel, Ziel-Proxy, URL-Zuordnung und Back-End-Dienst) und Back-Ends im Dienstprojekt erstellt werden.

    Die Netzwerkressourcen des regionalen externen HTTP(S)-Load-Balancers wie das Nur-Proxy-Subnetz und das Subnetz für die Back-End-Instanzen werden im Hostprojekt erstellt. Die Firewallregeln für die Back-End-Instanzen werden auch im Hostprojekt erstellt.

    Regionaler externer HTTP(S)-Load-Balancer in freigegebener VPC
    Regionaler externer HTTP(S)-Load-Balancer in freigegebener VPC

    In diesem Abschnitt erfahren Sie, wie Sie den Load-Balancer und die Back-Ends einrichten. Diese Schritte sollten vom Dienstprojektadministrator (oder einem innerhalb des Dienstprojekts tätigen Entwickler) durchgeführt werden und erfordern keine Einbeziehung des Hostprojektadministrators. Die Schritte in diesem Abschnitt ähneln weitgehend den Standardschritten zum Einrichten regionaler externer HTTP(S)-Load-Balancer.

    Im Beispiel auf dieser Seite wird explizit eine reservierte IP-Adresse für die Weiterleitungsregel des regionalen externen HTTP(S)-Load-Balancers festgelegt, statt die Zuweisung einer sitzungsspezifischen IP-Adresse zuzulassen. Als Best Practice empfehlen wir, IP-Adressen für Weiterleitungsregeln zu reservieren.

    Back-End einer verwalteten Instanzgruppe erstellen

    In diesem Abschnitt erfahren Sie, wie Sie eine Instanzvorlage und ein Back-End für eine verwaltete Instanzgruppe erstellen. Der Traffic von Clients wird auf VMs in diesen Instanzgruppen verteilt.

    Console

    1. eine Instanzvorlage erstellen Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

      Zu Instanzvorlagen

      1. Klicken Sie auf Instanzvorlage erstellen.
      2. Geben Sie für Name l7-xlb-backend-template ein.
      3. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get. Wenn Sie das Bootlaufwerk ändern müssen, klicken Sie auf Ändern.
        1. Wählen Sie als Betriebssystem die Option Debian aus.
        2. Wählen Sie für Version eines der verfügbaren Debian-Images aus, z. B. Debian GNU/Linux 10 (buster).
        3. Klicken Sie auf Auswählen.
      4. Klicken Sie auf Erweiterte Optionen und dann auf Netzwerk.
      5. Geben Sie die folgenden Netzwerk-Tags ein: load-balanced-backend.
      6. Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt: HOST_PROJECT_ID) aus.
      7. Wählen Sie das Subnetz lb-frontend-and-backend-subnet aus dem Netzwerk lb-network aus.
      8. Klicken Sie auf Verwaltung. Fügen Sie unter Verwaltung das folgende Skript in das Feld Startskript ein.

        #! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://169.254.169.254/computeMetadata/v1/instance/name)"
        sudo echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        sudo systemctl restart apache2
        
      9. Klicken Sie auf Erstellen.

    2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

      Zu den Instanzgruppen

      1. Klicken Sie auf Instanzgruppe erstellen.
      2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
      3. Geben Sie für Name l7-xlb-backend-example ein.
      4. Wählen Sie für Standort die Option Einzelne Zone aus.
      5. Wählen Sie als Region us-west1 aus.
      6. Wählen Sie als Zone us-west1-a aus.
      7. Wählen Sie bei Instanzvorlage die Option l7-xlb-backend-template aus.
      8. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.

        Geben Sie für dieses Beispiel für Autoscaling die folgenden Optionen an:

        • Wählen Sie für Autoscaling-Modus Off:do not autoscale aus.
        • Geben Sie für Maximale Anzahl von Instanzen den Wert 2 ein.

        Optional können Sie im Abschnitt Autoscaling die Instanzgruppe so konfigurieren, dass Instanzen basierend auf der CPU-Auslastung automatisch hinzugefügt oder entfernt werden.

      9. Klicken Sie auf Erstellen.

    gcloud

    Bei den gcloud-Anleitungen in diesem Handbuch wird davon ausgegangen, dass Sie Cloud Shell oder eine andere Umgebung verwenden, in der Bash installiert ist.

    1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine VM-Instanzvorlage mit HTTP-Server.

      gcloud compute instance-templates create l7-xlb-backend-template \
      --region=us-west1 \
      --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
      --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \
      --tags=load-balanced-backend \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --metadata=startup-script='#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo a2ensite default-ssl
      sudo a2enmod ssl
      sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://169.254.169.254/computeMetadata/v1/instance/name)"
      sudo echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      sudo systemctl restart apache2' \
      --project=SERVICE_PROJECT_ID
      
    2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine verwaltete Instanzgruppe in der Zone.

      gcloud compute instance-groups managed create l7-xlb-backend-example \
          --zone=us-west1-a \
          --size=2 \
          --template=l7-xlb-backend-template \
          --project=SERVICE_PROJECT_ID
      

    IP-Adresse des Load-Balancers im Dienstprojekt reservieren

    Reservieren Sie im Dienstprojekt eine regionale statische externe IP-Adresse für den Load-Balancer.

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

    Console

    1. Rufen Sie in der Google Cloud Console die Seite Statische Adresse reservieren auf.

      Zur Seite "Statische Adresse reservieren"

    2. Wählen Sie einen Namen für die neue Adresse aus.

    3. Wählen Sie als Netzwerkdienststufe Standard aus.

    4. Wählen Sie IPv4 aus. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.

    5. Wählen Sie Regional aus.

    6. Wählen Sie die Region aus, in der die Adresse erstellt werden soll.

    7. Übernehmen Sie für die Option Anhängen an die Einstellung Keine. Nachdem Sie den Load-Balancer erstellt haben, wird diese IP-Adresse an die Weiterleitungsregel des Load-Balancers angehängt.

    8. Klicken Sie auf Reservieren, um die IP-Adresse zu reservieren.

    gcloud

    Verwenden Sie den Befehl compute addresses create, um eine statische externe IP-Adresse zu reservieren.

    gcloud compute addresses create IP_ADDRESS_NAME  \
        --region=us-west1 \
        --network-tier=STANDARD \
        --project=SERVICE_PROJECT_ID
    

    Dabei gilt:

    • IP_ADDRESS_NAME ist der Name, den Sie für diese Adresse vergeben möchten.
    • SERVICE_PROJECT_ID: die Projekt-ID des Dienstprojekts, in dem der Load-Balancer erstellt wird.

    Load-Balancer konfigurieren

    In diesem Abschnitt wird gezeigt, wie Sie die folgenden Ressourcen für einen regionalen externen HTTP(S)-Load-Balancer erstellen:

    • HTTP-Systemdiagnose
    • Back-End-Dienst mit einer verwalteten Instanzgruppe als Back-End
    • Eine URL-Zuordnung
    • SSL-Zertifikat (nur für HTTPS erforderlich)
    • Zielproxy
    • Weiterleitungsregel

    Proxyverfügbarkeit

    Je nach Anzahl der Dienstprojekte, die dasselbe freigegebene VPC-Netzwerk verwenden, werden Kontingente oder Limits möglicherweise schneller ausgeschöpft als im Netzwerkbereitstellungsmodell, in dem jedes Google Cloud-Projekt sein eigenes Netzwerk hostet.

    Beispielsweise haben Google Cloud-Regionen manchmal nicht genügend Proxy-Kapazität für einen neuen regionalen externen HTTP(S)-Load-Balancer. In diesem Fall gibt die Google Cloud Console beim Erstellen des Load-Balancers eine Warnmeldung zur Proxyverfügbarkeit aus. Sie haben folgende Möglichkeiten, dieses Problem zu beheben:

    • Warten Sie, bis das Kapazitätsproblem behoben ist.
    • Wenden Sie sich an Ihr Google Cloud-Vertriebsteam, um diese Limits zu erhöhen.

    Console

    Wechseln Sie den Kontext zum Dienstprojekt

    1. Öffnen Sie in der Google Cloud Console die Seite Dashboard.

      Zum Dashboard

    2. Klicken Sie oben auf der Seite auf die Liste Auswählen aus. Wählen Sie im angezeigten Fenster Auswählen aus das Dienstprojekt aus, in dem Sie den Load-Balancer erstellen möchten.

    Load-Balancer-Typ auswählen

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

      Load-Balancing aufrufen

    2. Klicken Sie bei HTTP(S)-Load-Balancing auf Konfiguration starten.
    3. Wählen Sie im Bereich Internet oder nur intern die Option Vom Internet zu meinen VMs oder serverlosen Diensten aus. Diese Einstellung bedeutet, dass der Load-Balancer ein externer HTTP(S)-Load-Balancer ist.
    4. Im Abschnitt Erweiterte Trafficverwaltung:
      1. Wählen Sie HTTP(S)-Load-Balancer mit erweiterter Trafficverwaltung aus.
      2. Wählen Sie Regionaler HTTP(S)-Load-Balancer aus.
    5. Klicken Sie auf Weiter.

    Load-Balancer vorbereiten

    1. Geben Sie l7-xlb-shared-vpc als Name für den Load-Balancer ein.
    2. Wählen Sie als Region us-west1 aus.
    3. Wählen Sie für das Netzwerk die Option lb-network (aus Projekt: HOST_PROJECT_ID) aus.

      Wenn die Warnung Nur-Proxy-Subnetz im freigegebenen VPC-Netzwerk erforderlich angezeigt wird, prüfen Sie, ob der Administrator des Hostprojekts das proxy-only-subnet in der Region us-west1 im freigegebenen VPC-Netzwerk lb-network erstellt hat. Die Erstellung des Load-Balancers ist auch dann erfolgreich, wenn Sie keine Berechtigung zum Ansehen des Nur-Proxy-Subnetzes auf dieser Seite haben.

    4. Lassen Sie die Seite geöffnet, um fortzufahren.

    Front-End konfigurieren

    Bei HTTP:

    1. Klicken Sie auf Front-End-Konfiguration.
    2. Klicken Sie auf Front-End-IP-Adresse und -Port hinzufügen.
    3. Legen Sie als Name l7-xlb-forwarding-rule fest.
    4. Legen Sie als Protokoll HTTP fest.
    5. Legen Sie als Port 80 fest.
    6. Für die IP-Adresse, die Sie unter IP-Adresse des Load-Balancers reservieren erstellt haben.

    7. Klicken Sie auf Fertig.

    Bei HTTPS:

    Wenn Sie HTTPS zwischen dem Client und dem Load-Balancer verwenden, benötigen Sie eine oder mehrere SSL-Zertifikatsressourcen, um den Proxy zu konfigurieren. Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Von Google verwaltete Zertifikate werden derzeit nicht mit regionalen externen HTTP(S)-Load-Balancern unterstützt.

    1. Klicken Sie auf Front-End-Konfiguration.
    2. Klicken Sie auf Front-End-IP und Port hinzufügen.
    3. Geben Sie im Feld Name l7-xlb-forwarding-rule ein.
    4. Wählen Sie im Feld Protokoll die Option HTTPS (includes HTTP/2) aus.
    5. Achten Sie darauf, dass der Port auf 443 festgelegt ist, um HTTPS-Traffic zuzulassen.
    6. Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren erstellt haben.
    7. Klicken Sie auf die Liste Zertifikat.
      1. Wenn Sie bereits eine selbstverwaltete SSL-Zertifikatressource haben, die Sie als primäres SSL-Zertifikat verwenden möchten, wählen Sie es aus dem Menü aus.
      2. Wählen Sie andernfalls Neues Zertifikat erstellen aus.
        1. Geben Sie l7-xlb-cert als Name ein.
        2. Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
          • Public-Key-Zertifikat
          • Zertifikatskette
          • Privater Schlüssel
        3. Klicken Sie auf Erstellen.
    8. So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
      1. Klicken Sie auf Zertifikat hinzufügen.
      2. Wählen Sie ein Zertifikat in der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen und befolgen Sie die obige Anleitung.
    9. Klicken Sie auf Fertig.

    Back-End konfigurieren

    1. Klicken Sie auf Back-End-Konfiguration.
    2. Wählen Sie im Menü Back-End-Service erstellen oder auswählen die Option Back-End-Service erstellen aus.
    3. Legen Sie als Name für den Back-End-Dienst l7-xlb-backend-service fest.
    4. Setzen Sie den Backend-Typ auf Instanzgruppen.
    5. Im Abschnitt Neues Back-End:
      1. Legen Sie für Instanzgruppe l7-xlb-backend-example fest.
      2. Setzen Sie die Portnummern auf 80.
      3. Setzen Sie den Balancing-Modus auf Auslastung.
      4. Klicken Sie auf Fertig.
    6. Wählen Sie im Abschnitt Systemdiagnose die Option Systemdiagnose erstellen mit den folgenden Parametern aus:
      1. Name: l7-xlb-basic-check
      2. Protokoll: HTTP
      3. Port: 80
    7. Klicken Sie auf Speichern und Fortfahren.
    8. Klicken Sie auf Erstellen.

    Routingregeln konfigurieren

    • Klicken Sie auf Routingregeln. Achten Sie darauf, dass l7-xlb-backend-service der einzige Back-End-Dienst für alle nicht übereinstimmenden Hosts und alle nicht übereinstimmenden Pfade ist.

    Weitere Informationen zur Trafficverwaltung finden Sie unter Trafficverwaltung einrichten.

    Konfiguration prüfen und fertigstellen

    • Klicken Sie auf Erstellen.

    gcloud

    1. Definieren Sie die HTTP-Systemdiagnose mit dem Befehl gcloud compute health-checks create http.

      gcloud compute health-checks create http l7-xlb-basic-check \
         --region=us-west1 \
         --use-serving-port \
         --project=SERVICE_PROJECT_ID
      
    2. Definieren Sie den Back-End-Dienst mit dem Befehl gcloud compute backend-services create.

      gcloud compute backend-services create l7-xlb-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --health-checks=l7-xlb-basic-check \
        --health-checks-region=us-west1 \
        --region=us-west1 \
        --project=SERVICE_PROJECT_ID
      
    3. Fügen Sie dem Back-End-Dienst mit dem Befehl gcloud compute backend-services add-backend Back-Ends hinzu.

      gcloud compute backend-services add-backend l7-xlb-backend-service \
        --balancing-mode=UTILIZATION \
        --instance-group=l7-xlb-backend-example \
        --instance-group-zone=us-west1-a \
        --region=us-west1 \
        --project=SERVICE_PROJECT_ID
      
    4. Erstellen Sie die URL-Zuordnung mit dem Befehl gcloud compute url-maps create.

      gcloud compute url-maps create l7-xlb-map \
        --default-service=l7-xlb-backend-service \
        --region=us-west1 \
        --project=SERVICE_PROJECT_ID
      
    5. Erstellen Sie den Zielproxy.

      Bei HTTP:

      Erstellen Sie für einen HTTP-Load-Balancer den Zielproxy mit dem Befehl gcloud compute target-http-proxies create.

      gcloud compute target-http-proxies create l7-xlb-proxy \
        --url-map=l7-xlb-map \
        --url-map-region=us-west1 \
        --region=us-west1 \
        --project=SERVICE_PROJECT_ID
      

      Bei HTTPS:

      Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Von Google verwaltete Zertifikate werden derzeit nicht mit regionalen externen HTTP(S)-Load-Balancern unterstützt.

      Weisen Sie Ihre Dateipfade den entsprechenden Variablennamen zu.

      export LB_CERT=path to PEM-formatted file
      
      export LB_PRIVATE_KEY=path to PEM-formatted file
      

      Erstellen Sie ein regionales SSL-Zertifikat mit dem Befehl gcloud compute ssl-certificates create.

      gcloud compute ssl-certificates create l7-xlb-cert \
        --certificate=$LB_CERT \
        --private-key=$LB_PRIVATE_KEY \
        --region=us-west1
      

      Verwenden Sie das regionale SSL-Zertifikat, um mit dem Befehl gcloud compute target-https-proxies create einen Zielproxy zu erstellen.

      gcloud compute target-https-proxies create l7-xlb-proxy \
        --url-map=l7-xlb-map \
        --region=us-west1 \
        --ssl-certificates=l7-xlb-cert \
        --project=SERVICE_PROJECT_ID
      
    6. Erstellen Sie die Weiterleitungsregel.

      Bei benutzerdefinierten Netzwerken müssen Sie in der Weiterleitungsregel auf das Subnetz verweisen.

      Verwenden Sie lb-frontend-and-backend-subnet für die IP-Adresse der Weiterleitungsregel. Wenn Sie das Nur-Proxy-Subnetz verwenden, schlägt das Erstellen der Weiterleitungsregel fehl.

      Bei HTTP:

      Verwenden Sie den Befehl gcloud compute forwarding-rules create mit den richtigen Flags.

      gcloud compute forwarding-rules create l7-xlb-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --address=IP_ADDRESS_NAME \
        --ports=80 \
        --region=us-west1 \
        --target-http-proxy=l7-xlb-proxy \
        --target-http-proxy-region=us-west1 \
        --network-tier=STANDARD \
        --project=SERVICE_PROJECT_ID
      

      Bei HTTPS:

      Erstellen Sie die Weiterleitungsregel mit dem Befehl gcloud compute forwarding-rules create und den richtigen Flags.

      gcloud compute forwarding-rules create l7-xlb-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --address=IP_ADDRESS_NAME \
        --ports=443 \
        --region=us-west1 \
        --target-https-proxy=l7-xlb-proxy \
        --target-https-proxy-region=us-west1 \
        --network-tier=STANDARD \
        --project=SERVICE_PROJECT_ID
      

    Load-Balancer testen

    Sobald der Load-Balancing-Dienst ausgeführt wird, können Sie Traffic an die Weiterleitungsregel senden. Dieser wird dann an verschiedene Instanzen verteilt.

    Console

    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 Back-End, ob die VMs fehlerfrei sind. Die Spalte Fehlerfrei sollte ausgefüllt sein; in diesem Fall sind beide VMs fehlerfrei (2/2). Falls sie doch leer ist, aktualisieren Sie zuerst die Seite. Es kann einige Minuten dauern, bis in der Google Cloud Console angezeigt wird, dass die VMs fehlerfrei sind. Wenn die Back-Ends nach einigen Minuten nicht als fehlerfrei angezeigt werden, prüfen Sie die Firewallkonfiguration und das Netzwerk-Tag, das Ihren Back-End-VMs zugewiesen wurde.
    5. Sobald die Back-End-Instanzen in der Google Cloud Console als fehlerfrei angezeigt werden, können Sie den Load-Balancer mit einem Webbrowser testen. Rufen Sie dafür https://LB_IP_ADDRESS (oder http://LB_IP_ADDRESS) auf. Ersetzen Sie LB_IP_ADDRESS durch die IP-Adresse des Load-Balancers.
    6. Wenn Sie ein selbst signiertes Zertifikat zu HTTPS-Testzwecken genutzt haben, zeigt Ihr Browser eine Warnung an. Sie müssen den Browser ausdrücklich anweisen, ein selbst signiertes Zertifikat zu akzeptieren.
    7. Im Browser sollte eine Seite mit Inhalt dargestellt werden, der den Namen der Instanz, die die Seite bereitstellt, und deren Zone enthält (z. B. Page served from: lb-backend-example-xxxx). Wenn der Browser diese Seite nicht anzeigt, prüfen Sie die Konfigurationseinstellungen in dieser Anleitung.

    gcloud

    Notieren Sie sich die reservierte IP-Adresse:

    gcloud compute addresses describe IP_ADDRESS_NAME \
        --format="get(address)" \
        --region=us-west1
    

    Sie können Ihren Load-Balancer mit einem Webbrowser testen, indem Sie https://IP_ADDRESS_NAME (oder http://IP_ADDRESS_NAME) aufrufen. Ersetzen Sie IP_ADDRESS_NAME durch die IP-Adresse des Load-Balancers.

    Wenn Sie ein selbst signiertes Zertifikat genutzt haben, um HTTPS zu testen, zeigt Ihr Browser eine Warnung an. Sie müssen Ihren Browser ausdrücklich anweisen, ein selbst signiertes Zertifikat zu akzeptieren.

    Im Browser sollte eine Seite mit minimalen Informationen zur Back-End-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 Back-End-Dienst konfigurieren

    Das vorherige Beispiel auf dieser Seite zeigt, wie Sie die Bereitstellung einer freigegebenen VPC einrichten, bei der alle Load-Balancer-Komponenten und ihre Back-Ends im Dienstprojekt erstellt werden.

    Mit regionalen externen HTTP(S)-Load-Balancern können Sie auch Bereitstellungen freigegebener VPC-Netzwerke konfigurieren, bei denen eine URL-Zuordnung in einem Host- oder Dienstprojekt auf Back-End-Dienste (und Back-Ends) 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 Back-End-Dienst in einem Dienstprojekt
    • Weiterleitungsregel, Ziel-Proxy und URL-Zuordnung in einem Dienstprojekt und Back-End-Dienst in einem anderen Dienstprojekt

    Anforderungen einrichten

    In diesem Beispiel wird ein Beispiel-Load-Balancer mit seinem Front-End und Back-End in zwei verschiedenen Dienstprojekten konfiguriert.

    Wenn Sie es noch nicht getan haben, müssen Sie alle erforderlichen Schritte ausführen, um die freigegebene VPC einzurichten und das Netzwerk sowie die Subnetze und Firewallregeln zu konfigurieren, die für dieses Beispiel erforderlich sind. Eine Anleitung finden Sie in den folgenden Abschnitten am Anfang dieser Seite:

    Load-Balancer-Front-End und -Back-End in verschiedenen Dienstprojekten
    Load-Balancer-Front-End und -Back-End in verschiedenen Dienstprojekten

    Reservieren Sie die IP-Adresse des Load-Balancers in Dienstprojekt A

    Reservieren Sie eine regionale statische externe IP-Adresse für den Load-Balancer in Dienstprojekt A.

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

    Console

    1. Rufen Sie in der Google Cloud Console die Seite Statische Adresse reservieren auf.

      Zur Seite "Statische Adresse reservieren"

    2. Wählen Sie einen Namen für die neue Adresse: cross-ref-ip-address

    3. Wählen Sie als Netzwerkdienststufe Standard aus.

    4. Wählen Sie IPv4 aus. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.

    5. Wählen Sie Regional aus.

    6. Wählen Sie die Region aus, in der die Adresse erstellt werden soll.

    7. Übernehmen Sie für die Option Anhängen an die Einstellung Keine. Nachdem Sie den Load-Balancer erstellt haben, wird diese IP-Adresse an die Weiterleitungsregel des Load-Balancers angehängt.

    8. Klicken Sie auf Reservieren, um die IP-Adresse zu reservieren.

    gcloud

    Verwenden Sie den Befehl compute addresses create, um eine statische externe IP-Adresse zu reservieren.

    gcloud compute addresses create IP_ADDRESS_CROSS_REF  \
        --region=us-west1 \
        --network-tier=STANDARD \
        --project=SERVICE_PROJECT_A_ID
    

    Dabei gilt:

    • IP_ADDRESS_CROSS_REF ist der Name, den Sie für diese IP-Adresse vergeben möchten.
    • SERVICE_PROJECT_A_ID ist die Projekt-ID des Dienstprojekts A, in dem das Front-End des Load-Balancers erstellt wird.

    Back-Ends und Back-End-Dienst in Dienstprojekt B erstellen

    Alle Schritte in diesem Abschnitt müssen in Dienstprojekt B ausgeführt werden.

    Console

    1. eine Instanzvorlage erstellen Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

      Zu Instanzvorlagen

      1. Klicken Sie auf Instanzvorlage erstellen.
      2. Geben Sie einen Namen für die Instanzvorlage ein: cross-ref-backend-template.
      3. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get. Wenn Sie das Bootlaufwerk ändern müssen, klicken Sie auf Ändern.
        1. Wählen Sie als Betriebssystem die Option Debian aus.
        2. Wählen Sie für Version eines der verfügbaren Debian-Images aus, z. B. Debian GNU/Linux 10 (buster).
        3. Klicken Sie auf Auswählen.
      4. Klicken Sie auf Erweiterte Optionen und dann auf Netzwerk.
      5. Geben Sie die folgenden Netzwerk-Tags ein: load-balanced-backend.
      6. Wählen Sie unter Netzwerkschnittstellen die Option Für mich freigegebene Netzwerke (von Hostprojekt: HOST_PROJECT_ID) aus.
      7. Wählen Sie das Subnetz lb-frontend-and-backend-subnet aus dem Netzwerk lb-network aus.
      8. Klicken Sie auf Verwaltung. Fügen Sie unter Verwaltung das folgende Skript in das Feld Startskript ein:

        #! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo vm_hostname="$(curl -H "Metadata-Flavor:Google" \
        http://169.254.169.254/computeMetadata/v1/instance/name)"
        sudo echo "Page served from: $vm_hostname" | \
        tee /var/www/html/index.html
        sudo systemctl restart apache2
        
      9. Klicken Sie auf Erstellen.

    2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

      Zu den Instanzgruppen

      1. Klicken Sie auf Instanzgruppe erstellen.
      2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
      3. Geben Sie im Feld Name eine Bezeichnung für die Instanzgruppe ein: cross-ref-ig-backend.
      4. Wählen Sie für Standort die Option Einzelne Zone aus.
      5. Wählen Sie als Region us-west1 aus.
      6. Wählen Sie als Zone us-west1-a aus.
      7. Wählen Sie für Instanzvorlage die Option cross-ref-backend-template aus.
      8. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.

        Geben Sie für dieses Beispiel für Autoscaling die folgenden Optionen an:

        • Wählen Sie für Autoscaling-Modus Off:do not autoscale aus.
        • Geben Sie für Maximale Anzahl von Instanzen den Wert 2 ein.

        Optional können Sie im Abschnitt Autoscaling die Instanzgruppe so konfigurieren, dass Instanzen basierend auf der CPU-Auslastung automatisch hinzugefügt oder entfernt werden.

      9. Klicken Sie auf Erstellen.

    3. Erstellen Sie einen regionalen Back-End-Dienst. In diesem Schritt erstellen wir auch die Systemdiagnose und fügen dem Back-End-Dienst Back-Ends hinzu. Öffnen Sie in der Google Cloud Console die Seite Back-Ends.

      Zu Back-Ends

      1. Klicken Sie auf Regionalen Back-End-Dienst erstellen.
      2. Geben Sie im Feld Name eine Bezeichnung für den Back-End-Dienst ein: cross-ref-backend-service.
      3. Wählen Sie als Region us-west1 aus.
      4. Wählen Sie für Typ des Load-Balancers die Option Regionales externes HTTP(S)-Load-Balancing (EXTERNAL_MANAGED) aus.
      5. Setzen Sie den Backend-Typ auf Instanzgruppen.
      6. Legen Sie im Bereich Back-Ends für Netzwerk den Wert lb-network fest.
      7. Klicken Sie auf Back-End hinzufügen und legen Sie die folgenden Felder fest:
        1. Legen Sie für die Instanzgruppe cross-ref-ig-backend fest.
        2. Setzen Sie die Portnummern auf 80.
        3. Setzen Sie den Balancing-Modus auf Auslastung.
        4. Klicken Sie auf Fertig.
      8. Wählen Sie im Abschnitt Systemdiagnose die Option Systemdiagnose erstellen mit den folgenden Parametern aus:
        1. Name: cross-ref-http-health-check
        2. Protokoll: HTTP
        3. Port: 80
        4. Klicken Sie auf Speichern.
      9. Klicken Sie auf Erstellen.

    gcloud

    1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine VM-Instanzvorlage mit einem HTTP-Server.

      gcloud compute instance-templates create BACKEND_IG_TEMPLATE \
          --region=us-west1 \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \
          --tags=load-balanced-backend \
          --image-family=debian-10 \
          --image-project=debian-cloud \
          --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://169.254.169.254/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2' \
          --project=SERVICE_PROJECT_B_ID
      

      Dabei gilt:

      • BACKEND_IG_TEMPLATE: Der Name der Instanzgruppenvorlage.
      • SERVICE_PROJECT_B_ID: Die Projekt-ID des Dienstprojekts B, in dem die Back-Ends des Load-Balancers und der Back-End-Dienst erstellt werden.
      • HOST_PROJECT_ID: Die Projekt-ID des freigegebenen VPC-Hostprojekts.
    2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine verwaltete Instanzgruppe in der Zone.

      gcloud compute instance-groups managed create BACKEND_MIG \
          --zone=us-west1-a \
          --size=2 \
          --template=BACKEND_IG_TEMPLATE \
          --project=SERVICE_PROJECT_B_ID
      

      Dabei gilt:

      • BACKEND_MIG: Der Name der Back-End-Instanzgruppe.
    3. Definieren Sie die HTTP-Systemdiagnose mit dem Befehl gcloud compute health-checks create http.

      gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
        --region=us-west1 \
        --use-serving-port \
        --project=SERVICE_PROJECT_B_ID
      

      Dabei gilt:

      • HTTP_HEALTH_CHECK_NAME: Der Name für die HTTP-Systemdiagnose.
    4. Definieren Sie den Back-End-Dienst mit dem Befehl gcloud compute backend-services create.

      gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --health-checks=HTTP_HEALTH_CHECK_NAME \
        --health-checks-region=us-west1 \
        --region=us-west1 \
        --project=SERVICE_PROJECT_B_ID
      

      Dabei gilt:

      • BACKEND_SERVICE_NAME: Der Name des Back-End-Dienstes, der in Dienstprojekt B erstellt wurde.
    5. Fügen Sie dem Back-End-Dienst mit dem Befehl gcloud compute backend-services add-backend Back-Ends hinzu.

      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --balancing-mode=UTILIZATION \
        --instance-group=BACKEND_MIG \
        --instance-group-zone=us-west1-a \
        --region=us-west1 \
        --project=SERVICE_PROJECT_B_ID
      

    Dem Load-Balancer-Administrator die Berechtigungen erteilen, den Back-End-Dienst zu verwenden

    Damit Load-Balancer auf Back-End-Dienste in anderen Dienstprojekten verweisen können, muss der Load-Balancer-Administrator die Berechtigung compute.backendServices.use haben. Mit der vordefinierten IAM-Rolle compute.loadBalancerServiceUser können Sie diese Berechtigung erteilen. Diese Rolle muss vom Dienstprojektadministrator gewährt werden und kann auf Projektebene oder auf Ebene einzelner Back-End-Dienste angewendet werden.

    In diesem Beispiel muss ein Dienstprojektadministrator aus Projekt 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 Back-End-Dienste im Projekt) oder pro Back-End-Dienst erfolgen.

    • Auf Projektebene:

      gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
        --member="user:LOAD_BALANCER_ADMIN" \
        --role="roles/compute.loadBalancerServiceUser"
      
    • Auf Back-End-Dienstebene können Dienstprojektadministratoren einen der folgenden Befehle verwenden, um die Rolle loadBalancerServiceUser zuzuweisen:

      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
      

    Ersetzen Sie LOAD_BALANCER_ADMIN durch das Hauptkonto des Nutzers, um diese Befehle zu verwenden. Beispiel: 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 Back-End-Dienste gelten.

    Load-Balancer-Front-End und URL-Zuordnung in Dienstprojekt A erstellen

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

    Console

    Load-Balancer-Typ auswählen

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

      Load-Balancing aufrufen

    2. Klicken Sie bei HTTP(S)-Load-Balancing auf Konfiguration starten.

    3. Wählen Sie im Bereich Internet oder nur intern die Option Vom Internet zu meinen VMs oder serverlosen Diensten aus. Diese Einstellung bedeutet, dass der Load-Balancer ein externer HTTP(S)-Load-Balancer ist.

    4. Wählen Sie im Abschnitt Global oder regional den Wert Regionaler HTTP(S)-Load-Balancer aus.

    5. Klicken Sie auf Weiter.

    Load-Balancer vorbereiten

    1. Geben Sie den Namen des Load-Balancers ein: cross-ref-l7-xlb-shared-vpc.
    2. Wählen Sie als Region us-west1 aus.
    3. Wählen Sie für das Netzwerk die Option lb-network (aus Projekt: HOST_PROJECT_ID) aus.

      Wenn die Warnung Nur-Proxy-Subnetz im freigegebenen VPC-Netzwerk erforderlich angezeigt wird, prüfen Sie, ob der Administrator des Hostprojekts das proxy-only-subnet in der Region us-west1 im freigegebenen VPC-Netzwerk lb-network erstellt hat. Die Erstellung des Load-Balancers ist auch dann erfolgreich, wenn Sie keine Berechtigung zum Ansehen des Nur-Proxy-Subnetzes auf dieser Seite haben.

    4. Lassen Sie die Seite geöffnet, um fortzufahren.

    Front-End konfigurieren

    Damit der projektübergreifende Dienst verweist, muss das Front-End dasselbe Netzwerk (lb-network) aus dem freigegebenen VPC-Hostprojekt verwenden, mit dem der Back-End-Dienst erstellt wurde.

    Bei HTTP:

    1. Klicken Sie auf Front-End-Konfiguration.
    2. Geben Sie einen Name für die Weiterleitungsregel ein: cross-ref-http-forwarding-rule.
    3. Legen Sie als Protokoll HTTP fest.
    4. Setzen Sie die Option Subnetzwerk auf lb-frontend-and-backend-subnet.

      Wählen Sie nicht das Nur-Proxy-Subnetz für das Front-End aus, auch wenn es sich um eine Option in der Liste handelt.

    5. Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren mit dem Namen cross-ref-ip-address erstellt haben.

    6. Legen Sie als Port 80 fest.

    7. Klicken Sie auf Fertig.

    Bei HTTPS:

    Wenn Sie HTTPS zwischen dem Client und dem Load-Balancer verwenden, benötigen Sie eine oder mehrere SSL-Zertifikatsressourcen, um den Proxy zu konfigurieren. Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Von Google verwaltete Zertifikate werden derzeit nicht mit regionalen externen HTTP(S)-Load-Balancern unterstützt.

    1. Klicken Sie auf Front-End-Konfiguration.
    2. Geben Sie einen Name für die Weiterleitungsregel ein: cross-ref-https-forwarding-rule.
    3. Wählen Sie im Feld Protokoll die Option HTTPS (includes HTTP/2) aus.
    4. Setzen Sie die Option Subnetzwerk auf lb-frontend-and-backend-subnet.

      Wählen Sie nicht das Nur-Proxy-Subnetz für das Front-End aus, auch wenn es sich um eine Option in der Liste handelt.

    5. Wählen Sie die IP-Adresse aus, die Sie unter IP-Adresse des Load-Balancers reservieren mit dem Namen cross-ref-ip-address erstellt haben.

    6. Achten Sie darauf, dass der Port auf 443 festgelegt ist, um HTTPS-Traffic zuzulassen.

    7. Klicken Sie auf die Liste Zertifikat.

      1. Wenn Sie bereits eine selbstverwaltete SSL-Zertifikatsressource haben, die Sie als primäres SSL-Zertifikat verwenden möchten, wählen Sie diese aus dem Menü aus.
      2. Wählen Sie andernfalls Neues Zertifikat erstellen aus.
        1. Geben Sie einen Namen für das SSL-Zertifikat ein.
        2. Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
          • Public-Key-Zertifikat
          • Zertifikatskette
          • Privater Schlüssel
        3. Klicken Sie auf Erstellen.
    8. So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:

      1. Klicken Sie auf Zertifikat hinzufügen.
      2. Wählen Sie ein Zertifikat aus der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der vorherigen Anleitung.
    9. Klicken Sie auf Fertig.

    Back-End konfigurieren

    1. Klicken Sie auf Back-End-Konfiguration.
    2. Klicken Sie auf Projektübergreifende Back-End-Dienste.
    3. Geben Sie als Projekt-ID die Projekt-ID für Dienstprojekt B ein.
    4. Geben Sie unter Name des Back-End-Dienstes den Namen des Back-End-Dienstes aus Dienstprojekt B ein, das Sie verwenden möchten. In diesem Beispiel geben Sie cross-ref-backend-service ein.
    5. Klicken Sie auf Back-End-Dienst hinzufügen.

    Routingregeln konfigurieren

    • Klicken Sie auf Routingregeln. Der cross-ref-backend-service muss der einzige Back-End-Dienst für alle nicht übereinstimmenden Hosts und alle nicht übereinstimmenden Pfade sein.

    Weitere Informationen zur Trafficverwaltung finden Sie unter Trafficverwaltung einrichten.

    Konfiguration prüfen und fertigstellen

    • Klicken Sie auf Erstellen.

    Load-Balancer testen

    Nachdem Sie den Load-Balancer erstellt haben, testen Sie ihn mithilfe der Schritte unter Load-Balancer testen.

    gcloud

    1. Erstellen Sie die URL-Zuordnung und legen Sie den Standarddienst auf den Back-End-Dienst in Dienstprojekt B fest.

      gcloud compute url-maps create URL_MAP_NAME \
          --default-service=projects/SERVICE_PROJECT_B_ID/regions/us-west1/backendServices/BACKEND_SERVICE_NAME \
          --region=us-west1 \
          --project=SERVICE_PROJECT_A_ID
      

      Dabei gilt:

      • URL_MAP_NAME: Der Name für die URL-Zuordnung.
      • BACKEND_SERVICE_NAME: Der Name des Back-End-Dienstes, der in Dienstprojekt B erstellt wurde.
      • SERVICE_PROJECT_B_ID: Die Projekt-ID des Dienstprojekts B, in dem die Back-Ends und der Back-End-Dienst des Load-Balancers erstellt werden.
      • SERVICE_PROJECT_A_ID ist die Projekt-ID des Dienstprojekts A, in dem das Front-End des Load-Balancers erstellt wird.

      Die Erstellung einer URL-Zuordnung schlägt fehl, wenn Sie die Berechtigung compute.backendServices.use für den Back-End-Dienst in Dienstprojekt B nicht haben.

    2. Erstellen Sie den Zielproxy.

      Bei HTTP:

      gcloud compute target-http-proxies create HTTP_TARGET_PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --url-map-region=us-west1 \
        --region=us-west1 \
        --project=SERVICE_PROJECT_A_ID
      

      Dabei gilt:

      • HTTP_TARGET_PROXY_NAME: Der Name des HTTP-Ziel-Proxys.

      Bei HTTPS:

      Erstellen Sie ein regionales SSL-Zertifikat mit dem Befehl gcloud compute ssl-certificates create.

      gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --certificate=PATH_TO_CERTIFICATE \
        --private-key=PATH_TO_PRIVATE_KEY \
        --region=us-west1 \
        --project=SERVICE_PROJECT_A_ID
      

      Dabei gilt:

      • SSL_CERTIFICATE_NAME: Der Name der SSL-Zertifikatsressource.
      • PATH_TO_CERTIFICATE: Der Pfad zur lokalen SSL-Zertifikatsdatei im PEM-Format.
      • PATH_TO_PRIVATE_KEY: Der Pfad zum privaten Schlüssel des lokalen SSL-Zertifikats im PEM-Format.

      Verwenden Sie das regionale SSL-Zertifikat, um mit dem Befehl gcloud compute target-https-proxies create einen Zielproxy zu erstellen.

      gcloud compute target-https-proxies create HTTPS_TARGET_PROXY_NAME \
        --url-map=URL_MAP_NAME \
        --region=us-west1 \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --project=SERVICE_PROJECT_A_ID
      

      Dabei gilt:

      • HTTPS_TARGET_PROXY_NAME: Der Name für den Ziel-HTTPS-Proxy.
    3. Erstellen Sie die Weiterleitungsregel. Damit der projektübergreifende Dienst verweist, muss die Weiterleitungsregel dasselbe Netzwerk (lb-network) aus dem freigegebenen VPC-Hostprojekt verwenden, mit dem der Back-End-Dienst erstellt wurde.

      Bei HTTP:

      gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --address=IP_ADDRESS_CROSS_REF \
        --ports=80 \
        --region=us-west1 \
        --target-http-proxy=HTTP_TARGET_PROXY_NAME \
        --target-http-proxy-region=us-west1 \
        --network-tier=STANDARD \
        --project=SERVICE_PROJECT_A_ID
      

      Dabei gilt:

      • HTTP_FORWARDING_RULE_NAME: Der Name der Weiterleitungsregel, die zur Verarbeitung von HTTP-Traffic verwendet wird.

      Bei HTTPS:

      gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --address=IP_ADDRESS_CROSS_REF \
        --ports=443 \
        --region=us-west1 \
        --target-https-proxy=HTTPS_TARGET_PROXY_NAME \
        --target-https-proxy-region=us-west1 \
        --network-tier=STANDARD \
        --project=SERVICE_PROJECT_A_ID
      

      Dabei gilt:

      • HTTPS_FORWARDING_RULE_NAME: Der Name der Weiterleitungsregel, die für die Verarbeitung von HTTPS-Traffic verwendet wird.
    4. Testen Sie den Load-Balancer mit den unter Load-Balancer testen beschriebenen Schritten.

    Nächste Schritte