Atelier de programmation sur l'équilibreur de charge HTTP externe avec gestion avancée du trafic (Envoy)

1. Introduction

Bienvenue dans l'atelier de programmation sur l'équilibreur de charge HTTP(S) externe avec gestion avancée du trafic (Envoy) !

La dernière version de l'équilibreur de charge HTTP(S) externe avec gestion avancée du trafic contient toutes les fonctionnalités de notre équilibreur de charge HTTP(S) externe global classique existant, mais avec une liste de fonctionnalités de gestion avancée du trafic en constante évolution. Certaines de ces fonctionnalités sont nouvelles dans nos équilibreurs de charge, tandis que d'autres améliorent les fonctionnalités existantes. Voici une liste partielle de ces fonctionnalités :

  • Répartition du trafic pondérée
  • Demander une mise en miroir
  • Détection des anomalies
  • Nouvelles tentatives de requête
  • Injection de pannes
  • Options supplémentaires d'affinité de session du backend
  • Options supplémentaires de transformation des en-têtes
  • Partage des ressources entre origines multiples (CORS)
  • Nouveaux algorithmes d'équilibrage de charge

Points abordés

  • Configurer un groupe d'instances géré, ainsi que les règles de pare-feu et le VPC associés
  • Utiliser les fonctionnalités avancées de gestion du trafic du nouvel équilibreur de charge
  • Découvrez comment valider le bon fonctionnement des fonctionnalités de gestion avancée du trafic.

Prérequis

  • Connaissances de base sur la gestion de réseaux et le protocole HTTP
  • Connaissances de base de la ligne de commande Unix/Linux

Topologie et cas d'utilisation de l'atelier de programmation

dd8bd5e8e1341878.png

Figure 1 : Topologie de routage de l'équilibreur de charge HTTP

Dans cet atelier de programmation, vous allez configurer trois groupes d'instances gérés, un dans l'Est, un dans l'Ouest et un dans le Centre. Vous allez créer un équilibreur de charge HTTPS externe global. L'équilibreur de charge utilisera plusieurs fonctionnalités de la liste des fonctionnalités avancées compatibles avec l'équilibreur de charge basé sur Envoy. Une fois le déploiement effectué, vous générerez une charge simulée et vérifierez que les configurations que vous avez définies fonctionnent correctement.

2. 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 n'avez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.

fbef9caa1602edd0.png

a99b7ace416376c4.png

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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.

Avant de commencer

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

gcloud config list project

gcloud config set project [YOUR-PROJECT-NAME]

PROJECT_ID=[YOUR-PROJECT-NAME]

echo $PROJECT_ID

Activer les API

Activez tous les services nécessaires.

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. Créer le réseau VPC

Créer un réseau VPC

Depuis Cloud Shell

gcloud compute networks create httplbs --subnet-mode=auto

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/httplbs].
NAME: httplbs
SUBNET_MODE: AUTO
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:

Créer des règles de pare-feu VPC

Après avoir créé le VPC, vous allez maintenant créer des règles de pare-feu. La règle de pare-feu sera utilisée pour autoriser toutes les adresses IP à accéder à l'adresse IP externe du site Web de l'application de test sur le port 80 pour le trafic HTTP.

Depuis Cloud Shell

gcloud compute firewall-rules create httplb-allow-http-rule \
--allow tcp:80 \
--network httplbs \
--source-ranges 0.0.0.0/0 \
--priority 700

Sortie

Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/httplb-allow-http-rule].
Creating firewall...done.
NAME: httplb-allow-http-rule
NETWORK: httplbs
DIRECTION: INGRESS
PRIORITY: 700
ALLOW: tcp:80
DENY:
DISABLED: False

4. Configurer les groupes d'instances gérés

Vous devez configurer des groupes d'instances gérés qui incluent les modèles pour les ressources de backend utilisées par l'équilibreur de charge HTTP. Nous allons d'abord créer des modèles d'instance qui définissent la configuration des VM à créer pour chaque région. Ensuite, pour un backend dans chaque région, nous allons créer un groupe d'instances géré qui fait référence à un modèle d'instance.

Les groupes d'instances gérés peuvent être zonaux ou régionaux. Pour cet exercice pratique, nous allons créer trois groupes d'instances gérés régionaux : un dans us-east1, un dans us-west1 et un dans us-central1.

