Las extensiones de servicio permiten que los balanceadores de cargas de aplicaciones compatibles envíen textos destacados desde la ruta de procesamiento de datos a los servicios de backend de textos destacados administrados por el usuario. Esto ayuda a los balanceadores de cargas de aplicaciones a usar lógica personalizada en la ruta de procesamiento. En esta página, se describe cómo configurar un servicio de backend de texto destacado administrado por el usuario.
Para obtener una descripción general de las extensiones del balanceador de cargas de aplicaciones, consulta Descripción general de las extensiones de Cloud Load Balancing.
Antes de comenzar
Asegúrate de tener una función de propietario o de editor del proyecto o los siguientes roles de IAM de Compute Engine:
- Para crear instancias, haz lo siguiente:
compute.instanceAdmin.v1 - Para crear componentes de Cloud Load Balancing, haz lo siguiente:
compute.networkAdmin
- Para crear instancias, haz lo siguiente:
Habilita estas APIs: API de Compute Engine y API de Network Services.
Console
En la consola de Google Cloud , ve a la página Habilita el acceso a las APIs.
Sigue las instrucciones.
gcloud
Usa el comando
gcloud services enable:gcloud services enable compute.googleapis.com networkservices.googleapis.com
Crea y configura un balanceador de cargas de aplicaciones que admita extensiones. En este ejemplo, configura un balanceador de cargas de aplicaciones interno regional con backends de grupos de instancias de VM. Usa los valores de muestra mencionados.
Solo para las extensiones de ruta. Configura un servicio de backend adicional y actualiza el mapa de URL para agregar un comparador de host que enrute el tráfico a este servicio de backend para todo el tráfico con el host HTTP que coincida con la condición especificada.
Console
En la consola de Google Cloud , ve a la página Crear una instancia.
Especifica los siguientes valores de muestra:
- Nombre:
l7-ilb-backend2-vm - Etiquetas:
allow-sshyload-balanced-backend - Zona:
us-west1-a - Red:
lb-network - Subred:
backend-subnet - Imagen:
debian-11 - Familia:
debian-cloud Opciones avanzadas > Administración > Automatización:
'#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl echo "Page served from second backend service" | tee /var/www/html/index.html systemctl restart apache2'
- Nombre:
Crea un grupo de instancias no administrado.
Especifica los siguientes valores de muestra:
- Nombre:
l7-ilb-backend-service2-ig - Zona:
us-west1-a
- Nombre:
Agrega la VM nueva al grupo de instancias.
Para las instancias de VM, especifica
l7-ilb-backend2-vm.En la consola de Google Cloud , ve a la página Balanceo de cargas.
Actualiza el balanceador de cargas creando un servicio de backend y agregándole un backend.
Para el servicio de backend, especifica los siguientes valores de ejemplo:
- Nombre:
l7-ilb-backend-service2 - Protocolo:
HTTP - Verificación de estado > Nombre:
l7-ilb-basic-check - Verificación de estado > Región:
us-west1
Para el backend, especifica los siguientes valores de muestra:
- Grupo de instancias:
l7-ilb-backend-service2-ig - Modo de equilibrio:
Utilization
- Nombre:
Agrega un comparador de hosts al mapa de URL del servicio de backend.
Especifica los siguientes valores de muestra:
- Nombre:
l7-ilb-map - Host:
service-extensions.com - Ruta:
callouts - Protocolo:
HTTP - Backend:
l7-ilb-backend-service2
- Nombre:
gcloud
Cree una instancia de VM: Usa el comando
gcloud compute instances createcon los siguientes valores de muestra:gcloud compute instances create l7-ilb-backend2-vm \ --zone=us-west1-a \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,load-balanced-backend \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl echo "Page served from second backend service" | tee /var/www/html/index.html systemctl restart apache2'Crea un grupo de instancias no administrado. Usa el comando
gcloud compute instance-groups unmanaged createcon los siguientes valores de muestra:gcloud compute instance-groups unmanaged create l7-ilb-backend-service2-ig \ --zone us-west1-a
Agrega la VM nueva al grupo de instancias. Usa el comando
gcloud compute instance-groups unmanaged add-instancescon los siguientes valores de muestra:gcloud compute instance-groups unmanaged add-instances l7-ilb-backend-service2-ig \ --zone=us-west1-a \ --instances=l7-ilb-backend2-vm
Crea un servicio de backend. Usa el comando
gcloud compute backend-services createcon los siguientes valores de muestra:gcloud compute backend-services create l7-ilb-backend-service2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1
Agrega un backend al servicio de backend. Usa el comando
gcloud compute backend-services add-backendcon los siguientes valores de muestra:gcloud compute backend-services add-backend l7-ilb-backend-service2 \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-backend-service2-ig \ --instance-group-zone=us-west1-a \ --region=us-west1
Agrega un comparador de hosts al mapa de URL del servicio de backend. Usa el comando
gcloud compute url-maps add-path-matchercon los siguientes valores de muestra:gcloud compute url-maps add-path-matcher l7-ilb-map \ --path-matcher-name=callouts \ --default-service=l7-ilb-backend-service2 \ --new-hosts=service-extensions.com \ --region=us-west1
Configura un servicio de backend de texto destacado
Para este ejemplo, se encuentra disponible un servidor de extensión básico basado en Python que implementa la API de gRPC ext_proc de Envoy. Un contenedor de Docker con este servidor se encuentra en us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main en el repositorio de GitHub de Service Extensions de Google Cloud. Este repositorio contiene varias otras muestras de Python y Go de servidores de ext_proc para realizar tareas como la mutación de encabezados y la mutación de cuerpos.
Para crear y configurar un servicio de backend de texto destacado, sigue estos pasos:
Crea una instancia de máquina virtual (VM) para el servicio de backend de la llamada que ejecuta el servidor de extensión de Python de muestra.
Console
Crea una instancia con una imagen de contenedor.
En la consola de Google Cloud , ve a la página Crear una instancia.
Especifica los siguientes valores de muestra:
- Nombre:
callouts-vm - Zona:
us-west1-a - Red:
lb-network - Subred:
backend-subnet - Etiquetas:
allow-sshyload-balanced-backend - Imagen de contenedor:
us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main
- Nombre:
gcloud
Crea una instancia con una imagen de contenedor. Usa el comando
gcloud compute instances create-with-containercon los siguientes valores de muestra:gcloud compute instances create-with-container callouts-vm \ --container-image=us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main \ --network=lb-network \ --subnet=backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh,load-balanced-backend
Agrega la VM a un grupo de instancias no administrado.
Console
Crea un grupo de instancias no administrado.
En la consola de Google Cloud , ve a la página Grupos de instancias.
Especifica los siguientes valores de muestra:
- Nombre:
callouts-ig - Zona:
us-west1-a
- Nombre:
Configura un puerto para el grupo de instancias.
En Asignación de puertos, especifica estos nombres y valores de puertos:
http:80ygrpc:443.Agrega la VM nueva al grupo de instancias.
Para las instancias de VM, especifica
callouts-vm.
gcloud
Crea un grupo de instancias no administrado. Usa el comando
gcloud compute instance-groups unmanaged createcon los siguientes valores de muestra:gcloud compute instance-groups unmanaged create callouts-ig \ --zone=us-west1-a
Configura un puerto para el grupo de instancias. Usa el comando
gcloud compute instance-groups unmanaged set-named-portscon los siguientes valores de muestra:gcloud compute instance-groups unmanaged set-named-ports callouts-ig \ --named-ports=http:80,grpc:443 \ --zone=us-west1-a
Agrega la nueva instancia de VM al grupo de instancias no administrado. Usa el comando
gcloud compute instance-groups unmanaged add-instancescon los siguientes valores de muestra:gcloud compute instance-groups unmanaged add-instances callouts-ig \ --zone=us-west1-a \ --instances=callouts-vm
Crea un servicio de backend de texto destacado y agrega un backend. Al igual que otros servidores de backend, es posible que los servidores de llamadas necesiten reglas de firewall para permitir el tráfico de proxy.
Console
Crea un servicio de backend de llamada que use el protocolo HTTP/2 y tenga una verificación de estado HTTP.
En la consola de Google Cloud , ve a la página Backends de Cloud Load Balancing.
Agrega un servicio de backend regional con los siguientes valores de muestra:
- Nombre:
l7-ilb-callout-service - Región:
us-west1 - Tipo de balanceador de cargas:
Regional external Application Load Balancer (EXTERNAL_MANAGED) - Protocolo:
HTTP2 - Nombre del puerto:
grpc - Verificación de estado > Nombre:
callouts-hc - Verificación de estado > Número de puerto:
80 - Política de seguridad de backend de Cloud Armor:
None
- Nombre:
Agrega el grupo de instancias con el servidor de extensiones como backend al servicio de backend. El grupo de instancias ejecuta el servicio
ext_proc.Especifica los siguientes valores de muestra:
- Grupo de instancias:
callouts-ig - Modo de equilibrio:
Utilization
- Grupo de instancias:
gcloud
Crea una verificación de estado HTTP básica para la instancia. Usa el comando
gcloud compute health-checks create httpcon los siguientes valores de muestra:gcloud compute health-checks create http callouts-hc \ --region=us-west1 \ --port=80
Crea un servicio de backend de devolución de llamada que use el protocolo HTTP/2. Usa el comando
gcloud compute backend-services create.gcloud compute backend-services create l7-ilb-callout-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP2 \ --port-name=grpc \ --health-checks=callouts-hc \ --health-checks-region=us-west1 \ --region=us-west1
Agrega el grupo de instancias con el servidor de extensiones como backend al servicio de backend. El grupo de instancias ejecuta el servicio
ext_proc. Usa el comandogcloud compute backend-services add-backendcon los siguientes valores de muestra:gcloud compute backend-services add-backend l7-ilb-callout-service \ --balancing-mode=UTILIZATION \ --instance-group=callouts-ig \ --instance-group-zone=us-west1-a \ --region=us-west1
Después de configurar un servicio de backend, puedes configurar las extensiones de ruta, autorización y tráfico.
¿Qué sigue?
- Configura una extensión de ruta
- Configura una extensión de autorización
- Configura una extensión de tráfico