Regionenübergreifenden internen Application Load Balancer mit Cloud Storage-Buckets in einer freigegebene VPC-Umgebung einrichten

Dieses Dokument zeigt zwei Beispielkonfigurationen zum Einrichten eines regionsübergreifenden internen Application Load Balancers in einer Umgebung mit freigegebene VPC mit Cloud Storage-Buckets:

  • Im ersten Beispiel werden alle Load-Balancer-Komponenten und Back-Ends im Dienstprojekt erstellt.
  • Im zweiten Beispiel werden die Frontend-Komponenten und die URL-Zuordnung des Load-Balancers in einem Dienstprojekt erstellt, während der Backend-Bucket und die Cloud Storage-Buckets des Load-Balancers in einem anderen Dienstprojekt erstellt werden.

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

Neben den oben genannten Beispielkonfigurationen in diesem Dokument können Sie auch eine Bereitstellung mit freigegebene VPC einrichten, bei der das Frontend und die URL-Zuordnung des Load-Balancers im Hostprojekt und die Backend-Buckets zusammen mit den Cloud Storage-Buckets in einem Dienstprojekt erstellt werden. Weitere Informationen zu anderen gültigen Architekturen freigegebene VPC finden Sie unter Architekturen freigegebener VPCs.

Wenn Sie kein freigegebene VPC-Netzwerk verwenden möchten, lesen Sie die Informationen unter Regionenübergreifenden internen Application Load Balancer mit Cloud Storage-Buckets einrichten.

Hinweise

Richten Sie Ihr System so ein, dass die folgenden Voraussetzungen erfüllt sind.

Google Cloud -Projekte erstellen

Erstellen Sie Google Cloud Projekte für ein Host- und zwei Dienstprojekte.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Einrichten eines regionalen externen Application Load Balancers in einer freigegebene VPC-Umgebung mit Cloud Storage-Buckets benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Freigegebene VPC-Umgebung einrichten

Führen Sie die folgenden Schritte im Hostprojekt aus, um eine Umgebung mit freigegebene VPC einzurichten:

  1. Subnetze für die Weiterleitungsregeln des Load-Balancers konfigurieren
  2. Nur-Proxy-Subnetze konfigurieren
  3. Firewallregel konfigurieren
  4. 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.

Im Hostprojekt werden das folgende VPC-Netzwerk, die folgende Region und die folgenden Subnetze verwendet:

  • Netzwerk. Das Netzwerk ist ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network.

  • Subnetze für Load-Balancer Ein Subnetz mit dem Namen subnet-us in der Region us-east1 verwendet 10.1.2.0/24 für seinen primären IP-Bereich. Ein Subnetz mit dem Namen subnet-asia in der Region asia-east1 verwendet 10.1.3.0/24 für seinen primären IP-Bereich.

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

Subnetze für die Weiterleitungsregeln des Load-Balancers konfigurieren

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. Wählen Sie im Abschnitt Subnetze für Modus für Subnetzerstellung die Option Benutzerdefiniert aus.

  5. Geben Sie im Abschnitt Neues Subnetz die folgenden Informationen ein:

    • Name: subnet-us
    • Wählen Sie eine Region aus: us-east1
    • IP-Adressbereich: 10.1.2.0/24
  6. Klicken Sie auf Fertig.

  7. Klicken Sie auf Subnetz hinzufügen.

  8. Erstellen Sie ein weiteres Subnetz für die Weiterleitungsregel des Load-Balancers in einer anderen Region. Geben Sie im Bereich Neues Subnetz folgende Informationen ein:

    • Name: subnet-asia
    • Region: asia-east1
    • IP-Adressbereich: 10.1.3.0/24
  9. Klicken Sie auf Fertig.

  10. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem gcloud compute networks create-Befehl ein benutzerdefiniertes VPC-Netzwerk mit dem Namen lb-network.

    gcloud compute networks create lb-network \
        --subnet-mode=custom \
        --project=HOST_PROJECT_ID
    
  2. Erstellen Sie mit dem Befehl gcloud compute networks subnets create ein Subnetz mit dem Namen subnet-us im VPC-Netzwerk lb-network in der Region us-east1.

    gcloud compute networks subnets create subnet-us \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-east1 \
        --project=HOST_PROJECT_ID
    
  3. Erstellen Sie mit dem Befehl gcloud compute networks subnets create ein Subnetz mit dem Namen subnet-asia im VPC-Netzwerk lb-network in der Region asia-east1.

    gcloud compute networks subnets create subnet-asia \
        --network=lb-network \
        --range=10.1.3.0/24 \
        --region=asia-east1 \
        --project=HOST_PROJECT_ID
    

    Ersetzen Sie HOST_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Projekt zugewiesen ist, das in einer Umgebung mit freigegebene VPC als Hostprojekt aktiviert ist.

Nur-Proxy-Subnetze konfigurieren

Ein Nur-Proxy-Subnetz stellt eine Reihe von IP-Adressen bereit, die Google Cloud zum Ausführen von Envoy-Proxys in Ihrem Namen verwendet. Die Proxys beenden Verbindungen vom Client und erstellen neue Verbindungen zu den Back-Ends.