Dans cette section, vous pouvez voir un script de démarrage prédéfini qui sera référencé lors de la création de l'instance. Ce script de démarrage installe et active les fonctionnalités du serveur Web que nous utiliserons pour simuler une application Web. N'hésitez pas à explorer ce script.

Créer les modèles d'instance Est, Ouest et Centre

La première étape consiste à créer le modèle d'instance us-east-1.

Depuis Cloud Shell

gcloud compute instance-templates create us-east1-template \
   --region=us-east1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-12 \
   --image-project=debian-cloud \
   --metadata=startup-script='#! /bin/bash
     apt-get update
     apt-get install apache2 -y
     a2ensite default-ssl
     a2enmod ssl
     vm_hostname="$(curl -H "Metadata-Flavor:Google" \
     http://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2'

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-east1-template].
NAME: us-east1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:02:37.511-08:00

L'étape suivante consiste à créer le modèle d'instance us-west-1.

Depuis Cloud Shell

gcloud compute instance-templates create us-west1-template \
   --region=us-west1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-12 \
   --image-project=debian-cloud \
   --metadata=startup-script='#! /bin/bash
     apt-get update
     apt-get install apache2 -y
     a2ensite default-ssl
     a2enmod ssl
     vm_hostname="$(curl -H "Metadata-Flavor:Google" \
     http://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2'

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-west1-template].
NAME: us-west1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:03:08.577-08:00

L'étape suivante consiste à créer le modèle d'instance us-central-1.

Depuis Cloud Shell

gcloud compute instance-templates create us-central1-template \
   --region=us-central1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-12 \
   --image-project=debian-cloud \
   --metadata=startup-script='#! /bin/bash
     apt-get update
     apt-get install apache2 -y
     a2ensite default-ssl
     a2enmod ssl
     vm_hostname="$(curl -H "Metadata-Flavor:Google" \
     http://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     systemctl restart apache2'

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-central1-template].
NAME: us-central1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:03:44.179-08:00

Vous pouvez maintenant vérifier que nos modèles d'instance ont bien été créés à l'aide de la commande gcloud suivante :

Depuis Cloud Shell

gcloud compute instance-templates list

Sortie

NAME                  MACHINE_TYPE   PREEMPTIBLE  CREATION_TIMESTAMP
us-central1-template   n1-standard-1         2021-11-09T09:25:37.263-08:00
us-east1-template      n1-standard-1         2021-11-09T09:24:35.275-08:00
us-west1-template      n1-standard-1         2021-11-09T09:25:08.016-08:00

Créer les groupes d'instances gérés Est, Ouest et Centre

Nous devons maintenant créer un groupe d'instances géré à partir des modèles d'instance que nous avons créés précédemment.

Depuis Cloud Shell

gcloud compute instance-groups managed create us-east1-mig \
--base-instance-name=us-east1-mig \
--size=1 \
--template=us-east1-template \
--zone=us-east1-b 

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-east1-b/instanceGroupManagers/us-east1-mig].
NAME: us-east1-mig
LOCATION: us-east1-b
SCOPE: zone
BASE_INSTANCE_NAME: us-east1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-east1-template
AUTOSCALED: no

Depuis Cloud Shell

gcloud compute instance-groups managed create us-west1-mig \
--base-instance-name=us-west1-mig \
--size=1 \
--template=us-west1-template \
--zone=us-west1-a  

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroupManagers/us-west1-mig].
NAME: us-west1-mig
LOCATION: us-west1-a
SCOPE: zone
BASE_INSTANCE_NAME: us-west1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-west1-template
AUTOSCALED: no

Depuis Cloud Shell

gcloud compute instance-groups managed create us-central1-mig \
--base-instance-name=us-central1-mig \
--size=1 \
--template=us-central1-template \
--zone=us-central1-a 

Sortie

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-central1-a/instanceGroupManagers/us-central1-mig].
NAME: us-central1-mig
LOCATION: us-central1-a
SCOPE: zone
BASE_INSTANCE_NAME: us-central1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-central1-template
AUTOSCALED: no

Nous pouvons vérifier que nos groupes d'instances ont bien été créés à l'aide de la commande gcloud suivante :

Depuis Cloud Shell

