Codelab zur Unveränderlichkeit von Private Service Connect

1. Einführung

Private Service Connect ist eine Funktion des Google Cloud-Netzwerks, mit der Nutzer privat aus ihrem VPC-Netzwerk auf verwaltete Dienste zugreifen können. Ebenso können Ersteller verwalteter Dienste diese Dienste in ihren eigenen separaten VPC-Netzwerken hosten und ihren Nutzern eine private Verbindung bieten.

Bisher konnten keine Änderungen an Dienst-Load-Balancern vorgenommen werden, ohne den Dienstanhang zu entfernen und die Verbindung zum PSC-Endpunkt des Nutzers zu unterbrechen, sobald PSC-Dienste über einen Dienstanhang bereitgestellt wurden. Durch die Einführung der PSC-Mutabilität können Ersteller ihren Load-Balancer aktualisieren, ohne die PSC-Endpunktverbindung zu unterbrechen. Wenn Sie die PSC-Endpunktverbindung zur Dienstanhänge beibehalten, während Sie den Load Balancer ändern, ist keine Aktion auf der Consumer-Seite erforderlich.

Derzeit unterstützt die PSC-Mutabilität

  • Migration zu einer Weiterleitungsregel für Load-Balancer desselben Typs (z. B. Network Passthrough zu Network Passthrough)
  • Migration zu einer Weiterleitungsregel eines Load Balancers eines anderen Typs (z. B. Network Passthrough zum Application Load Balancer)

Die Unveränderlichkeit von PSCs unterstützt keine Bearbeitung der Weiterleitungsregel.

In diesem Lab erstellen Sie einen Producer-Webdienst, der über einen internen Passthrough-Netzwerk-Load-Balancer bereitgestellt wird. Sie sorgen dafür, dass der Dienst über einen PSC-Endpunkt verbunden ist, und aktualisieren dann die Zuordnung des Dienstanhangs zu einer neuen Weiterleitungsregel für einen internen Application Load Balancer.

Lerninhalte

  • Erstellen Sie einen einfachen Apache-Webdienst, der als PSC-Producer-Dienst verfügbar gemacht wird.
  • Erstellen Sie einen PSC-Endpunkt.
  • Erstellen Sie eine private Cloud DNS-Zone für die Dienstaufrufe des Kunden.
  • Aktualisieren Sie die mit dem Dienstanhang verknüpfte Weiterleitungsregel mit PSC Mutability.

Voraussetzungen

  • Ein Google Cloud-Projekt mit Inhaberberechtigungen
  • Grundkenntnisse in Google Cloud-Netzwerken

2. Testumgebung

Normalerweise arbeiten Ersteller und Nutzer in verschiedenen Projekten. Der Einfachheit halber führen wir alle Aktionen im selben Projekt aus. Jeder Schritt wird jedoch mit „Producer“- oder „Consumer“-Projekten gekennzeichnet, falls der Nutzer lieber in verschiedenen Projekten arbeiten möchte.

In diesem Lab erstellen wir zuerst die Producer-VPC mit drei Subnetzen: eines für den Erstellerdienst und die Test-VM, eines für die Weiterleitungsregeln des Load Balancers und ein PSC-NAT-Subnetz. Wir benötigen einen Cloud Router und Cloud NAT für die Internetverfügbarkeit, um Linux-Pakete herunterzuladen. Wir stellen unseren Apache-Dienst, der über eine nicht verwaltete Instanzgruppe konfiguriert wird, über einen internen regionalen Network Passthrough Load Balancer bereit und verknüpfen die Weiterleitungsregel mit einem Dienstanhang.

Auf der Nutzerseite erstellen wir „consumer-vpc“ mit einem einzelnen Subnetz zum Hosten unseres PSC-Endpunkts und einer Test-Client-VM. Wir konfigurieren eine private Cloud DNS-Zone, um über einen Hostnamen auf den Dienst zuzugreifen.

