Configura un servicio de backend de texto destacado administrado por el usuario

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

  1. Asegúrate de tener una función de propietario o de editor del proyecto o los siguientes roles de IAM de Compute Engine:

  2. Habilita estas APIs: API de Compute Engine y API de Network Services.

    Console

    1. En la consola de Google Cloud , ve a la página Habilita el acceso a las APIs.

      Ir a Habilita el acceso a las APIs

    2. Sigue las instrucciones.

    gcloud

    Usa el comando gcloud services enable:

    gcloud services enable compute.googleapis.com networkservices.googleapis.com
    
  3. 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.

  4. Crea una VM de cliente para pruebas.

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

    1. En la consola de Google Cloud , ve a la página Crear una instancia.

      Ir a Crear una instancia

      Especifica los siguientes valores de muestra:

      • Nombre: l7-ilb-backend2-vm
      • Etiquetas: allow-ssh y load-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'
        
    2. Crea un grupo de instancias no administrado.

      Especifica los siguientes valores de muestra:

      • Nombre: l7-ilb-backend-service2-ig
      • Zona: us-west1-a
    3. Agrega la VM nueva al grupo de instancias.

      Para las instancias de VM, especifica l7-ilb-backend2-vm.

    4. En la consola de Google Cloud , ve a la página Balanceo de cargas.

      Ir a Balanceo de cargas

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

    gcloud

    1. Cree una instancia de VM: Usa el comando gcloud compute instances create con 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'
      
    2. Crea un grupo de instancias no administrado. Usa el comando gcloud compute instance-groups unmanaged create con los siguientes valores de muestra:

      gcloud compute instance-groups unmanaged create l7-ilb-backend-service2-ig \
        --zone us-west1-a
      
    3. Agrega la VM nueva al grupo de instancias. Usa el comando gcloud compute instance-groups unmanaged add-instances con 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
      
    4. Crea un servicio de backend. Usa el comando gcloud compute backend-services create con 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
      
    5. Agrega un backend al servicio de backend. Usa el comando gcloud compute backend-services add-backend con 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
      
    6. Agrega un comparador de hosts al mapa de URL del servicio de backend. Usa el comando gcloud compute url-maps add-path-matcher con 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:

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

    1. En la consola de Google Cloud , ve a la página Crear una instancia.

      Ir a Crear una instancia

    2. Especifica los siguientes valores de muestra:

      • Nombre: callouts-vm
      • Zona: us-west1-a
      • Red: lb-network
      • Subred: backend-subnet
      • Etiquetas: allow-ssh y load-balanced-backend
      • Imagen de contenedor: us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main

    gcloud

    Crea una instancia con una imagen de contenedor. Usa el comando gcloud compute instances create-with-container con 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
    
  2. Agrega la VM a un grupo de instancias no administrado.

    Console

    Crea un grupo de instancias no administrado.

    1. En la consola de Google Cloud , ve a la página Grupos de instancias.

      Ir a Grupos de instancias

      Especifica los siguientes valores de muestra:

      • Nombre: callouts-ig
      • Zona: us-west1-a
    2. Configura un puerto para el grupo de instancias.

      En Asignación de puertos, especifica estos nombres y valores de puertos: http:80 y grpc:443.

    3. Agrega la VM nueva al grupo de instancias.

      Para las instancias de VM, especifica callouts-vm.

    gcloud

    1. Crea un grupo de instancias no administrado. Usa el comando gcloud compute instance-groups unmanaged create con los siguientes valores de muestra:

      gcloud compute instance-groups unmanaged create callouts-ig \
        --zone=us-west1-a
      
    2. Configura un puerto para el grupo de instancias. Usa el comando gcloud compute instance-groups unmanaged set-named-ports con 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
      
    3. Agrega la nueva instancia de VM al grupo de instancias no administrado. Usa el comando gcloud compute instance-groups unmanaged add-instances con los siguientes valores de muestra:

      gcloud compute instance-groups unmanaged add-instances callouts-ig \
        --zone=us-west1-a \
        --instances=callouts-vm
      
  3. 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.

    1. En la consola de Google Cloud , ve a la página Backends de Cloud Load Balancing.

      Ir a Backends

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

    gcloud

    1. Crea una verificación de estado HTTP básica para la instancia. Usa el comando gcloud compute health-checks create http con los siguientes valores de muestra:

      gcloud compute health-checks create http callouts-hc \
        --region=us-west1 \
        --port=80
      
    2. 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
      
    3. 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 comando gcloud compute backend-services add-backend con 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?