gcloud compute instance-groups list

Sortie

NAME                  LOCATION      SCOPE   NETWORK         MANAGED INSTANCES
us-central1-mig       us-central1   zone    httplbs          Yes      1
us-west1-mig          us-west1      zone    httplbs          Yes      1
us-east1-mig          us-east1      zone    httplbs          Yes      1

Vérifier le fonctionnement du serveur Web

Chaque instance est configurée pour exécuter un serveur Web Apache avec un script PHP simple qui affiche :

c87ca81d3125ac61.png

Pour vous assurer que vos serveurs Web fonctionnent correctement, accédez à Compute Engine > Instances de VM. Assurez-vous que vos nouvelles instances (par exemple, us-east1-mig-xxx) ont été créées conformément aux définitions de leur groupe d'instances.

À présent, envoyez une requête Web dans votre navigateur pour vous assurer que le serveur Web est en cours d'exécution (le démarrage peut prendre une minute). Sur la page "Instances de VM" sous Compute Engine, sélectionnez une instance créée par votre groupe d'instances, puis cliquez sur son adresse IP externe (publique).

Vous pouvez également accéder à http://<IP_Address> dans votre navigateur.

5. Configurer l'équilibreur de charge

Créer une vérification d'état

Nous devons d'abord créer une vérification d'état de base pour nous assurer que nos services sont opérationnels. Nous allons créer une vérification d'état de base. De nombreuses personnalisations plus avancées sont disponibles.

Depuis Cloud Shell

gcloud compute health-checks create http http-basic-check \
    --port 80

Réserver une adresse IP externe

Pour cette étape, vous devez réserver une adresse IP statique disponible dans le monde entier, qui sera ensuite associée à l'équilibreur de charge.

Depuis Cloud Shell

gcloud compute addresses create lb-ipv4-2 \
    --ip-version=IPV4 \
    --global

Assurez-vous de noter l'adresse IP réservée.

gcloud compute addresses describe lb-ipv4-2 \
    --format="get(address)" \
    --global

Créer des services de backend

Nous devons maintenant créer un service de backend pour chacun des groupes d'instances gérés que nous avons créés précédemment. Une pour l'Est, l'Ouest et le Centre.

Créer un service de backend pour le groupe d'instances géré "East".

Depuis Cloud Shell

gcloud compute backend-services create east-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Créer un service de backend pour le groupe d'instances géré "West".

Depuis Cloud Shell

gcloud compute backend-services create west-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Créer un service de backend pour le groupe d'instances géré central.

Depuis Cloud Shell

gcloud compute backend-services create central-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Ajouter des MIG aux services de backend

Maintenant que nous avons créé les services de backend respectifs pour chaque cluster d'application, nous devons ajouter les groupes d'instances gérés que nous avons créés précédemment à chaque service de backend.

Ajoutez le MIG Est au service de backend.

Depuis Cloud Shell

gcloud compute backend-services add-backend east-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-east1-mig \
    --instance-group-zone=us-east1-b \
    --global

Ajoutez le MIG Ouest au service de backend.

Depuis Cloud Shell

gcloud compute backend-services add-backend west-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-west1-mig \
    --instance-group-zone=us-west1-a \
    --global

Ajoutez le MIG central au service de backend.

Depuis Cloud Shell

gcloud compute backend-services add-backend central-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-central1-mig \
    --instance-group-zone=us-central1-a \
    --global

Créer un mappage d'URL

Le mappage d'URL est l'endroit où se trouveront les fonctionnalités de gestion avancée du trafic pour cet atelier. Nous devons créer un fichier .yaml qui contiendra la configuration. Dans le fichier .yaml, nous avons créé une correspondance de préfixe sur /roundrobbin. Seul le trafic correspondant à /roundrobbin sera donc affecté par ces configurations. Nous avons spécifié que 50 % du trafic devaient être dirigés vers le service backend-est et 50 % vers le service backend-ouest. Nous avons également ajouté une valeur d'en-tête de réponse :{test} qui sera présente dans toutes les réponses. Enfin, nous avons ajouté que tout le trafic doit être mis en miroir vers le service central-backend-service. Le trafic est dupliqué et envoyé ici à des fins de test uniquement.

Enregistrez l'exemple en tant que fichier .yaml sur votre ordinateur.

defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
kind: compute #urlMap
name: web-map-http
hostRules:
- hosts:
  - '*'
  pathMatcher: matcher1
pathMatchers:
- defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
  name: matcher1
  routeRules:
  - matchRules:
    - prefixMatch: /roundrobbin
    priority: 2
    headerAction:
        responseHeadersToAdd:
          - headerName: test
            headerValue: value
            replace: True
    routeAction:
        weightedBackendServices:
        - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
          weight: 50
        - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/west-backend-service
          weight: 50
        retryPolicy:
            retryConditions: ['502', '504']
            numRetries: 3
            perTryTimeout:
                seconds: 1
                nanos: 50
        requestMirrorPolicy:
          backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/central-backend-service

Créez le mappage d'URL en important le document depuis votre ordinateur. Notez que le chemin d'accès à la source varie en fonction de l'emplacement où vous enregistrez le fichier .yaml.

Depuis Cloud Shell

gcloud compute url-maps import web-map-http \
   --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \
   --global

Créer une interface HTTP

La dernière étape de la création de l'équilibreur de charge consiste à créer l'interface. Cela permettra de mapper l'adresse IP que vous avez réservée précédemment avec le mappage d'URL de l'équilibreur de charge que vous avez créé.

Depuis Cloud Shell

gcloud compute target-http-proxies create http-lb-proxy-adv \
    --url-map=web-map-http

Vous devez ensuite créer une règle de transfert globale qui associe l'adresse IP réservée précédemment au proxy HTTP.

Depuis Cloud Shell

gcloud compute forwarding-rules create http-content-rule \
    --load-balancing-scheme EXTERNAL_MANAGED \
    --address=lb-ipv4-2 \
    --global \
    --target-http-proxy=http-lb-proxy-adv \
    --ports=80

6. Vérifier que les fonctionnalités de trafic avancé fonctionnent

Pour vérifier que la fonctionnalité de répartition du trafic implémentée fonctionne, vous devez générer une certaine charge. Pour ce faire, nous allons créer une VM pour simuler une charge.

Créer une règle de pare-feu "Autoriser SSH"

Pour vous connecter en SSH à la VM à partir de laquelle nous générerons du trafic, vous devez d'abord créer une règle de pare-feu qui autorisera le trafic SSH vers la VM.

Depuis Cloud Shell

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

Sortie

NAME          NETWORK  DIRECTION  PRIORITY  ALLOW   DENY  DISABLED
fw-allow-ssh  httplbs  INGRESS    1000      tcp:22        False

Créer siege-vm

Vous allez maintenant créer la VM siege-vm que vous utiliserez pour générer de la charge.

Depuis Cloud Shell

gcloud compute instances create siege-vm \
    --network=httplbs \
    --zone=us-east4-c \
    --machine-type=e2-medium \
    --tags=allow-ssh,http-server \
    --metadata=startup-script='sudo apt-get -y install siege'

Sortie

NAME     ZONE        MACHINE_TYPE INTERNAL_IP  EXTERNAL_IP    STATUS
siege-vm us-east4-c  e2-medium    10.150.0.3   34.85.218.119  RUNNING

Vous pouvez ensuite vous connecter en SSH à la VM que vous avez créée. Une fois l'instance créée, cliquez sur SSH pour lancer un terminal et vous y connecter.

Une fois connecté, exécutez la commande suivante pour générer une charge. Utilisez l'adresse IP que vous avez réservée précédemment pour l'équilibreur de charge HTTP externe.

Depuis Cloud Shell

siege -c 250 http://[$lb-ipv4-2]/roundrobbin

Sortie

