Codelab de balanceadores de cargas de HTTP(S) externos con administración avanzada de tráfico (Envoy)

1. Introducción

Te damos la bienvenida al codelab de balanceadores de cargas de HTTP(S) externos con administración avanzada de tráfico (Envoy).

La versión más reciente del balanceador de cargas HTTP(S) externo con administración avanzada de tráfico contiene todas las funciones de nuestro balanceador de cargas HTTP(S) externo clásico, pero con una lista creciente de capacidades de administración avanzada de tráfico. Algunas de estas funciones son nuevas para nuestros balanceadores de cargas y otras proporcionan funciones mejoradas a las capacidades existentes. Una lista parcial de estas capacidades incluye:

  • División del tráfico ponderada
  • Solicitar duplicación
  • Detección de valores atípicos
  • Solicitudes de reintento
  • Inyección de errores
  • Opciones adicionales de afinidad de la sesión de backend
  • Opciones adicionales de transformación del encabezado
  • Uso compartido de recursos entre dominios (CORS)
  • Nuevos algoritmos de balanceo de cargas

Qué aprenderás

  • Cómo configurar un grupo de instancias administrado y las reglas de firewall y VPC asociadas
  • Cómo usar las funciones avanzadas de administración de tráfico del nuevo balanceador de cargas
  • Cómo validar que las funciones de administración avanzada de tráfico se ejecutan según lo previsto.

Requisitos

  • Herramientas de redes básicas y conocimiento de HTTP
  • Conocimiento básico de la línea de comandos de Unix/Linux

Topología del codelab y caso de uso

dd8bd5e8e1341878.png

Figura 1: Topología de enrutamiento del balanceador de cargas HTTP

Durante este codelab, configurarás tres grupos de instancias administrados: uno en el este, el oeste y el central. Crearás un balanceador de cargas HTTPS externo global. El balanceador de cargas usará varias funciones de la lista de capacidades avanzadas que admite el balanceador de cargas basado en Envoy. Luego de la implementación, generarás una carga simulada y verificarás que la configuración que estableciste funcione correctamente.

2. Configuración y requisitos

Configuración del entorno de autoaprendizaje

  1. Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una string de caracteres que no se utiliza en las API de Google y se puede actualizar en cualquier momento.
  • El ID del proyecto debe ser único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). Cloud Console genera automáticamente una string única, que, por lo general, no importa cuál sea. En la mayoría de los codelabs, debes hacer referencia al ID del proyecto (suele ser PROJECT_ID). Por lo tanto, si no te gusta, genera otro aleatorio o prueba con uno propio y comprueba si está disponible. Después de crear el proyecto, este ID se “congela” y no se puede cambiar.
  • Además, hay un tercer valor, el Número de proyecto, que usan algunas API. Obtén más información sobre estos tres valores en la documentación.
  1. A continuación, deberás habilitar la facturación en Cloud Console para usar las API o los recursos de Cloud. Ejecutar este codelab no debería costar mucho, tal vez nada. Si quieres cerrar los recursos para no se te facture más allá de este instructivo, sigue las instrucciones de “limpieza” que se encuentran al final del codelab. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de USD 300.

Inicia Cloud Shell

Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.

En GCP Console, haga clic en el ícono de Cloud Shell en la barra de herramientas superior derecha:

55efc1aaa7a4d3ad.png

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

7ffe5cbb04455448.png

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Puedes realizar todo tu trabajo en este lab usando simplemente un navegador.

Antes de comenzar

En Cloud Shell, asegúrate de que el ID del proyecto esté configurado

gcloud config list project

gcloud config set project [YOUR-PROJECT-NAME]

PROJECT_ID=[YOUR-PROJECT-NAME]

echo $PROJECT_ID

Habilita las APIs

Habilita todos los servicios necesarios

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

3. Crea la red de VPC

Crear red de VPC

Desde Cloud Shell

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

Salida

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:

Crea reglas de firewall de VPC

Después de crear la VPC, crearás una regla de firewall. Se usará la regla de firewall para permitir que todas las IP accedan a la IP externa del sitio web de la aplicación de prueba en el puerto 80 para el tráfico HTTP.

Desde 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

Salida

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. Configura los grupos de instancias administrados

Debes configurar grupos de instancias administrados que incluyan los patrones de los recursos de backend que usa el balanceador de cargas HTTP. Primero, crearemos plantillas de instancias que definan la configuración de las VMs que se crearán para cada región. A continuación, para un backend en cada región, crearemos un grupo de instancias administrado que haga referencia a una plantilla de instancias.