Dieses Nur-Proxy-Subnetz wird von allen Envoy-basierten regionalen Load-Balancern in derselben Region des VPC-Netzwerk verwendet. Pro Zweck, Region und Netzwerk kann jeweils nur ein Nur-Proxy-Subnetz aktiv sein. In diesem Beispiel erstellen wir zwei Nur-Proxy-Subnetze: eines in der Region us-east1 und das andere in der Region asia-east1.

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 VPC-Netzwerk, das Sie erstellt haben.

  3. Klicken Sie auf dem Tab Subnetz auf Subnetz hinzufügen.

  4. Geben Sie die folgenden Informationen ein:

    • Geben Sie für Name proxy-only-subnet-us ein.
    • Geben Sie bei Region den Wert us-east1 ein.
    • Wählen Sie als Zweck die Option Regionenübergreifender verwalteter Proxy aus.
    • Geben Sie 10.129.0.0/23 als IP-Adressbereich ein.
  5. Klicken Sie auf Hinzufügen.

  6. Erstellen Sie ein weiteres Nur-Proxy-Subnetz in der Region asia-east1. Klicken Sie auf dem Tab Subnetz auf Subnetz hinzufügen.

  7. Geben Sie die folgenden Informationen ein:

    • Geben Sie für Name proxy-only-subnet-asia ein.
    • Geben Sie bei Region den Wert asia-east1 ein.
    • Wählen Sie als Zweck die Option Regionenübergreifender verwalteter Proxy aus.
    • Geben Sie 10.130.0.0/23 als IP-Adressbereich ein.
  8. Klicken Sie auf Hinzufügen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute networks subnets create ein Nur-Proxy-Subnetz in der Region us-east1.

    In diesem Beispiel hat das Nur-Proxy-Subnetz den Namen proxy-only-subnet-us.

    gcloud compute networks subnets create proxy-only-subnet-us \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=us-east1 \
        --network=lb-network \
        --range=10.129.0.0/23 \
        --project=HOST_PROJECT_ID
    
  2. Erstellen Sie mit dem Befehl gcloud compute networks subnets create ein Nur-Proxy-Subnetz in der Region asia-east1.

    In diesem Beispiel hat das Nur-Proxy-Subnetz den Namen proxy-only-subnet-asia.

    gcloud compute networks subnets create proxy-only-subnet-asia \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=asia-east1 \
        --network=lb-network \
        --range=10.130.0.0/23 \
        --project=HOST_PROJECT_ID
    

    Ersetzen Sie HOST_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist.

Firewallregel konfigurieren

In diesem Beispiel wird eine Firewallregel für eingehenden Traffic verwendet, die SSH-Zugriff auf Port 22 auf die Client-VM zulässt. In diesem Beispiel heißt diese Firewallregel fw-allow-ssh.

Console

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

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen auf der Client-VM zulässt:

    • Name: fw-allow-ssh
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: allow-ssh
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 0.0.0.0/0
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 22 als Portnummer ein.
  3. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine Firewallregel, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tag allow-ssh zu ermöglichen. Wenn Sie --source-ranges weglassen,Google Cloud bezieht die Regel auf jede Quelle.

    In diesem Beispiel heißt die Firewallregel fw-allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22 \
        --project=HOST_PROJECT_ID
    

    Ersetzen Sie HOST_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist.

Freigegebene VPC im Hostprojekt einrichten

Sie können ein freigegebenes VPC-Hostprojekt aktivieren, Subnetze des Hostprojekts freigeben und Dienstprojekte an das Hostprojekt anhängen, damit die Dienstprojekte das freigegebene VPC-Netzwerk verwenden können. Informationen zum Einrichten einer freigegebenen VPC im Hostprojekt finden Sie auf den folgenden Seiten:

Nachdem Sie die vorherigen Schritte ausgeführt haben, können Sie eine der folgenden Konfigurationen ausführen:

Load-Balancer im Dienstprojekt konfigurieren

In diesem Beispiel wird ein regionenübergreifender interner Application Load Balancer erstellt, bei dem alle Load-Balancing-Komponenten (Weiterleitungsregel, Zielproxy, URL-Zuordnung und Backend-Bucket) und Cloud Storage-Buckets im Dienstprojekt erstellt werden.

Die Netzwerkressourcen des Load-Balancers, z. B. das VPC-Subnetz, das Nur-Proxy-Subnetz und die Firewallregel, werden im Hostprojekt erstellt.

Abbildung 1: Regionenübergreifender interner Application Load Balancer in einer freigegebene VPC-Umgebung mit Cloud Storage-Buckets
Abbildung 1: Regionenübergreifender interner Application Load Balancer in einer freigegebene VPC-Umgebung mit Cloud Storage-Buckets

In diesem Abschnitt erfahren Sie, wie Sie den Load-Balancer und die Back-Ends einrichten.

In den Beispielkonfigurationen auf dieser Seite wird explizit eine reservierte IP-Adresse für die Weiterleitungsregel des Load-Balancers konfiguriert, statt die Zuweisung einer sitzungsspezifischen IP-Adresse zuzulassen. Als Best Practice empfehlen wir, IP-Adressen für Weiterleitungsregeln zu reservieren.

Cloud Storage-Buckets konfigurieren

So konfigurieren Sie die Cloud Storage-Buckets:

  1. Cloud Storage-Buckets erstellen
  2. Inhalte in die Cloud Storage-Buckets kopieren
  3. Cloud Storage-Buckets öffentlich zugänglich machen

Cloud Storage-Buckets erstellen