Um die Funktion zur Änderung von PSC-Endpunkten zu demonstrieren, fügen wir auf der Erstellerseite zwei zusätzliche Subnetze hinzu: eines für die neue Dienst-VM und eines für das Nur-Proxy-Subnetz des Load Balancers. Wir erstellen eine neue VM, auf der ein Apache-Webserver gehostet wird. Sie wird wieder über eine nicht verwaltete Instanzgruppe konfiguriert und über einen neuen internen regionalen Application Load Balancer bereitgestellt. Wir aktualisieren den Dienstanhang, sodass er auf die neue Weiterleitungsregel verweist, und testen, ob die Verbindung auf der Nutzerseite weiterhin besteht.

683e2b440a0cc07f.png

3. Einrichtung und Anforderungen

Umgebung zum selbstbestimmten Lernen einrichten

  1. Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können sie jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich (kann nach dem Festlegen nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf Ihre Projekt-ID verweisen (in der Regel als PROJECT_ID angegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen Namen versuchen und sehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen.
  • Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
  1. Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs kostet wenig oder gar nichts. Wenn Sie Ressourcen herunterfahren möchten, um Kosten zu vermeiden, die über diese Anleitung hinausgehen, können Sie die erstellten Ressourcen oder das Projekt löschen. Neue Google Cloud-Nutzer können am kostenlosen Testzeitraum mit einem Guthaben von 300$ teilnehmen.

Cloud Shell starten

Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:

Cloud Shell aktivieren

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Screenshot des Google Cloud Shell-Terminals, auf dem zu sehen ist, dass die Umgebung verbunden ist

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.

4. Hinweis

APIs aktivieren

Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export project=[YOUR-PROJECT-NAME]
export region=us-central1
export zone=$region-a
echo $project
echo $region
echo $zone

Alle erforderlichen Dienste aktivieren

gcloud services enable compute.googleapis.com
gcloud services enable dns.googleapis.com

5. Build Producer Network [Producer Project]

VPC-Netzwerk erstellen

Über Cloud Shell

gcloud compute networks create producer-vpc \
    --subnet-mode=custom

Subnetze erstellen

Zuerst stellen wir drei Subnetze im Producer-VPC bereit. Eines für die Bereitstellung des Diensterstellerdienstes, eines für die Weiterleitungsregeln des Load Balancers und eines, das dem PSC-Dienstanhang für unser PSC-NAT-Subnetz zugeordnet wird.

Über Cloud Shell

gcloud compute networks subnets create producer-service-subnet \
    --network=producer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

gcloud compute networks subnets create producer-fr-subnet \
        --network=producer-vpc \
        --range=192.168.0.0/28 \
        --region=$region

gcloud compute networks subnets create psc-nat-subnet \
    --network=producer-vpc \
    --range=10.100.0.0/28 \
    --region=$region \
    --purpose=PRIVATE_SERVICE_CONNECT

Cloud NAT erstellen

Für die Installation der richtigen Pakete für unsere Producer-Dienste ist ein Cloud NAT erforderlich.

Über Cloud Shell

gcloud compute routers create $region-cr \
    --network=producer-vpc \
    --region=$region

Über Cloud Shell

gcloud compute routers nats create $region-nat \
    --router=$region-cr \
    --region=$region \
    --nat-all-subnet-ip-ranges \
    --auto-allocate-nat-external-ips

Richtlinie und Regeln für die Netzwerk-Firewall erstellen

Über Cloud Shell

gcloud compute network-firewall-policies create producer-vpc-policy --global

gcloud compute network-firewall-policies associations create \
    --firewall-policy producer-vpc-policy \
    --network producer-vpc \
    --name network-producer-vpc \
    --global-firewall-policy

Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:

  • Gilt für alle VM-Instanzen, die über IAP zugänglich sein sollen.
  • Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.

Über Cloud Shell

gcloud compute network-firewall-policies rules create 1000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "SSH with IAP" \
    --direction INGRESS \
    --src-ip-ranges 35.235.240.0/20 \
    --layer4-configs tcp:22  \
    --global-firewall-policy

Wir beginnen mit drei Firewallregeln. Eine erlaubt den Zugriff auf VMs für die Systemdiagnosen des Load-Balancers (2000), eine den Zugriff auf die VMs aus dem PSC-NAT-Bereich (3000) und eine die Konnektivität zwischen VMs im Dienstsubnetz zu Testzwecken (4000). Wir erstellen alle Regeln für Port 80, da wir diesen Port für unseren Dienst verwenden.

Über Cloud Shell

gcloud compute network-firewall-policies rules create 2000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "LB healthchecks" \
    --direction INGRESS \
    --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

gcloud compute network-firewall-policies rules create 3000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow access from PSC NAT subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.100.0.0/28 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

 gcloud compute network-firewall-policies rules create 4000 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow access between producer service VMs and testing client for testing purposes" \
    --direction INGRESS \
    --src-ip-ranges 10.0.0.0/28 \
    --layer4-configs tcp:80 \
    --global-firewall-policy

6. Producer-Dienst erstellen [Producer-Projekt]

Wir erstellen einen einfachen Apache-Webdienst mit einer nicht verwalteten Instanzgruppe, der „I am a Producer Service.“ anzeigt.

Instanz erstellen

Über Cloud Shell

gcloud compute instances create producer-service-vm \
    --network producer-vpc \
    --subnet producer-service-subnet \
    --zone $zone \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a Producer Service." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

Nicht verwaltete Instanzgruppe erstellen

Über Cloud Shell

gcloud compute instance-groups unmanaged create producer-uig \
  --zone=$zone

Fügen Sie die VM „producer-service-vm“ der nicht verwalteten Instanzgruppe hinzu, die wir gerade erstellt haben.

Über Cloud Shell

gcloud compute instance-groups unmanaged add-instances producer-uig \
  --zone=$zone \
  --instances=producer-service-vm

Load Balancer-Komponenten erstellen

Für Version 1 des Producer-Dienstes stellen wir den Dienst über einen Network Passthrough Load Balancer auf Port 80 bereit.

Stellen Sie die Systemdiagnose für Port 80 bereit.

Über Cloud Shell

gcloud compute health-checks create http producer-hc \
        --region=$region

Stellen Sie den Back-End-Dienst bereit und fügen Sie dem Back-End-Dienst das Back-End hinzu.

Über Cloud Shell

gcloud compute backend-services create producer-bes \
  --load-balancing-scheme=internal \
  --protocol=tcp \
  --region=$region \
  --health-checks=producer-hc \
  --health-checks-region=$region

gcloud compute backend-services add-backend producer-bes \
  --region=$region \
  --instance-group=producer-uig \
  --instance-group-zone=$zone

Erstellen Sie die statische IP-Adresse, die für die Weiterleitungsregel des Load-Balancers verwendet wird.

Über Cloud Shell

gcloud compute addresses create producer-fr-ip\
  --region $region \
  --subnet producer-fr-subnet \
  --addresses 192.168.0.2

Erstellen Sie die Weiterleitungsregel für den Load-Balancer, die Port 80 freigibt, und verwenden Sie dabei den Backend-Dienst und die IP-Adresse, die wir zuvor erstellt haben.

Über Cloud Shell

gcloud compute forwarding-rules create producer-fr \
  --region=$region \
  --load-balancing-scheme=internal \
  --network=producer-vpc \
  --subnet=producer-fr-subnet \
  --address=producer-fr-ip \
  --ip-protocol=TCP \
  --ports=80 \
  --backend-service=producer-bes \
  --backend-service-region=$region

7. Producer-Dienst testen [Producer-Projekt]

Erstellen Sie eine Test-VM im Subnetz des Erstellerdienstes, melden Sie sich in der VM an und testen Sie einen Aufruf des Apache-Dienstes.

Über Cloud Shell

 gcloud compute instances create producer-test-vm \
    --zone=$zone \
    --subnet=producer-service-subnet \
    --no-address

Über Cloud Shell

gcloud compute ssh producer-test-vm \
    --zone=$zone \
    --command="curl -s 192.168.0.2/index.html"

Erwartete Ausgabe

I am a Producer Service.

8. Producer-Dienst über Dienstanhang freigeben [Producer-Projekt]

Erstellen Sie den Dienstanhang. Ordnen Sie sie der Weiterleitungsregel zu, die wir mit dem psc-nat-subnet erstellt haben.

Über Cloud Shell

gcloud compute service-attachments create producer-attachment \
    --region=$region \
    --producer-forwarding-rule=producer-fr  \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=psc-nat-subnet

Notieren Sie sich den URI des Dienstanhangs (selfLink), da Sie ihn in einem der nächsten Schritte für die PSC-Endpunktkonfiguration benötigen. Sie können sie abrufen, indem Sie Folgendes in Cloud Shell ausführen.

Über Cloud Shell

gcloud compute service-attachments describe producer-attachment --region=$region

Beispielausgabe:

connectionPreference: ACCEPT_AUTOMATIC
creationTimestamp: '2026-02-10T07:50:04.250-08:00'
description: ''
enableProxyProtocol: false
fingerprint: xxx
id: 'xxx'
kind: compute#serviceAttachment
name: producer-attachment
natSubnets:
- https://www.googleapis.com/compute/v1/projects/$project/regions/$region/subnetworks/psc-nat-subnet
pscServiceAttachmentId:
  high: 'xxx'
  low: 'xxx'
reconcileConnections: false
region: https://www.googleapis.com/compute/v1/projects/$project/regions/$region
selfLink: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/serviceAttachments/producer-attachment
targetService: https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr

Kopieren Sie den URI ab projects.

Beispiel:projects/$project/regions/$region/serviceAttachments/producer-attachment

9. Nutzer-Netzwerk erstellen [Nutzerprojekt]

VPC-Netzwerk erstellen

Über Cloud Shell

gcloud compute networks create consumer-vpc \
    --subnet-mode=custom

Subnetz erstellen

Es wird ein einzelnes Subnetz bereitgestellt, in dem der PSC-Endpunkt und eine Testclient-VM bereitgestellt werden.

Über Cloud Shell

gcloud compute networks subnets create consumer-subnet \
    --network=consumer-vpc \
    --range=10.0.0.0/28 \
    --region=$region

Richtlinie und Regeln für die Netzwerk-Firewall erstellen

Über Cloud Shell

gcloud compute network-firewall-policies create consumer-vpc-policy --global

gcloud compute network-firewall-policies associations create \
    --firewall-policy consumer-vpc-policy \
    --network consumer-vpc \
    --name network-consumer-vpc \
    --global-firewall-policy

Außerdem konfigurieren wir die Consumer-VPC für die Verwendung von IAP für SSH.

Über Cloud Shell

gcloud compute network-firewall-policies rules create 1000 \
    --action ALLOW \
    --firewall-policy consumer-vpc-policy \
    --description "SSH with IAP" \
    --direction INGRESS \
    --src-ip-ranges 35.235.240.0/20 \
    --layer4-configs tcp:22  \
    --global-firewall-policy

10. Private Service Connect-Endpunkt erstellen [Nutzerprojekt]

Reservieren Sie die statische IP-Adresse, die für den PSC-Endpunkt verwendet wird.

Über Cloud Shell

gcloud compute addresses create psc-endpoint-ip \
    --region=$region \
    --subnet=consumer-subnet \
    --addresses 10.0.0.2

Erstellen Sie den PSC-Endpunkt mit der reservierten statischen IP-Adresse und dem URI des Dienstanhangs, den wir uns zuvor notiert haben.

Über Cloud Shell

gcloud compute forwarding-rules create psc-endpoint \
  --region=$region \
  --network=consumer-vpc \
  --address=psc-endpoint-ip \
  --target-service-attachment=projects/$project/regions/$region/serviceAttachments/producer-attachment

11. Private DNS-Zone für den PSC-Endpunkt konfigurieren [Consumer-Projekt]

Mit Cloud DNS konfigurieren wir eine private DNS-Zone mit dem DNS-Namen myservice.com, die mit unserem PSC-Endpunkt verwendet werden soll.

Über Cloud Shell

gcloud dns managed-zones create "consumer-service" \
    --dns-name=myservice.com \
    --description="consumer service dns" \
    --visibility=private \
    --networks=consumer-vpc

gcloud dns record-sets transaction start \
   --zone="consumer-service"

Erstellen Sie einen A-Eintrag für myservice.com und verweisen Sie darin auf die IP-Adresse des PSC-Endpunkts.

Über Cloud Shell

gcloud dns record-sets transaction add 10.0.0.2 \
   --name=myservice.com \
   --ttl=300 \
   --type=A \
   --zone="consumer-service"

gcloud dns record-sets transaction execute \
   --zone="consumer-service"

12. PSC-Endpunkt testen [Nutzerprojekt]

Client-VM erstellen

Über Cloud Shell

gcloud compute instances create consumer-client-vm \
    --zone=$zone \
    --subnet=consumer-subnet \
    --no-address

PSC-Endpunktverbindung testen

Über Cloud Shell

gcloud compute ssh consumer-client-vm \
    --zone=$zone \
    --command="curl -s myservice.com/index.html"

Erwartete Ausgabe

I am a Producer Service.

Im nächsten Teil des Codelabs erstellen wir den neuen Producer-Dienst und migrieren zu ihm. Dabei wird die PSC-Unveränderlichkeitsfunktion demonstriert, die dieses nahtlose Update ermöglicht, ohne dass Änderungen an der Consumer-Konfiguration erforderlich sind.

13. Aktualisierten Erstellerdienst erstellen [Erstellerprojekt]

Um unseren Erstellerdienst zu aktualisieren, stellen wir eine neue VM mit einem ähnlichen Apache-Webserver und der Meldung „I am a NEW Producer service.“ bereit. Wir fügen diese VM einer neuen nicht verwalteten Instanzgruppe hinzu und verwenden diese nicht verwaltete Instanzgruppe als Backend für unseren neuen Load-Balancer. Anstelle eines Network Passthrough Load Balancers aktualisieren wir unseren Load Balancer auf einen regionalen internen Application Load Balancer.

Netzwerk aktualisieren

Erstellen Sie ein neues Subnetz, das für das Nur-Proxy-Subnetz für den Application Load Balancer verwendet wird.

Über Cloud Shell

gcloud compute networks subnets create lb-proxy-subnet \
    --network=producer-vpc \
    --range=10.200.0.0/24 \
    --region=$region \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE

Erstellen Sie ein neues Subnetz, in dem unser neuer Dienst gehostet wird.

Über Cloud Shell

gcloud compute networks subnets create producer-service-new-subnet \
    --network=producer-vpc \
    --range=10.0.1.0/28 \
    --region=$region

Erstellen Sie eine neue Firewallregel, die Verbindungen zu unserem neuen Erstellerdienst über das Nur-Proxy-Subnetz zulässt.

Über Cloud Shell

 gcloud compute network-firewall-policies rules create 3001 \
    --action ALLOW \
    --firewall-policy producer-vpc-policy \
    --description "allow access from proxy only subnet" \
    --direction INGRESS \
    --src-ip-ranges 10.200.0.0/24 \
    --layer4-configs tcp:80  \
    --global-firewall-policy

Instanz erstellen

Über Cloud Shell

gcloud compute instances create new-producer-service-vm \
    --network producer-vpc \
    --subnet producer-service-new-subnet \
    --zone $zone \
    --no-address \
    --metadata startup-script='#! /bin/bash
    sudo apt-get update
    sudo apt-get install apache2 -y
    a2enmod ssl
    sudo a2ensite default-ssl
    echo "I am a NEW Producer Service." | \
    tee /var/www/html/index.html
    systemctl restart apache2'

Nicht verwaltete Instanzgruppe erstellen

Über Cloud Shell

gcloud compute instance-groups unmanaged create producer-new-uig \
  --zone=$zone

gcloud compute instance-groups unmanaged add-instances producer-new-uig \
  --zone=$zone \
  --instances=new-producer-service-vm

gcloud compute instance-groups unmanaged set-named-ports producer-new-uig \
    --named-ports=http:80 \
    --zone=$zone

Neue Load Balancer-Komponenten erstellen

Erstellen Sie den Back-End-Dienst. Wir verwenden das Load-Balancing-Schema INTERNAL_MANAGED, da wir auf einen internen Application Load Balancer umstellen.

Über Cloud Shell

gcloud compute backend-services create producer-new-bes \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --protocol=http \
  --region=$region \
  --health-checks=producer-hc \
  --health-checks-region=$region

Fügen Sie die nicht verwaltete Instanzgruppe als Backend zum Backend-Dienst hinzu.

Über Cloud Shell

gcloud compute backend-services add-backend producer-new-bes \
  --region=$region \
  --instance-group=producer-new-uig \
  --instance-group-zone=$zone

Erstellen Sie die URL-Zuordnung und die HTTP-Zielproxys.

Über Cloud Shell

gcloud compute url-maps create producer-url-map \
  --default-service=producer-new-bes \
  --region=$region

gcloud compute target-http-proxies create http-proxy \
  --url-map=producer-url-map \
  --region=$region

Erstellen Sie die statische IP-Adresse, die wir für unsere Weiterleitungsregel verwenden werden. Die IP-Adresse stammt aus demselben Subnetz, das wir für die ursprüngliche Weiterleitungsregel verwendet haben.

Über Cloud Shell

gcloud compute addresses create producer-fr-new-ip\
  --region $region \
  --subnet producer-fr-subnet \
  --addresses 192.168.0.3

Erstellen Sie die Weiterleitungsregel.

Über Cloud Shell

gcloud compute forwarding-rules create new-producer-fr \
  --load-balancing-scheme=INTERNAL_MANAGED \
  --network=producer-vpc \
  --subnet=producer-fr-subnet \
  --address=producer-fr-new-ip \
  --ports=80 \
  --region=$region \
  --target-http-proxy=http-proxy \
  --target-http-proxy-region=$region

14. Aktualisierten Producer-Dienst testen [Producer-Projekt]

Wir verwenden dieselbe Test-VM, die wir zum Testen des ursprünglich bereitgestellten Dienstes erstellt haben.

Über Cloud Shell

gcloud compute ssh producer-test-vm \
    --zone=$zone \
    --command="curl -s 192.168.0.3/index.html"

Wir rufen eine aktualisierte IP-Adresse an. 192.168.0.3 ist die IP-Adresse für unseren regionalen internen Application Load Balancer.

Erwartete Ausgabe

I am a NEW Producer Service.

15. Dienstanhang aktualisieren [Producer-Projekt]

Um die Aktualisierung der Weiterleitungsregel für die Dienstanhänge besser zu veranschaulichen, können wir vor und nach der Änderung einen „describe“-Befehl für den Dienstanhang ausführen.

Über Cloud Shell

gcloud compute service-attachments describe producer-attachment \
    --region=$region \
    --format="value(targetService)"

Erwartete Ausgabe

https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/producer-fr

Aktualisieren Sie den Dienstanhang.

Über Cloud Shell

gcloud compute service-attachments update producer-attachment \
  --region=$region \
  --target-service=projects/$project/regions/$region/forwardingRules/new-producer-fr

Führen Sie den Befehl „describe“ noch einmal aus, um die neue Weiterleitungsregel zu sehen.

Über Cloud Shell

gcloud compute service-attachments describe producer-attachment \
    --region=$region \
    --format="value(targetService)"

Erwartete Ausgabe

https://www.googleapis.com/compute/v1/projects/$project/regions/$region/forwardingRules/new-producer-fr

16. PSC-Verbindung des Nutzers noch einmal testen [Nutzerprojekt]

Melden Sie sich im selben Nutzerclient an.

Über Cloud Shell

gcloud compute ssh consumer-client-vm \
    --zone=$zone \
    --command="curl -s myservice.com/index.html"

Erwartete Ausgabe

 I am a NEW Producer Service.

Glückwunsch! Sie haben den Load-Balancer eines PSC-Producer-Dienstes erfolgreich aktualisiert, ohne dass auf der Consumer-Seite Konfigurationsänderungen erforderlich waren.

17. Bereinigungsschritte [Nutzerprojekt]

Lab-Komponenten über ein einzelnes Cloud Shell-Terminal löschen

gcloud dns record-sets delete myservice.com --zone="consumer-service" --type=A -q

gcloud dns managed-zones delete "consumer-service" -q

gcloud compute forwarding-rules delete psc-endpoint --region=$region -q

gcloud compute addresses delete psc-endpoint-ip --region=$region -q

gcloud compute instances delete consumer-client-vm --zone=$zone --project $project -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy consumer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy  --name=network-consumer-vpc --global-firewall-policy -q

gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q

gcloud compute networks subnets delete consumer-subnet --region $region -q

gcloud compute networks delete consumer-vpc -q

18. Bereinigungsschritte [Erstellerprojekt]

Lab-Komponenten über ein einzelnes Cloud Shell-Terminal löschen

gcloud compute service-attachments delete producer-attachment --region=$region -q

gcloud compute instances delete producer-test-vm --zone=$zone --project $project -q

gcloud compute forwarding-rules delete new-producer-fr --region=$region -q

gcloud compute addresses delete producer-fr-new-ip --region $region -q

gcloud compute target-http-proxies delete http-proxy --region $region -q

gcloud compute url-maps delete producer-url-map --region $region -q

gcloud compute backend-services delete producer-new-bes --region $region -q

gcloud compute instance-groups unmanaged delete producer-new-uig --zone $zone -q

gcloud compute instances delete new-producer-service-vm --zone $zone --project $project -q

gcloud compute networks subnets delete producer-service-new-subnet --region $region -q

gcloud compute networks subnets delete lb-proxy-subnet --region $region -q

gcloud compute forwarding-rules delete producer-fr --region=$region -q

gcloud compute addresses delete producer-fr-ip --region $region -q

gcloud compute backend-services delete producer-bes --region $region -q

gcloud compute health-checks delete producer-hc --region $region -q

gcloud compute instance-groups unmanaged delete producer-uig --zone $zone -q

gcloud compute instances delete producer-service-vm --zone $zone --project $project -q

gcloud compute network-firewall-policies rules delete 4000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 3001 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 3000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q

gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy  --name=network-producer-vpc --global-firewall-policy -q

gcloud compute network-firewall-policies delete producer-vpc-policy --global -q

gcloud compute routers nats delete $region-nat --router=$region-cr --region=$region -q

gcloud compute routers delete $region-cr --region=$region -q

gcloud compute networks subnets delete psc-nat-subnet --region=$region -q

gcloud compute networks subnets delete producer-fr-subnet --region=$region -q

gcloud compute networks subnets delete producer-service-subnet --region=$region -q

gcloud compute networks delete producer-vpc -q

19. Glückwunsch!

Herzlichen Glückwunsch zum Abschluss des Codelabs.

Behandelte Themen

  • Erstellen Sie einen einfachen Apache-Webdienst, der als PSC-Producer-Dienst verfügbar gemacht wird.
  • Erstellen Sie einen PSC-Endpunkt.
  • Erstellen Sie eine private Cloud DNS-Zone für die Dienstaufrufe des Kunden.
  • Aktualisieren Sie die mit dem Dienstanhang verknüpfte Weiterleitungsregel mit PSC Mutability.