Los grupos de instancias administrados pueden tener un permiso zonal o regional. Para este ejercicio de lab, crearemos tres grupos de instancias administrados regionales: uno en us-east1, uno en us-west1 y otro en us-central1.

En esta sección, puedes ver una secuencia de comandos de inicio creada previamente a la que se hará referencia cuando se cree la instancia. Esta secuencia de comandos de inicio instala y habilita las capacidades del servidor web que usaremos para simular una aplicación web. Siéntete libre de explorar esta secuencia de comandos.

Crea plantillas de instancias este, oeste y central

El primer paso es crear la plantilla de instancias us-east-1.

Desde Cloud Shell

gcloud compute instance-templates create us-east1-template \
   --region=us-east1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-9 \
   --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'

Salida

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

El siguiente paso es crear la plantilla de instancias us-west-1.

Desde Cloud Shell

gcloud compute instance-templates create us-west1-template \
   --region=us-west1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-9 \
   --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'

Salida

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

El siguiente paso es crear la plantilla de instancias us-central-1.

Desde Cloud Shell

gcloud compute instance-templates create us-central1-template \
   --region=us-central1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-9 \
   --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'

Salida

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

Ahora puedes verificar que nuestras plantillas de instancias se hayan creado correctamente con el siguiente comando de gcloud:

Desde Cloud Shell

gcloud compute instance-templates list

Salida

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

Crea grupos de instancias administrados este, oeste y central

Ahora debemos crear un grupo de instancias administrado a partir de las plantillas de instancias que creamos antes.

Desde 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 

Salida

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

Desde 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  

Salida

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

Desde 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 

Salida

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

Podemos verificar que nuestros grupos de instancias se crearon con éxito con el siguiente comando de gcloud:

Desde Cloud Shell

gcloud compute instance-groups list

Salida

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

Verifica la funcionalidad del servidor web

Cada instancia está configurada para ejecutar un servidor web de Apache con una secuencia de comandos PHP sencilla que procesa lo siguiente:

c87ca81d3125ac61.png

Para asegurarte de que tus servidores web funcionan correctamente, navega a Compute Engine -> instancias de VM. Asegúrate de que tus instancias nuevas (p.ej., us-east1-mig-xxx) se hayan creado según sus definiciones de grupo de instancias.

A continuación, realiza una solicitud web en tu navegador para asegurarte de que el servidor web se esté ejecutando (esto puede tardar un minuto en iniciarse). En la página Instancias de VM en Compute Engine, selecciona una instancia creada por tu grupo de instancias y haz clic en su IP externa (pública).

O bien, en tu navegador, navega a http://<IP_Address>

5. Configura el balanceador de cargas

Crea una verificación de estado

Primero, debemos crear una verificación de estado básica para asegurarnos de que nuestros servicios funcionen correctamente. Crearemos una verificación de estado básica; hay muchas más personalizaciones avanzadas disponibles.

Desde Cloud Shell

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

Reserva dirección IP externa

Para este paso, deberás reservar una dirección IP estática disponible a nivel global que luego se conectará al balanceador de cargas.

Desde Cloud Shell

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

Asegúrate de anotar la dirección IP que se reservó.

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

Crea servicios de backend

Ahora debemos crear un servicio de backend para cada uno de los grupos de instancias administrados que creamos antes. Una para este, oeste y centro.

Crea un servicio de backend para el grupo de instancias administrado de East.

Desde 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

Crea un servicio de backend para el grupo de instancias administrado por el oeste.

Desde 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

Crear un servicio de backend para el grupo de instancias administrado central.

Desde 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

Agrega MIG a servicios de backend

Ahora que creamos los servicios de backend respectivos para cada clúster de aplicación, debemos agregar los grupos de instancias administrados que creamos antes a cada servicio de backend.

Agrega el MIG oriental al servicio de backend.

Desde 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

Agrega el MIG oeste al servicio de backend.

Desde 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

Agrega el MIG central al servicio de backend.

Desde 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

Crear mapa de URL

El mapa de URL es donde se ubicarán las funciones de administración avanzada de tráfico de este lab. Debemos crear un archivo .yaml que contendrá la configuración. En el archivo .yaml, creamos una coincidencia de prefijo en /roundrobbin, por lo que solo el tráfico que coincida con /roundrobbin se verá afectado por estos parámetros de configuración. Especificamos que el 50% del tráfico debe ir a east-backend-service y el 50% del tráfico debe ir a west-backend-service. Además, agregamos un valor de encabezado de respuesta:{test}, que estará presente en todas las respuestas. Por último, agregamos que todo el tráfico debe duplicarse en central-backend-service. El tráfico se duplica y se envía aquí solo para realizar pruebas.