In diesem Beispiel erstellen Sie zwei Cloud Storage-Buckets, einen in der Region us-east1 und einen in der Region asia-east1. Für Produktionsbereitstellungen empfehlen wir die Auswahl eines multiregionalen Buckets, der Objekte automatisch in mehreren Google Cloud -Regionen repliziert. Dies kann die Verfügbarkeit Ihrer Inhalte verbessern und die Fehlertoleranz in Ihrer gesamten Anwendung verbessern.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.

  3. Geben Sie im Bereich Einstieg einen global eindeutigen Namen ein, der den Benennungsrichtlinien entspricht.

  4. Klicken Sie auf Speicherort für Daten auswählen.

  5. Legen Sie Standorttyp auf Region fest.

  6. Wählen Sie in der Liste der Regionen us-east1 aus.

  7. Klicken Sie auf Erstellen.

  8. Klicken Sie auf Buckets, um zur Seite "Cloud Storage-Bucket" zurückzukehren. Folgen Sie dieser Anleitung, um einen zweiten Bucket zu erstellen. Legen Sie dabei den Standort jedoch auf asia-east1 fest.

gcloud

  1. Erstellen Sie den ersten Bucket in der Region us-east1 mit dem Befehl gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET1_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_ID
    
  2. Erstellen Sie den zweiten Bucket in der Region asia-east1 mit dem Befehl gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET2_NAME \
        --default-storage-class=standard \
        --location=asia-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • BUCKET1_NAME und BUCKET2_NAME: Cloud Storage-Bucket-Namen

    • SERVICE_PROJECT_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist

Inhalte in die Cloud Storage-Buckets kopieren

Kopieren Sie zum Füllen der Cloud Storage-Buckets eine Grafikdatei aus einem öffentlichen Cloud Storage-Bucket in Ihre eigenen Cloud Storage-Buckets.

Führen Sie in Cloud Shell die folgenden Befehle aus und ersetzen Sie die Variablen für die Bucket-Namen durch die Namen Ihrer Cloud Storage-Bucket:

  gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
  
  gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
  

Ersetzen Sie BUCKET1_NAME und BUCKET2_NAME durch Namen von Cloud Storage-Buckets.

Cloud Storage-Buckets öffentlich zugänglich machen

Wenn Sie alle Objekte in einem Bucket für alle Nutzer im öffentlichen Internet lesbar machen möchten, weisen Sie dem Prinzipal allUsers die Rolle „Storage Object Viewer“ (roles/storage.objectViewer) zu.

Console

Um allen Nutzern Zugriff auf Objekte in Ihren Buckets zu gewähren, wiederholen Sie das folgende Verfahren für jeden Bucket:

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie veröffentlichen möchten.

  3. Wählen Sie den Tab Berechtigungen aus.

  4. Klicken Sie im Bereich Berechtigungen auf die Schaltfläche Zugriff erlauben. Das Dialogfeld Zugriff gewähren wird angezeigt.

  5. Geben Sie im Feld Neue Hauptkonten allUsers ein.

  6. Geben Sie im Feld Rolle auswählenStorage Object Viewer in das Filterfeld ein und wählen Sie Storage-Objekt-Betrachter aus den gefilterten Ergebnissen aus.

  7. Klicken Sie auf Speichern.

  8. Klicken Sie auf Öffentlichen Zugriff erlauben.

gcloud

Führen Sie den Befehl gcloud storage buckets add-iam-policy-binding aus, um allen Nutzern Zugriff auf Objekte in Ihren Buckets zu gewähren.

gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer

Ersetzen Sie BUCKET1_NAME und BUCKET2_NAME durch Namen von Cloud Storage-Buckets.

IP-Adresse des Load-Balancers reservieren

Reservieren Sie eine statische interne IP-Adresse für Folgendes:

  • Weiterleitungsregel in der Region us-east1
  • Weiterleitungsregel in der Region asia-east1

Console

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

    Zur Seite "Statische Adresse reservieren"

  2. Klicken Sie auf Intern reservieren.

  3. Geben Sie unter Name einen Namen für die neue Adresse ein.

  4. Setzen Sie die IP-Version auf IPv4.

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

  6. Wiederholen Sie diese Schritte, um eine IP-Adresse in der Region asia-east1 zu reservieren.

gcloud

  1. Verwenden Sie den Befehl gcloud compute addresses create, um eine statische interne IP-Adresse in der Region us-east1 zu reservieren.

    gcloud compute addresses create ADDRESS1_NAME  \
       --region=us-east1 \
       --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
       --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • ADDRESS1_NAME: der Name, den Sie dieser IP-Adresse zuweisen möchten
    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • SERVICE_PROJECT_ID: die dem Dienstprojekt zugewiesene Google Cloud Projekt-ID
  2. Verwenden Sie den Befehl gcloud compute addresses create, um eine statische interne IP-Adresse in der Region asia-east1 zu reservieren.

    gcloud compute addresses create ADDRESS2_NAME  \
       --region=asia-east1 \
       --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
       --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • ADDRESS2_NAME: der Name, den Sie dieser IP-Adresse zuweisen möchten
    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • SERVICE_PROJECT_ID: die dem Dienstprojekt zugewiesene Google Cloud Projekt-ID
  3. Verwenden Sie den Befehl gcloud compute addresses describe, um das Ergebnis anzeigen zu lassen:

    gcloud compute addresses describe ADDRESS1_NAME \
       --project=SERVICE_PROJECT_ID
    
    gcloud compute addresses describe ADDRESS2_NAME \
       --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • ADDRESS1_NAME und ADDRESS2_NAME: der Name, den Sie den IP-Adressen zugewiesen haben
    • SERVICE_PROJECT_ID: die dem Dienstprojekt zugewiesene Google Cloud Projekt-ID

    Die zurückgegebene IP-Adresse wird in den folgenden Abschnitten als RESERVED_IP_ADDRESS bezeichnet.

SSL-Zertifikatsressource einrichten