New configuration template added to /home/cloudcurriculumdeveloper/.siege
Run siege -C to view the current settings in that file
[alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory
** SIEGE 4.0.2
** Preparing 250 concurrent users for battle.
The server is now under siege...

Vérifier la répartition de la charge

Maintenant que Siege est en cours d'exécution, il est temps de vérifier que le trafic est réparti de manière égale entre les groupes d'instances gérés est et ouest. Vous pouvez également vérifier que la mise en miroir du trafic fonctionne et que le trafic est envoyé au groupe d'instances géré central.

Dans la console Cloud, dans le menu de navigation, cliquez sur Services réseau > Équilibrage de charge. Sélectionnez l'équilibreur de charge web-map-http. Accédez à l'onglet "Surveillance" pour afficher le graphique ci-dessous.

f4d6803db44be253.png

Vous pourrez voir la répartition du trafic en temps réel vers ce MIG. Le trafic est réparti de manière égale, car vous avez configuré une répartition Round Robin 50/50.

Pour vérifier que la stratégie de mise en miroir du trafic que vous avez créée fonctionne, vous devez vérifier l'utilisation du groupe d'instances géré central-backend-service. Pour ce faire, accédez à Compute Engine > Groupes d'instances, puis sélectionnez us-central1-mig. Accédez ensuite à l'onglet "Monitoring" (Surveillance).

cf25e44d511529e7.png

Les graphiques s'affichent, ce qui indique que le trafic a été mis en miroir dans ce groupe d'instances géré.

Arrêter le siège

Maintenant que vous avez démontré que la répartition avancée du trafic fonctionne, il est temps d'arrêter le siège. Pour ce faire, revenez au terminal SSH de siege-vm et appuyez sur CTRL+C pour arrêter l'exécution de siege.

Valider l'envoi de l'en-tête de réponse

Avant de procéder au nettoyage, vous pouvez rapidement vérifier que l'en-tête de réponse approprié est envoyé par l'équilibreur de charge HTTP. Vous l'aviez configuré pour envoyer l'en-tête de test avec la valeur du contenu. L'exécution de la commande curl à partir de Cloud Shell donnera la réponse attendue.

Depuis Cloud Shell

curl -svo /dev/null http://lb-ipv4-2/roundrobbin

Sortie

*   Trying lb-ipv4-2..
* TCP_NODELAY set
* Connected to  lb-ipv4-2 ( lb-ipv4-2) port 80 (#0)
> GET /roundrobbin HTTP/1.1
> Host:  lb-ipv4-2
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 404 Not Found
< date: Wed, 10 Nov 2021 17:05:27 GMT
< server: envoy
< Content-Length: 273
< content-type: text/html; charset=iso-8859-1
< via: 1.1 google
< test: value
<
{ [273 bytes data]
* Connection #0 to host 34.149.2.26 left intact
* Closing connection 0

7. Supprimer les fichiers de l'atelier

Maintenant que nous avons terminé avec l'environnement de l'atelier, il est temps de le supprimer. Veuillez exécuter les commandes suivantes pour supprimer l'environnement de test.

Depuis Cloud Shell

gcloud compute instances delete siege-vm --zone=us-east4-c

gcloud compute forwarding-rules delete http-content-rule --global
gcloud compute target-http-proxies delete http-lb-proxy-adv
gcloud compute url-maps delete web-map-http
gcloud compute backend-services delete east-backend-service --global
gcloud compute backend-services delete west-backend-service --global
gcloud compute backend-services delete central-backend-service --global

gcloud compute addresses delete lb-ipv4-2 --global
gcloud compute health-checks delete http-basic-check 

gcloud compute instance-groups managed delete us-east1-mig --zone us-east1-b
gcloud compute instance-groups managed delete us-west1-mig --zone us-west1-a
gcloud compute instance-groups managed delete us-central1-mig --zone us-central1-a

gcloud compute instance-templates delete "us-east1-template" 
gcloud compute instance-templates delete "us-west1-template" 
gcloud compute instance-templates delete "us-central1-template" 

gcloud compute firewall-rules delete httplb-allow-http-rule
gcloud compute firewall-rules delete fw-allow-ssh

gcloud compute networks delete httplbs 

8. Félicitations !

Vous avez terminé l'atelier de programmation sur l'équilibreur de charge HTTP(S) externe avec gestion avancée du trafic (Envoy).

Points abordés

  • Configurer un groupe d'instances géré, ainsi que les règles de pare-feu et le VPC associés
  • Utiliser les fonctionnalités avancées de gestion du trafic du nouvel équilibreur de charge
  • Découvrez comment valider le bon fonctionnement des fonctionnalités de gestion avancée du trafic.

Étapes suivantes

  • Essayez d'autres fonctionnalités de routage avancées, comme la réécriture d'URL, l'ajout d'en-têtes CORS et bien d'autres ( lien).