Atelier de programmation sur la mutabilité de Private Service Connect

1. Introduction

Private Service Connect est une fonctionnalité de mise en réseau de Google Cloud qui permet aux clients d'accéder à des services gérés en mode privé depuis leur réseau VPC. De même, il permet aux producteurs de services gérés d'héberger ces services dans leurs propres réseaux VPC séparés et de proposer une connexion privée à leurs clients.

Jusqu'à présent, une fois les services PSC exposés via un rattachement de service, il était impossible de modifier les équilibreurs de charge de service sans supprimer le rattachement de service et perturber la connectivité des points de terminaison PSC des clients. L'introduction de la mutabilité PSC permet aux producteurs de mettre à jour leur équilibreur de charge tout en préservant la connexion au point de terminaison PSC. Le fait de maintenir la connexion du point de terminaison PSC au rattachement de service tout en modifiant l'équilibreur de charge présente l'avantage de ne nécessiter aucune action du côté du consommateur.

Pour le moment, la mutabilité des PSC est compatible avec

  • Migration vers une règle de transfert d'équilibreur de charge du même type (par exemple, Network Passthrough vers Network Passthrough)
  • Migration vers une règle de transfert d'équilibreur de charge d'un autre type (par exemple, Équilibreur de charge réseau passthrough vers équilibreur de charge d'application)

La mutabilité de PSC ne permet pas de modifier la règle de transfert sur place.

Dans cet atelier, vous allez créer un service Web de producteur exposé via un équilibreur de charge réseau passthrough interne, vous assurer que le service est connecté via un point de terminaison PSC, puis mettre à jour l'association du rattachement de service vers une nouvelle règle de transfert vers un équilibreur de charge d'application interne.

Points abordés

  • Créez un service Web Apache simple exposé en tant que service de producteur PSC.
  • Créez un point de terminaison PSC.
  • Créez une zone privée Cloud DNS pour les appels de service consommateur.
  • Mettez à jour la règle de transfert associée au rattachement de service à l'aide de la mutabilité PSC.

Prérequis

  • Un projet Google Cloud avec des autorisations de propriétaire
  • Connaissances de base de la mise en réseau Google Cloud

2. Environnement de test

Traditionnellement, les producteurs et les consommateurs travaillent dans des projets différents. Pour plus de simplicité, nous effectuerons toutes les actions dans le même projet, mais chaque étape sera associée à un projet de producteur ou de consommateur au cas où l'utilisateur préférerait travailler dans des projets différents.

Pour cet atelier, nous allons commencer par créer un VPC de producteur avec trois sous-réseaux : un pour héberger le service de producteur et la VM de test, un pour les règles de transfert de l'équilibreur de charge et un pour le sous-réseau NAT PSC. Nous aurons besoin d'un routeur Cloud Router et d'un service Cloud NAT pour accéder à Internet et télécharger les packages Linux. Nous allons exposer notre service Apache, configuré via un groupe d'instances non géré, via un équilibreur de charge réseau passthrough interne régional et associer la règle de transfert à un rattachement de service.

Du côté consommateur, nous allons créer un réseau VPC consommateur avec un seul sous-réseau pour héberger notre point de terminaison PSC et une VM cliente de test. Nous allons configurer une zone privée Cloud DNS pour accéder au service via un nom d'hôte.

Pour illustrer la fonctionnalité de mutabilité du PSC, nous allons ajouter deux sous-réseaux supplémentaires côté producteur : un pour héberger la nouvelle VM de service et un pour le sous-réseau proxy réservé de l'équilibreur de charge. Nous allons créer une VM hébergeant un serveur Web Apache, à nouveau configuré via un groupe d'instances non géré, et l'exposer via un nouvel équilibreur de charge d'application interne régional. Nous mettrons à jour le rattachement de service pour qu'il pointe vers la nouvelle règle de transfert et nous vérifierons que la connectivité côté consommateur est toujours en place.

683e2b440a0cc07f.png

3. Préparation

Configuration de l'environnement au rythme de chacun

  1. Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
  • L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet.
  • Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
  1. Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.

Démarrer Cloud Shell

Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.

Dans la console Google Cloud, cliquez sur l'icône Cloud Shell dans la barre d'outils supérieure :

Activer Cloud Shell

Le provisionnement et la connexion à l'environnement prennent quelques instants seulement. Une fois l'opération terminée, le résultat devrait ressembler à ceci :

Capture d'écran du terminal Google Cloud Shell montrant que l'environnement est connecté

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud, ce qui améliore nettement les performances du réseau et l'authentification. Vous pouvez effectuer toutes les tâches de cet atelier de programmation dans un navigateur. Vous n'avez rien à installer.

4. Avant de commencer

Activer les API

Dans Cloud Shell, assurez-vous que l'ID de votre projet est configuré.

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

Activez tous les services nécessaires.

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

5. Créer un réseau de producteurs [Projet de producteur]

Créer un réseau VPC

Depuis Cloud Shell

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

Créer des sous-réseaux

Nous allons commencer par déployer trois sous-réseaux dans le VPC du producteur. L'un servira à déployer le service de producteur, l'autre aux règles de transfert de l'équilibreur de charge et le dernier sera associé au rattachement de service PSC pour notre sous-réseau NAT PSC.

Depuis 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

Créer Cloud NAT

Un Cloud NAT est nécessaire pour installer les packages appropriés pour nos services de production.

Depuis Cloud Shell

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

Depuis Cloud Shell

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

Créer une stratégie et des règles de pare-feu réseau

Depuis 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

Pour permettre à IAP de se connecter à vos instances de VM, créez une règle de pare-feu qui :

  • S'applique à toutes les instances de VM auxquelles vous souhaitez être accessible à l'aide d'IAP.
  • Autorise le trafic entrant à partir de la plage d'adresses IP 35.235.240.0/20. Cette plage contient toutes les adresses IP qu'IAP utilise pour le transfert TCP.

Depuis 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

Nous allons commencer par trois règles de pare-feu. L'une autorisera l'accès aux VM pour les vérifications d'état de l'équilibreur de charge (2000), l'autre autorisera l'accès aux VM à partir de la plage NAT du PSC (3000) et la dernière autorisera la connectivité entre les VM du sous-réseau de service à des fins de test (4000). Nous allons créer toutes les règles pour le port 80, car nous allons l'utiliser pour notre service.

Depuis 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. Créer un service producteur [projet producteur]

Nous allons créer un service Web Apache simple à l'aide d'un groupe d'instances non géré qui affiche "I am a Producer Service" (Je suis un service de producteur).

Créer une instance

Depuis 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'

Créer un groupe d'instances non géré

Depuis Cloud Shell

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

Ajoutez producer-service-vm au groupe d'instances non géré que nous venons de créer.

Depuis Cloud Shell

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

Créer des composants pour l'équilibreur de charge

Pour la version 1 du service de producteur, nous exposerons le service à l'aide d'un équilibreur de charge réseau passthrough sur le port 80.

Déployez la vérification de l'état pour le port 80.

Depuis Cloud Shell

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

Déployez le service de backend et ajoutez le backend au service de backend.

Depuis 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

Créez l'adresse IP statique qui sera utilisée pour la règle de transfert de l'équilibreur de charge.

Depuis Cloud Shell

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

Créez la règle de transfert de l'équilibreur de charge exposant le port 80, en utilisant le service de backend et l'adresse IP que nous avons créés précédemment.

Depuis 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. Tester le service producteur [projet producteur]

Créez une VM de test dans le sous-réseau producer-service-subnet, connectez-vous à la VM et testez un appel au service Apache.

Depuis Cloud Shell

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

Depuis Cloud Shell

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

Résultat attendu

I am a Producer Service.

8. Exposer le service producteur via un rattachement de service [projet producteur]

Créez le rattachement de service. Associez-le à la règle de transfert que nous avons créée à l'aide du sous-réseau PSC-NAT.

Depuis 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

Notez l'URI du rattachement de service (selfLink), car vous en aurez besoin lors d'une prochaine étape pour la configuration du point de terminaison PSC. Vous pouvez l'obtenir en exécutant la commande suivante dans Cloud Shell.

Depuis Cloud Shell

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

Exemple de sortie

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

Copiez l'URI à partir de projects.

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

9. Créer un réseau de consommateurs [projet de consommateur]

Créer un réseau VPC

Depuis Cloud Shell

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

Créer un sous-réseau

Un seul sous-réseau sera déployé, sur lequel nous déploierons le point de terminaison PSC et une VM client de test.

Depuis Cloud Shell

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

Créer une stratégie et des règles de pare-feu réseau

Depuis 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

Nous allons également configurer le VPC consommateur pour qu'il utilise IAP pour SSH.

Depuis 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. Créer le point de terminaison Private Service Connect [projet client]

Réservez l'adresse IP statique qui sera utilisée pour le point de terminaison PSC.

Depuis Cloud Shell

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

Créez le point de terminaison PSC à l'aide de l'adresse IP statique réservée et de l'URI du rattachement de service que nous avons notés précédemment.

Depuis 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. Configurer une zone DNS privée pour le point de terminaison PSC [projet consommateur]

À l'aide de Cloud DNS, nous allons configurer une zone DNS privée avec le nom DNS myservice.com, à utiliser avec notre point de terminaison PSC.

Depuis 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"

Créez un enregistrement A pour myservice.com et faites-le pointer vers l'adresse IP du point de terminaison PSC.

Depuis 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. Tester le point de terminaison PSC [projet consommateur]

Créer une VM cliente

Depuis Cloud Shell

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

Tester la connectivité du point de terminaison PSC

Depuis Cloud Shell

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

Résultat attendu

I am a Producer Service.

Dans la prochaine partie de l'atelier de programmation, nous allons créer le nouveau service de producteur et y migrer. Nous allons ainsi vous montrer la fonctionnalité de mutabilité du PSC, qui permet cette mise à jour fluide sans nécessiter de mise à jour de la configuration côté consommateur.

13. Créer un service de producteur mis à jour [projet de producteur]

Pour mettre à jour notre service de production, nous allons déployer une nouvelle VM exécutant un serveur Web Apache similaire avec le message "Je suis un NOUVEAU service de production". Nous allons ajouter cette VM à un nouveau groupe d'instances non géré et utiliser ce groupe d'instances non géré comme backend pour notre nouvel équilibreur de charge. Au lieu d'utiliser un équilibreur de charge réseau passthrough, nous allons mettre à jour notre équilibreur de charge pour qu'il devienne un équilibreur de charge d'application interne régional.

Mettre à jour le réseau

Créez un sous-réseau qui sera utilisé comme sous-réseau proxy réservé pour l'équilibreur de charge d'application.

Depuis 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

Créez un sous-réseau dans lequel notre nouveau service sera hébergé.

Depuis Cloud Shell

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

Créez une règle de pare-feu qui autorisera la connectivité à notre nouveau service de producteur à partir du sous-réseau proxy réservé.

Depuis 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

Créer une instance

Depuis 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'

Créer un groupe d'instances non géré

Depuis 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

Créer des composants d'équilibreur de charge

Créez le service de backend : Notez que nous utilisons le schéma d'équilibrage de charge INTERNAL_MANAGED, car nous passons à un équilibreur de charge d'application interne.

Depuis 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

Ajoutez le groupe d'instances non géré en tant que backend au service de backend.

Depuis Cloud Shell

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

Créez le mappage d'URL et les proxys HTTP cibles.

Depuis 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

Créez l'adresse IP statique que nous utiliserons pour notre règle de transfert. Elle proviendra du même sous-réseau que celui utilisé pour la règle de transfert d'origine.

Depuis Cloud Shell

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

Créez la règle de transfert.

Depuis 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. Tester le service producteur mis à jour [projet producteur]

Nous allons utiliser la même VM de test que celle que nous avons créée pour tester le service initialement déployé.

Depuis Cloud Shell

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

Notez que nous appelons une adresse IP mise à jour. 192.168.0.3 est l'adresse IP de notre équilibreur de charge d'application interne régional.

Résultat attendu

I am a NEW Producer Service.

15. Mettre à jour le rattachement de service [projet du producteur]

Pour mieux visualiser la mise à jour de la règle de transfert de l'attachement de service, nous pouvons exécuter une description de l'attachement de service avant et après la modification.

Depuis Cloud Shell

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

Résultat attendu

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

Mettez à jour le rattachement de service.

Depuis Cloud Shell

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

Exécutez à nouveau la commande "describe" pour afficher la nouvelle règle de transfert.

Depuis Cloud Shell

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

Résultat attendu

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

16. Tester à nouveau la connexion PSC du consommateur [projet consommateur]

Connectez-vous au même client consommateur.

Depuis Cloud Shell

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

Résultat attendu

 I am a NEW Producer Service.

Félicitations ! Vous avez réussi à mettre à jour un équilibreur de charge de service de producteur PSC sans avoir à modifier la configuration côté consommateur.

17. Étapes de nettoyage [projet client]

Supprimer les composants de l'atelier à partir d'un seul terminal Cloud Shell

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. Étapes de nettoyage [projet producteur]

Supprimer les composants de l'atelier à partir d'un seul terminal Cloud Shell

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. Félicitations !

Bravo ! Vous avez terminé cet atelier de programmation.

Points abordés

  • Créez un service Web Apache simple exposé en tant que service de producteur PSC.
  • Créez un point de terminaison PSC.
  • Créez une zone privée Cloud DNS pour les appels de service consommateur.
  • Mettez à jour la règle de transfert associée au rattachement de service à l'aide de la mutabilité PSC.