Guarda el ejemplo como un archivo .yaml en tu máquina.

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

Crea el mapa de URL importando el documento desde tu máquina. Ten en cuenta que la ruta de acceso de origen será diferente según dónde hayas guardado el archivo .yaml.

Desde Cloud Shell

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

Crea el frontend HTTP

El último paso para crear el balanceador de cargas es crear el frontend. Esto asignará la dirección IP que reservaste antes al mapa de URL del balanceador de cargas que creaste.

Desde Cloud Shell

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

A continuación, debes crear una regla de reenvío global que asignará la dirección IP reservada antes al proxy HTTP.

Desde 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. Verifica que las funciones avanzadas de tráfico funcionen correctamente

Para verificar que la función de división del tráfico implementada se ejecute correctamente, debes generar algo de carga. Crearemos una VM nueva para simular la carga.

Crea una regla de firewall de permiso SSH

Para establecer una conexión SSH a la VM desde la que generaremos tráfico, primero debes crear una regla de firewall que permita el tráfico SSH a la VM.

Desde Cloud Shell

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

Salida

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

Crea Siege-vm

Ahora, crearás el archivo siege-vm que usarás para generar la carga

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

Salida

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

A continuación, puedes establecer una conexión SSH a la VM que creaste. Una vez creada, haz clic en SSH para iniciar una terminal y conectarte.

Una vez conectado, ejecuta el siguiente comando para generar carga. Usa la dirección IP que reservaste antes para el balanceador de cargas de HTTP externo.

Desde Cloud Shell

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

Salida

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...

Verifica la distribución de la carga

Ahora que Siege se está ejecutando, es momento de verificar que el tráfico se distribuya de forma equitativa a los grupos de instancias administrados de este y oeste. Además, puedes verificar que la duplicación de tráfico funcione y que el tráfico se envíe al grupo de instancias administrado central.

En la consola de Cloud, en Menú de navegación, haz clic en Servicios de red > Balanceo de cargas Selecciona el balanceador de cargas web-map-http. Navega a la pestaña Supervisión y podrás ver el siguiente gráfico.

f4d6803db44be253.png

Podrás ver la división del tráfico en tiempo real para este MIG. El tráfico se divide de manera uniforme desde que configuraste una división de round robbin en 50/50.

Para comprobar que la política de duplicación de tráfico que creaste está funcionando, debes verificar el uso del grupo de instancias administrado del servicio central-backend-service. Para ello, navega a Compute Engine, Compute Engine y grupos de instancias, y selecciona us-central1-mig. A continuación, navega a la pestaña Supervisión.

cf25e44d511529e7.png

Verás los gráficos propagados que demuestran que el tráfico se duplicó en este grupo de instancias administrado.

Detén el asedio

Ahora que demostraste que la división avanzada del tráfico funciona, es momento de detener el asedio. Para ello, regresa a la terminal SSH de siege-vm y presiona CTRL+C para detener la ejecución de siege.

Valida el encabezado de respuesta que se envía

Antes de realizar una limpieza, puedes validar rápidamente que el balanceador de cargas HTTP envíe el encabezado de respuesta adecuado. Lo configuraste para enviar la prueba de encabezado con el valor de contenido. Ejecutar el comando curl desde Cloud Shell dará la respuesta esperada.

Desde Cloud Shell

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

Salida

*   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. Limpieza del lab

Ahora que terminamos el entorno del lab, es momento de eliminarlo. Ejecuta los siguientes comandos para borrar el entorno de prueba.

Desde 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. ¡Felicitaciones!

Completaste el codelab de LB de HTTP externo con el codelab de administración avanzada de tráfico (Envoy).

Temas abordados

  • Cómo configurar un grupo de instancias administrado y las reglas de firewall y VPC asociadas
  • Cómo usar las funciones avanzadas de administración de tráfico del nuevo balanceador de cargas
  • Cómo validar que las funciones de administración avanzada de tráfico se ejecutan según lo previsto.

Próximos pasos

  • Prueba algunas de las otras funciones avanzadas de enrutamiento, como la reescritura de URL, la adición de encabezados de CORS y muchas más ( vínculo).