Erstellen Sie für einen regionsübergreifenden internen Application Load Balancer, der HTTPS als Anfrage- und Antwortprotokoll verwendet, eine SSL-Zertifikatsressource mit Certificate Manager, wie in einem der folgenden Dokumente beschrieben:

Nachdem Sie das Zertifikat erstellt haben, können Sie es an den HTTPS-Zielproxy anhängen.

Wir empfehlen die Verwendung eines von Google verwalteten Zertifikats.

Load Balancer mit Back-End-Buckets konfigurieren

In diesem Abschnitt erfahren Sie, wie Sie die folgenden Ressourcen für einen regionenübergreifenden internen Application Load Balancer erstellen:

In diesem Beispiel können Sie HTTP oder HTTPS als Anfrage- und Antwortprotokoll zwischen dem Client und dem Load-Balancer verwenden. Zum Erstellen eines HTTPS-Load-Balancers müssen Sie dem Frontend des Load-Balancers eine SSL-Zertifikatsressource hinzufügen.

So erstellen Sie die oben genannten Load-Balancing-Komponenten mit der gcloud CLI:

  1. Erstellen Sie mit dem gcloud compute backend-buckets create-Befehl zwei Backend-Buckets, einen für jeden Cloud Storage-Bucket. Die Back-End-Buckets haben das Load-Balancing-Schema INTERNAL_MANAGED.

    In diesem Beispiel heißen die Backend-Buckets backend-bucket-cats und backend-bucket-dogs, was auf den Inhalt der Cloud Storage-Buckets hinweist.

    gcloud compute backend-buckets create backend-bucket-cats \
        --gcs-bucket-name=BUCKET1_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute backend-buckets create backend-bucket-dogs \
        --gcs-bucket-name=BUCKET2_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • BUCKET1_NAME und BUCKET2_NAME: Cloud Storage-Bucket-Namen

    • SERVICE_PROJECT_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist

  2. Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen mit dem gcloud compute url-maps create-Befehl an den Backend-Bucket weiterzuleiten.

    In diesem Beispiel hat die URL-Zuordnung den Namen lb-map.

    gcloud compute url-maps create lb-map \
        --default-backend-bucket=backend-bucket-cats \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie SERVICE_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist.

  3. Konfigurieren Sie die Host- und Pfadregeln der URL-Zuordnung mit dem Befehl gcloud compute url-maps add-path-matcher.

    In diesem Beispiel ist der Standard-Backend-Bucket backend-bucket-cats, der alle darin enthaltenen Pfade verarbeitet. Anfragen, die auf http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg ausgerichtet sind, verwenden jedoch das backend-bucket-dogs-Back-End. Wenn der Ordner /love-to-fetch/ beispielsweise auch in Ihrem Standard-Backend (backend-bucket-cats) vorhanden ist, priorisiert der Load-Balancer das Backend backend-bucket-dogs, da es eine bestimmte Pfadregel für /love-to-fetch/* gibt.

    gcloud compute url-maps add-path-matcher lb-map \
        --path-matcher-name=path-matcher-pets \
        --new-hosts=* \
        --backend-bucket-path-rules="/love-to-fetch/*=backend-bucket-dogs" \
        --default-backend-bucket=backend-bucket-cats
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie SERVICE_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist.

  4. Erstellen Sie einen Zielproxy mit dem Befehl gcloud compute target-http-proxies create.

    Erstellen Sie für HTTP-Traffic einen Ziel-HTTP-Proxy mit dem Namen 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
    

    Ersetzen Sie SERVICE_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist.

    Erstellen Sie für HTTPS-Traffic einen Ziel-HTTPS-Proxy mit dem Namen 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. Nachdem Sie das Zertifikat erstellt haben, können Sie es an den HTTPS-Zielproxy anhängen.

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

  5. Erstellen Sie zwei globale Weiterleitungsregeln, eine mit einer IP-Adresse in der Region us-east1 und eine andere mit einer IP-Adresse in der Region asia-east1 mit dem gcloud compute forwarding-rules create-Befehl.

    Erstellen Sie für HTTP-Traffic die globalen Weiterleitungsregeln (http-fw-rule-1 und http-fw-rule-2), um eingehende Anfragen an den HTTP-Zielproxy weiterzuleiten:

    gcloud compute forwarding-rules create http-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=80 \
        --target-http-proxy=http-proxy \
        --global-target-http-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute forwarding-rules create http-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=80 \
        --target-http-proxy=http-proxy \
        --global-target-http-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • RESERVED_IP_ADDRESS: die IP-Adresse, die Sie reserviert haben
    • SERVICE_PROJECT_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist

    Erstellen Sie für HTTPS-Traffic die globalen Weiterleitungsregeln (https-fw-rule-1 und https-fw-rule-2), um eingehende Anfragen an den HTTPS-Zielproxy weiterzuleiten:

    gcloud compute forwarding-rules create https-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    
    gcloud compute forwarding-rules create https-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • RESERVED_IP_ADDRESS: die IP-Adresse, die Sie reserviert haben
    • SERVICE_PROJECT_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist

HTTP-Anfrage an den Load Balancer senden

Senden Sie eine Anfrage von einer internen Client-VM an die Weiterleitungsregel des Load-Balancers.

IP-Adresse der Weiterleitungsregel des Load-Balancers abrufen

Führen Sie die folgenden Schritte aus, um die IP-Adresse der Weiterleitungsregel des Load Balancers abzurufen:

  1. Rufen Sie die IP-Adresse der Weiterleitungsregel des Load-Balancers (http-fw-rule-1) ab, die sich in der Region us-east1 befindet.

    gcloud compute forwarding-rules describe http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_ID
    
  2. Rufen Sie die IP-Adresse der Weiterleitungsregel des Load-Balancers (http-fw-rule-2) ab, die sich in der Region asia-east1 befindet.

    gcloud compute forwarding-rules describe http-fw-rule-2 \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie SERVICE_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist.

    Kopieren Sie die zurückgegebene IP-Adresse, um sie in den folgenden Schritten als FORWARDING_RULE_IP_ADDRESS zu verwenden.

Client-VM zum Testen der Konnektivität erstellen

Führen Sie die folgenden Schritte aus, um eine Client-VM zum Testen der Konnektivität zu erstellen:

  1. Erstellen Sie eine Client-VM mit dem Namen client-a in der Region us-east1.

    gcloud compute instances create client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --zone=us-east1-c \
        --tags=allow-ssh \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • SERVICE_PROJECT_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist
  2. Stellen Sie eine SSH-Verbindung zur Client-VM her.

     gcloud compute ssh client-a \
         --zone=us-east1-c \
         --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie SERVICE_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist.

  3. In diesem Beispiel hat der regionenübergreifende interne Application Load Balancer virtuelle Frontend-IP-Adressen (VIPs) sowohl in der Region us-east1 als auch in der Region asia-east1 im VPC-Netzwerk. Stellen Sie mit curl eine HTTP-Anfrage an die VIP in einer der beiden Regionen.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Ersetzen Sie FORWARDING_RULE_IP_ADDRESS durch die IP-Adresse der Weiterleitungsregel des Load-Balancers.

Hochverfügbarkeit testen

Führen Sie die folgenden Schritte aus, um die Hochverfügbarkeit zu testen:

  1. Löschen Sie die Weiterleitungsregel (http-fw-rule-1) in der Region us-east1, um einen regionalen Ausfall zu simulieren, und prüfen Sie, ob der Client in der Region us-east weiterhin auf Daten aus dem Backend-Bucket zugreifen kann.

    gcloud compute forwarding-rules delete http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Ersetzen Sie SERVICE_PROJECT_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt zugewiesen ist.

  2. Stellen Sie mit curl eine HTTP-Anfrage an die VIP der Weiterleitungsregel in einer der beiden Regionen.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Ersetzen Sie FORWARDING_RULE_IP_ADDRESS durch die IP-Adresse der Weiterleitungsregel.

    Wenn Sie eine HTTP-Anfrage an die VIP in der Region us-east1 senden, erkennen die DNS-Routingrichtlinien, dass diese VIP nicht antwortet, und geben die nächste optimale VIP an den Client zurück (in diesem Beispiel asia-east1). So bleibt Ihre Anwendung auch bei regionalen Ausfällen verfügbar.

Load-Balancer mit einer projektübergreifenden Konfiguration 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 regionenübergreifenden internen Application Load Balancern können Sie auch Bereitstellungen freigegebene VPC-Netzwerke konfigurieren, bei denen eine URL-Zuordnung in einem Host- oder Dienstprojekt auf Backend-Buckets in mehreren Dienstprojekten in Umgebungen mit freigegebene VPC verweisen kann.

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-Bucket in einem Dienstprojekt
  • Weiterleitungsregel, Ziel-Proxy und URL-Zuordnung in einem Dienstprojekt und Backend-Bucket in einem anderen Dienstprojekt

In diesem Abschnitt wird die letztere Konfiguration als Beispiel beschrieben.

Einrichtung: Übersicht

In diesem Beispiel wird ein Load-Balancer mit seinem Frontend und Backend in zwei verschiedenen Dienstprojekten konfiguriert.

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

Abbildung 2. Load-Balancer-Frontend und -Backend in verschiedenen Dienstprojekten
Abbildung 2. Load balancer frontend and backend in different service projects

Cloud Storage-Buckets und Backend-Buckets in Dienstprojekt B konfigurieren

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

So erstellen Sie den Backend-Bucket:

  1. Cloud Storage-Buckets erstellen
  2. Inhalte in die Cloud Storage-Buckets kopieren
  3. Cloud Storage-Buckets öffentlich zugänglich machen
  4. Back-End-Buckets erstellen und auf die Cloud Storage-Buckets verweisen

Cloud Storage-Buckets erstellen

In diesem Beispiel erstellen Sie zwei Cloud Storage-Buckets, einen in der Region us-east1 und einen in der Region asia-east1. Für Produktionsbereitstellungen empfehlen wir die Auswahl eines multiregionalen Buckets, der Objekte automatisch in mehreren Google Cloud -Regionen repliziert. Dies kann die Verfügbarkeit Ihrer Inhalte verbessern und die Fehlertoleranz in Ihrer gesamten Anwendung verbessern.

Console

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.

  3. Geben Sie im Bereich Einstieg einen global eindeutigen Namen ein, der den Benennungsrichtlinien entspricht.

  4. Klicken Sie auf Speicherort für Daten auswählen.

  5. Legen Sie Standorttyp auf Region fest.

  6. Wählen Sie in der Liste der Regionen us-east1 aus.

  7. Klicken Sie auf Erstellen.

  8. Klicken Sie auf Buckets, um zur Seite "Cloud Storage-Bucket" zurückzukehren. Folgen Sie dieser Anleitung, um einen zweiten Bucket zu erstellen. Legen Sie dabei den Standort jedoch auf asia-east1 fest.

gcloud

  1. Erstellen Sie den ersten Bucket in der Region us-east1 mit dem Befehl gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET1_NAME \
        --default-storage-class=standard \
        --location=us-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_B_ID
    
  2. Erstellen Sie den zweiten Bucket in der Region asia-east1 mit dem Befehl gcloud storage buckets create.

    gcloud storage buckets create gs://BUCKET2_NAME \
        --default-storage-class=standard \
        --location=asia-east1 \
        --uniform-bucket-level-access \
        --project=SERVICE_PROJECT_B_ID
    

Ersetzen Sie Folgendes:

  • BUCKET1_NAME und BUCKET2_NAME: Namen von Cloud Storage-Bucket.

  • SERVICE_PROJECT_B_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt B zugewiesen ist.

Inhalte in die Cloud Storage-Buckets kopieren

Kopieren Sie zum Füllen der Cloud Storage-Buckets eine Grafikdatei aus einem öffentlichen Cloud Storage-Bucket in Ihre eigenen Cloud Storage-Buckets.

Führen Sie in Cloud Shell die folgenden Befehle aus und ersetzen Sie die Variablen für die Bucket-Namen durch die Namen Ihrer Cloud Storage-Bucket:

  gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
  
  gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
  

Ersetzen Sie BUCKET1_NAME und BUCKET2_NAME durch Namen von Cloud Storage-Bucket.

Cloud Storage-Buckets öffentlich zugänglich machen

Wenn Sie alle Objekte in einem Bucket für alle Nutzer im öffentlichen Internet lesbar machen möchten, weisen Sie dem Prinzipal allUsers die Rolle „Storage Object Viewer“ (roles/storage.objectViewer) zu.

Console

Um allen Nutzern Zugriff auf Objekte in Ihren Buckets zu gewähren, wiederholen Sie das folgende Verfahren für jeden Bucket:

  1. Wechseln Sie in der Google Cloud Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie veröffentlichen möchten.

  3. Wählen Sie den Tab Berechtigungen aus.

  4. Klicken Sie im Bereich Berechtigungen auf die Schaltfläche Zugriff erlauben. Das Dialogfeld Zugriff gewähren wird angezeigt.

  5. Geben Sie im Feld Neue Hauptkonten allUsers ein.

  6. Geben Sie im Feld Rolle auswählenStorage Object Viewer in das Filterfeld ein und wählen Sie Storage-Objekt-Betrachter aus den gefilterten Ergebnissen aus.

  7. Klicken Sie auf Speichern.

  8. Klicken Sie auf Öffentlichen Zugriff erlauben.

gcloud

Führen Sie den Befehl gcloud storage buckets add-iam-policy-binding aus, um allen Nutzern Zugriff auf Objekte in Ihren Buckets zu gewähren.

gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer

Ersetzen Sie BUCKET1_NAME und BUCKET2_NAME durch Namen von Cloud Storage-Bucket.

Load Balancer mit Back-End-Buckets konfigurieren

So erstellen Sie die Backend-Buckets:

  1. Erstellen Sie mit dem Befehl gcloud compute backend-buckets create zwei Backend-Buckets, einen für jeden Cloud Storage-Bucket. Die Back-End-Buckets haben das Load-Balancing-Schema INTERNAL_MANAGED.

    In diesem Beispiel heißen die Backend-Buckets backend-bucket-cats und backend-bucket-dogs, was auf den Inhalt der Cloud Storage-Buckets hinweist.

    gcloud compute backend-buckets create backend-bucket-cats \
        --gcs-bucket-name=BUCKET1_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_B_ID
    
    gcloud compute backend-buckets create backend-bucket-dogs \
        --gcs-bucket-name=BUCKET2_NAME \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --project=SERVICE_PROJECT_B_ID
    

    Ersetzen Sie Folgendes:

    • BUCKET1_NAME und BUCKET2_NAME: Namen von Cloud Storage-Bucket.

    • SERVICE_PROJECT_B_ID: die Google Cloud Projekt-ID, die dem Dienstprojekt B zugewiesen ist.

Load-Balancer-Frontend-Komponenten in Dienstprojekt A konfigurieren

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

In Dienstprojekt A müssen Sie die folgenden Frontend-Load-Balancing-Komponenten erstellen:

  • SSL-Zertifikatsressource, die dem Zielproxy zugeordnet ist. Sie können das SSL-Zertifikat mit den Schritten im vorherigen Abschnitt erstellen.
  • Zwei IP-Adressen für die beiden Weiterleitungsregeln des Load-Balancers. Sie können die Schritte im vorherigen Abschnitt ausführen, um die IP-Adressen für die Weiterleitungsregeln zu erstellen.
  • URL-Zuordnung, die auf die Backend-Buckets in Dienstprojekt B verweist
  • Zielproxy
  • Zwei Weiterleitungsregeln, die jeweils eine regionale IP-Adresse haben.

So erstellen Sie die Frontend-Komponenten:

  1. Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen mit dem gcloud compute url-maps create-Befehl an den Backend-Bucket weiterzuleiten.

    In diesem Beispiel hat die URL-Zuordnung den Namen lb-map.

    gcloud compute url-maps create lb-map \
        --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie Folgendes:

    • SERVICE_PROJECT_B_ID: Die Google Cloud Projekt-ID, die dem Dienstprojekt B zugewiesen ist.

    • SERVICE_PROJECT_A_ID: die Google Cloud -Projekt-ID, die dem Dienstprojekt A zugewiesen ist

  2. Konfigurieren Sie die Host- und Pfadregeln der URL-Zuordnung mit dem Befehl gcloud compute url-maps add-path-matcher.

    In diesem Beispiel ist der Standard-Backend-Bucket backend-bucket-cats, der alle darin enthaltenen Pfade verarbeitet. Anfragen, die auf http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg ausgerichtet sind, verwenden jedoch das backend-bucket-dogs-Back-End. Wenn der Ordner /love-to-fetch/ beispielsweise auch in Ihrem Standard-Backend (backend-bucket-cats) vorhanden ist, priorisiert der Load-Balancer das Backend backend-bucket-dogs, da es eine bestimmte Pfadregel für /love-to-fetch/* gibt.

    gcloud compute url-maps add-path-matcher lb-map \
        --path-matcher-name=path-matcher-pets \
        --new-hosts=* \
        --backend-bucket-path-rules="/love-to-fetch/*=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-dogs" \
        --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \
        --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie Folgendes:

    • SERVICE_PROJECT_B_ID: Die Google Cloud Projekt-ID, die dem Dienstprojekt B zugewiesen ist.

    • SERVICE_PROJECT_A_ID: die Google Cloud -Projekt-ID, die dem Dienstprojekt A zugewiesen ist

  3. Erstellen Sie einen Zielproxy mit dem Befehl gcloud compute target-http-proxies create.

    Erstellen Sie für HTTP-Traffic einen Ziel-HTTP-Proxy mit dem Namen 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_A_ID
    

    Ersetzen Sie SERVICE_PROJECT_A_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt A zugewiesen ist.

    Erstellen Sie für HTTPS-Traffic einen Ziel-HTTPS-Proxy mit dem Namen 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. Nachdem Sie das Zertifikat erstellt haben, können Sie es an den HTTPS-Zielproxy anhängen.

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --certificate-manager-certificates=CERTIFICATE_NAME \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie Folgendes:

  4. Erstellen Sie zwei globale Weiterleitungsregeln, eine mit einer IP-Adresse in der Region us-east1 und eine andere mit einer IP-Adresse in der Region asia-east1 mit dem gcloud compute forwarding-rules create-Befehl.

    Erstellen Sie für HTTP-Traffic die globalen Weiterleitungsregeln (http-fw-rule-1 und http-fw-rule-2), um eingehende Anfragen an den HTTP-Zielproxy weiterzuleiten:

      gcloud compute forwarding-rules create http-fw-rule-1 \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
          --subnet-region=us-east1 \
          --address=RESERVED_IP_ADDRESS \
          --ports=80 \
          --target-http-proxy=http-proxy \
          --global-target-http-proxy \
          --global \
          --project=SERVICE_PROJECT_A_ID
    
      gcloud compute forwarding-rules create http-fw-rule-2 \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
          --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
          --subnet-region=asia-east1 \
          --address=RESERVED_IP_ADDRESS \
          --ports=80 \
          --target-http-proxy=http-proxy \
          --global-target-http-proxy \
          --global \
          --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • RESERVED_IP_ADDRESS: die IP-Adresse, die Sie reserviert haben
    • SERVICE_PROJECT_A_ID: die Google Cloud -Projekt-ID, die dem Dienstprojekt A zugewiesen ist

    Erstellen Sie für HTTPS-Traffic die globalen Weiterleitungsregeln (https-fw-rule-1 und https-fw-rule-2), um eingehende Anfragen an den HTTPS-Zielproxy weiterzuleiten:

    gcloud compute forwarding-rules create https-fw-rule-1 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --subnet-region=us-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
    gcloud compute forwarding-rules create https-fw-rule-2 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \
        --subnet-region=asia-east1 \
        --address=RESERVED_IP_ADDRESS \
        --ports=443 \
        --target-https-proxy=https-proxy \
        --global-target-https-proxy \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • RESERVED_IP_ADDRESS: die IP-Adresse, die Sie reserviert haben
    • SERVICE_PROJECT_A_ID: die Google Cloud -Projekt-ID, die dem Dienstprojekt A zugewiesen ist

Dem Load-Balancer-Administrator die Berechtigungen erteilen, den Backend-Bucket zu verwenden

Wenn Load-Balancer auf Backend-Buckets in anderen Dienstprojekten verweisen sollen, muss der Load-Balancer-Administrator die Berechtigung compute.backendBuckets.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 Dienstprojektebene oder auf Ebene einzelner Backend-Buckets zugewiesen werden.

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.backendBuckets.use zu erteilen. Dies kann entweder auf Projektebene (für alle Backend-Buckets im Projekt) oder pro Backend-Bucket erfolgen.

Console

Berechtigungen auf Projektebene

Gehen Sie folgendermaßen vor, um allen Backend-Buckets in Ihrem Projekt Berechtigungen zu erteilen.

Sie benötigen die Berechtigungen compute.backendBuckets.setIamPolicy und resourcemanager.projects.setIamPolicy, um diesen Schritt auszuführen.

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

    IAM aufrufen

  2. Wählen Sie Ihr Projekt aus.

  3. Klicken Sie auf Zugriff gewähren.

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

  5. Klicken Sie im Bereich Rollen zuweisen auf Rollen hinzufügen.

  6. Geben Sie im Dialogfeld Rollen auswählen im Feld Nach Rollen suchen Compute Load Balancer Services User ein.

  7. Klicken Sie das Kästchen Nutzer von Compute-Load-Balancer-Diensten an.

  8. Klicken Sie auf Übernehmen.

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

  10. Klicken Sie auf Speichern.

Berechtigungen auf Ressourcenebene für einzelne Backend-Buckets

Gehen Sie folgendermaßen vor, um einzelnen Backend-Buckets in Ihrem Projekt Berechtigungen zu erteilen.

Sie benötigen die Berechtigung compute.backendBuckets.setIamPolicy, um diesen Schritt auszuführen.

  1. Rufen Sie in der Google Cloud Console die Seite Back-Ends auf.

    Zu Back-Ends

  2. Wählen Sie in der Liste der Back-Ends den Back-End-Bucket aus, für den Sie Zugriff gewähren möchten, und klicken Sie auf Berechtigungen.

  3. Klicken Sie auf Hauptkonto hinzufügen.

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

  5. Wählen Sie in der Liste Rolle auswählen die Option Nutzer von Compute-Load-Balancer-Diensten aus.

  6. Klicken Sie auf Speichern.

gcloud

Berechtigungen auf Projektebene

Gehen Sie folgendermaßen vor, um allen Backend-Buckets in Ihrem Projekt Berechtigungen zu erteilen.

Sie benötigen die Berechtigungen compute.backendBuckets.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"

Ersetzen Sie Folgendes:

  • SERVICE_PROJECT_B_ID: die Google CloudProjekt-ID, die dem Dienstprojekt B zugewiesen ist
  • LOAD_BALANCER_ADMIN: das Mitglied, für das die Bindung eingefügt werden soll

Berechtigungen auf Ressourcenebene für einzelne Backend-Buckets

Auf Backend-Bucket-Ebene können Dienstprojektadministratoren einen der folgenden Befehle verwenden, um die Rolle „Nutzer von Compute-Load-Balancer-Diensten“ (roles/compute.loadBalancerServiceUser) zuzuweisen:

Verwenden Sie den Befehl gcloud projects add-iam-policy-binding, um die Rolle „Nutzer von Compute-Load-Balancer-Diensten“ zuzuweisen.

Sie benötigen die Berechtigung compute.backendBuckets.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/global/backendBuckets/BACKEND_BUCKET_NAME",title=Shared VPC condition'
Ersetzen Sie Folgendes:
  • SERVICE_PROJECT_B_ID: die Google Cloud-Projekt-ID, die dem Dienstprojekt B zugewiesen ist
  • LOAD_BALANCER_ADMIN: das Mitglied, für das die Bindung eingefügt werden soll
  • BACKEND_BUCKET_NAME: der Name des Backend-Buckets
Alternativ können Sie die Rolle „Nutzer von Compute-Load-Balancer-Diensten“ mit dem gcloud compute backend-buckets add-iam-policy-binding-Befehl zuweisen.
  gcloud compute backend-buckets add-iam-policy-binding BACKEND_BUCKET_NAME \
      --member="user:LOAD_BALANCER_ADMIN" \
      --role="roles/compute.loadBalancerServiceUser" \
      --project=SERVICE_PROJECT_B_ID \

HTTP-Anfrage an den Load Balancer senden

Senden Sie eine Anfrage von einer internen Client-VM an die Weiterleitungsregel des Load-Balancers.

IP-Adresse der Weiterleitungsregel des Load-Balancers abrufen

Führen Sie die folgenden Schritte aus, um die IP-Adresse der Weiterleitungsregel des Load Balancers abzurufen:

  1. Rufen Sie die IP-Adresse der Weiterleitungsregel des Load-Balancers (http-fw-rule-1) ab, die sich in der Region us-east1 befindet.

    gcloud compute forwarding-rules describe http-fw-rule-1 \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  2. Rufen Sie die IP-Adresse der Weiterleitungsregel des Load-Balancers (http-fw-rule-2) ab, die sich in der Region asia-east1 befindet.

    gcloud compute forwarding-rules describe http-fw-rule-2 \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie SERVICE_PROJECT_A_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt A zugewiesen ist.

    Kopieren Sie die zurückgegebene IP-Adresse, um sie in den folgenden Schritten als FORWARDING_RULE_IP_ADDRESS zu verwenden.

Client-VM zum Testen der Konnektivität erstellen

Führen Sie die folgenden Schritte aus, um eine Client-VM zum Testen der Konnektivität zu erstellen:

  1. Erstellen Sie eine Client-VM mit dem Namen client-a in der Region us-east1.

    gcloud compute instances create client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \
        --zone=us-east1-c \
        --tags=allow-ssh \
        --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Google Cloud Projekt-ID, die dem Hostprojekt zugewiesen ist
    • SERVICE_PROJECT_A_ID: die Google Cloud -Projekt-ID, die dem Dienstprojekt A zugewiesen ist
  2. Stellen Sie eine SSH-Verbindung zur Client-VM her.

     gcloud compute ssh client-a \
         --zone=us-east1-c \
         --project=SERVICE_PROJECT_A_ID
    

    Ersetzen Sie SERVICE_PROJECT_A_ID durch dieGoogle Cloud Projekt-ID, die dem Dienstprojekt A zugewiesen ist.

  3. In diesem Beispiel hat der regionenübergreifende interne Application Load Balancer virtuelle Frontend-IP-Adressen (VIPs) sowohl in der Region us-east1 als auch in der Region asia-east1 im VPC-Netzwerk. Stellen Sie mit curl eine HTTP-Anfrage an die VIP in einer der beiden Regionen.

    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
    
    curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
    

    Ersetzen Sie FORWARDING_RULE_IP_ADDRESS durch die IP-Adresse der Weiterleitungsregel des Load-Balancers.

Informationen zum Testen der Hochverfügbarkeit finden Sie in diesem Dokument im Abschnitt Hochverfügbarkeit testen.

Nächste Schritte