Configura un balanceador de cargas de red de transferencia externo con un servicio de backend

En esta guía, se proporcionan instrucciones para crear una implementación de balanceador de cargas de red de transferencia externo mediante un servicio de backend regional. En este ejemplo, se crea un balanceador de cargas de red de transferencia externo que admite tráfico de TCP o UDP. Si quieres crear un balanceador de cargas de red de transferencia externo que balancee las cargas de tráfico de TCP, UDP, ESP, GRE, ICMP e ICMPv6 (no solo TCP o UDP), consulta Configura un balanceador de cargas de red de transferencia externo para varios protocolos de IP.

En este ejemplo, usaremos el balanceador de cargas para distribuir el tráfico de TCP entre las VM de backend en dos grupos de instancias zonales administrados en la región us-central1. Un enfoque con igual validez sería usar un solo grupo de instancias regional administrado en la región us-central1.

Balanceador de cargas de red de transferencia externo con grupos de instancias zonales
Balanceador de cargas de red de transferencia externo con grupos de instancias administrados zonales

Esta situación distribuye el tráfico de TCP en instancias en buen estado. A fin de admitir este ejemplo, las verificaciones de estado de TCP están configuradas para garantizar que el tráfico se envíe solo a instancias en buen estado. Ten en cuenta que las verificaciones de estado de TCP solo son compatibles con un balanceador de cargas basado en servicios de backend. Los balanceadores de cargas de destino basados en grupos solo pueden usar verificaciones de estado HTTP heredadas.

En este ejemplo, se balancean las cargas de tráfico de TCP, pero puedes usar balanceadores de cargas de red de transferencia externos basados en servicios de backend para balancear cargas del tráfico de TCP, UDP, ESP, GRE, ICMP e ICMPv6.

El balanceador de cargas de red de transferencia externo es un balanceador de cargas regional. Todos los componentes del balanceador de cargas (VM de backend, servicio de backend y regla de reenvío) deben estar en la misma región.

Antes de comenzar

Instala Google Cloud CLI. Para obtener una descripción general completa de la herramienta, consulta la descripción general de la CLI de gcloud. Encontrarás comandos relacionados con el balanceo de cargas en las referencias de la API y de gcloud.

Si nunca ejecutaste Google Cloud CLI, primero ejecuta gcloud init para autenticarte.

En esta guía, suponemos que estás familiarizado con Bash.

Configura la red y las subredes

En el ejemplo de esta página, se usa una red de VPC en modo personalizado con el nombre lb-network. Puedes usar una red de VPC de modo automático si solo deseas controlar el tráfico IPv4. Sin embargo, el tráfico IPv6 requiere una subred de modo personalizado.

El tráfico IPv6 también requiere una subred de doble pila (stack-type configurada en IPv4_IPv6). Cuando creas una subred de doble pila en una red de VPC de modo personalizado, eliges un tipo de acceso IPv6 para la subred. Para este ejemplo, establecemos el parámetro ipv6-access-type de la subred en EXTERNAL. Esto significa que a las VM nuevas de esta subred se les pueden asignar direcciones IPv4 y IPv6 externas.

Los backends y los componentes del balanceador de cargas usados para este ejemplo se encuentran en la región y la subred que se indican a continuación:

  • Región: us-central1
  • Subred: lb-subnet, con el rango de direcciones IPv4 principal 10.1.2.0/24. Aunque elijas qué rango de direcciones IPv4 se configurará en la subred, el rango de direcciones IPv6 se asigna automáticamente. Google proporciona un bloque CIDR IPv6 de tamaño fijo (/64).

Para crear la red y la subred de ejemplo, sigue estos pasos:

Console

Para admitir el tráfico IPv4 e IPv6, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haga clic en Crear red de VPC.

  3. En Nombre ingresa lb-network.

  4. En la sección Subredes:

    • Establece Modo de creación de subred en Personalizado.
    • En la sección Subred nueva, configura los siguientes campos y haz clic en Listo:
      • Nombre: lb-subnet
      • Región: us-central1
      • Tipo de pila IP: IPv4 e IPv6 (pila doble)
      • Rango IPv4: 10.1.2.0/24
        Aunque puedes configurar un rango de direcciones IPv4 para la subred, no puedes elegir el rango de direcciones IPv6 para lo siguiente: la subred. Google proporciona un bloque CIDR IPv6 de tamaño fijo (/64).
      • Tipo de acceso IPv6: externo
  5. Haz clic en Crear.

Para que solo sea compatible con el tráfico IPv4, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Redes de VPC.

    Ir a las redes de VPC

  2. Haga clic en Crear red de VPC.

  3. En Nombre ingresa lb-network.

  4. En la sección Subredes:

    • Establece Modo de creación de subred en Personalizado.
    • En la sección Subred nueva, configura los siguientes campos y haz clic en Listo:
      • Nombre: lb-subnet
      • Región: us-central1
      • Tipo de pila IP: IPv4 (pila única)
      • Rango IPv4: 10.1.2.0/24
  5. Haz clic en Crear.

gcloud

  1. Crea la red de VPC en modo personalizado:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. Dentro de la red lb-network, crea una subred para backends en la región us-central1.

    Para el tráfico IPv4 e IPv6, usa el siguiente comando a fin de crear una subred de pila doble:

    gcloud compute networks subnets create lb-subnet \
      --stack-type=IPV4_IPv6 \
      --ipv6-access-type=EXTERNAL \
      --network=lb-network \
      --range=10.1.2.0/24 \
      --region=us-central1
    

    Para el tráfico IPv4, usa el siguiente comando:

    gcloud compute networks subnets create lb-subnet \
      --network=lb-network \
      --range=10.1.2.0/24 \
      --region=us-central1
    

Crea los grupos de instancias administrados zonales

Para esta situación de balanceo de cargas, crearás dos grupos de instancias zonales administrados de Compute Engine y, luego, instalarás un servidor web Apache en cada instancia.

Para manejar el tráfico IPv4 e IPv6, configura las VM de backend a fin de que sean de pila doble. Establece stack-type de la VM en IPv4_IPv6. Las VM también heredan la configuración ipv6-access-type (en este ejemplo, EXTERNAL) de la subred. Para obtener más detalles sobre los requisitos de IPv6, consulta la descripción general del balanceador de cargas de red de transferencia externo: reglas de reenvío.

Para usar las VMs existentes como backends, actualiza las VM para que sean de pila doble mediante el comando gcloud compute instances network-interfaces update.

Las instancias que participan como VMs de backend para los balanceadores de cargas de red de transferencia externos deben ejecutar el entorno invitado de Linux o el entorno invitado de Windows adecuados, o algún otro proceso que proporcione una función equivalente.

Configura las instancias

Console

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

    Ir a Plantillas de instancia

    1. Haz clic en Crear plantilla de instancias.
    2. En Nombre, ingresa ig-us-template.
    3. En la sección Disco de arranque, asegúrate de que la imagen esté configurado en una imagen de Debian, como Debian GNU/Linux 10 (buster). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como apt-get.
    4. Haz clic en Opciones avanzadas.
    5. Haz clic en Herramientas de redes.
      1. En Etiquetas de red, ingresa lb-tag.
      2. En Interfaces de red, haz clic en la interfaz predeterminada y configura los siguientes campos:
        • Red: lb-network
        • Subred: lb-subnet
      3. Haz clic en Listo.
    6. Haz clic en Administración y copia la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
    7. Haz clic en Crear.

  2. Crea un grupo de instancias administrado. En la consola de Google Cloud, ve a la página Grupos de instancias.

    Ir a Grupos de instancias

    1. Haz clic en Crear grupo de instancias.
    2. Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG sin estado o con estado.
    3. En Nombre, ingresa ig-us-1.
    4. En Plantilla de instancias, selecciona ig-us-template.
    5. En Ubicación, selecciona Zona única.
    6. En Región, selecciona us-central1.
    7. En Zona, selecciona us-central1-a.
    8. Especifica la cantidad de instancias que quieres crear en el grupo.

      En este ejemplo, especifica las siguientes opciones en la sección Ajuste de escala automático:

      • En Modo de ajuste de escala automático, selecciona Off:do not autoscale.
      • En Cantidad máxima de instancias, ingresa 2.
    9. Haz clic en Crear.

  3. Repite los pasos anteriores para crear un segundo grupo de instancias administrado en la zona us-central1-c con las siguientes especificaciones:

    • Name: ig-us-2
    • Zona: us-central1-c
    • Plantilla de instancias: Usa la misma plantilla ig-us-template creada en la sección anterior.

gcloud

En las instrucciones de gcloud que se incluyen en esta guía, se supone que usas Cloud Shell o algún otro entorno con bash instalado.

  1. Crea una plantilla de instancias de VM con el servidor de HTTP con el comando gcloud compute instance-templates create.

    Para controlar el tráfico IPv4 e IPv6, usa el siguiente comando.

    gcloud compute instance-templates create ig-us-template \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --ipv6-network-tier=PREMIUM \
    --stack-type=IPv4_IPv6 \
    --tags=lb-tag \
    --image-family=debian-10 \
    --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://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2'
    

    Para controlar el tráfico solo IPv4, usa el siguiente comando.

    gcloud compute instance-templates create ig-us-template \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --tags=lb-tag \
    --image-family=debian-10 \
    --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://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2'
    
  2. Crea un grupo de instancias administrado en la zona con el comando gcloud compute instance-groups managed create.

    gcloud compute instance-groups managed create ig-us-1 \
        --zone us-central1-a \
        --size 2 \
        --template ig-us-template
    
  3. Crea un segundo grupo de instancias administrado en la zona us-central1-c:

    gcloud compute instance-groups managed create ig-us-2 \
        --zone us-central1-c \
        --size 2 \
        --template ig-us-template
    

Configura las reglas de firewall

Crea reglas de firewall que permitan que el tráfico externo (que incluye sondeos de verificación de estado) llegue a las instancias de backend.

En este ejemplo, se crea una regla de firewall que permite que el tráfico TCP de todos los rangos de origen llegue a tus instancias de backend en el puerto 80. Si deseas crear reglas de firewall independientes específicamente para los sondeos de verificación de estado, usa los rangos de direcciones IP de origen documentados en Descripción general de las verificaciones de estado: rangos de IP de sondeo y reglas de firewall.

Consola

  1. En la consola de Google Cloud, ve a la página Políticas de firewall.

    Ir a Políticas de firewall

  2. Para permitir el tráfico IPv4, sigue estos pasos:

    1. Haz clic en Crear regla de firewall.
    2. En Nombre, ingresa allow-network-lb-ipv4.
    3. En la lista Red, selecciona lb-network.
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa lb-tag.
    6. En Filtro de fuente, selecciona Rangos de IPv4.
    7. Establece los Rangos IPv4 de origen en 0.0.0.0/0. Esto permite el tráfico IPv4 desde cualquier fuente. Así como permite que los sondeos de verificación de estado de Google lleguen a las instancias de backend.
    8. En Protocolos y puertos especificados, selecciona la casilla de verificación TCP e ingresa 80.
    9. Haz clic en Crear. Pueden pasar unos minutos hasta que la consola de Google Cloud muestre la regla de firewall nueva, o es posible que debas hacer clic en Actualizar a fin de ver la regla.
  3. Para permitir el tráfico IPv6, sigue estos pasos:

    1. Vuelve a hacer clic en Crear regla de firewall.
    2. En Nombre, ingresa allow-network-lb-ipv6.
    3. En la lista Red, selecciona lb-network.
    4. En Destinos, selecciona Etiquetas de destino especificadas.
    5. En el campo Etiquetas de destino, ingresa lb-tag.
    6. En Filtro de fuente, selecciona Rangos de IPv6.
    7. Establece los Rangos de IPv6 de origen en ::/0. Esto permite el tráfico IPv6 de cualquier fuente. Así como permite que los sondeos de verificación de estado de Google lleguen a las instancias de backend.
    8. En Protocolos y puertos especificados, selecciona la casilla de verificación TCP e ingresa 80.
    9. Haz clic en Crear. Pueden pasar unos minutos hasta que Console muestre la regla de firewall nueva, o es posible que debas hacer clic en Actualizar a fin de ver la regla.

gcloud

  1. Para permitir el tráfico IPv4, ejecuta el siguiente comando:

    gcloud compute firewall-rules create allow-network-lb-ipv4 \
        --network=lb-network \
        --target-tags=lb-tag \
        --allow=tcp:80 \
        --source-ranges=0.0.0.0/0
    
  2. Para permitir el tráfico IPv6, ejecuta el siguiente comando:

    gcloud compute firewall-rules create allow-network-lb-ipv6 \
      --network=lb-network \
      --target-tags=lb-tag \
      --allow=tcp:80 \
      --source-ranges=::/0
    

Configura el balanceador de cargas

A continuación, configura el balanceador de cargas.

Cuando configuras el balanceador de cargas, tus instancias de máquina virtual (VM) recibirán paquetes destinados a la dirección IP externa estática que configures. Si usas una imagen proporcionada por Compute Engine, tus instancias se configurarán de forma automática para controlar esta dirección IP. Si usas cualquier otra imagen, debes configurar esta dirección como un alias en eth0 o como un bucle invertido en cada instancia.

Console

Inicia la configuración

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

    Ir a Balanceo de cargas

  2. Haz clic en Crear balanceador de cargas.
  3. En Tipo de balanceador de cargas, selecciona Balanceador de cargas de red (TCP/UDP/SSL) y haz clic en Siguiente.
  4. En Proxy o de transferencia, selecciona Balanceador de cargas de transferencia y haz clic en Siguiente.
  5. En Orientado al público o interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
  6. Haz clic en Configurar.

Configuración de backend

  1. En la página Crear balanceador de cargas de red de transferencia externo, ingresa el nombre tcp-network-lb para el balanceador de cargas nuevo.
  2. En Región, selecciona us-central1.
  3. Haz clic en Configuración de backend.
  4. En la pantalla Configuración de backend, realiza los siguientes cambios:
    1. En Backend nuevo, selecciona el Tipo de pila de IP. Si creaste backends de pila doble para controlar el tráfico IPv4 e IPv6, selecciona IPv4 e IPv6 (pila doble). Para controlar solo el tráfico IPv4, selecciona IPv4 (una sola pila).
    2. En la lista Grupo de instancias, selecciona ig-us-1 y, luego, haz clic en Listo.
    3. Haz clic en Agregar backend y repite este paso para agregar ig-us-2.
    4. En la Verificación de estado, elige Crea una verificación de estado o Crea otra verificación de estado y, luego, ingresa la siguiente información:
      • Nombre: tcp-health-check
      • Protocolo: TCP
      • Puerto: 80
    5. Haz clic en Guardar.
  5. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Configuración de frontend

  1. Haga clic en Configuración de frontend.
  2. En Nombre, ingresa network-lb-forwarding-rule.
  3. Para controlar el tráfico IPv4, sigue estos pasos:
    1. Para Versión de la IP, elige IPv4.
    2. En la sección Propósito de la IP interna, en la lista Direcciones IP, selecciona Crear dirección IP.
      1. En la página Reservar una dirección IP estática nueva, en Nombre, ingresa network-lb-ipv4.
      2. Haz clic en Reservar.
    3. En Puertos, elige Individual. En Número de puerto, ingresa 80.
    4. Haz clic en Listo.
  4. Para controlar el tráfico IPv6, sigue estos pasos:

    1. En Versión de la IP, selecciona IPv6.
    2. En Subred, selecciona lb-subnet.
    3. En la lista Rango de IPv6, selecciona Crear dirección IP.
      1. En la página Reservar una dirección IP estática nueva, en Nombre, ingresa network-lb-ipv6.
      2. Haz clic en Reservar.
    4. En Puertos, selecciona Individual. En Número de puerto, ingresa 80.
    5. Haz clic en Listo.

    El círculo azul con una marca de verificación a la izquierda de la Configuración de Frontend indica que la configuración se realizó de forma correcta.

Revisa la configuración

  1. Haz clic en Revisar y finalizar.
  2. Revisa la configuración del balanceador de cargas.
  3. Opcional: Haz clic en Código equivalente a fin de ver la solicitud a la API de REST que se usará para crear el balanceador de cargas.
  4. Haz clic en Crear.

    En la página de balanceo de cargas, en la columna Backend de tu balanceador de cargas nuevo, deberías ver una marca de verificación verde que muestra que el balanceador de cargas nuevo está en buen estado.

gcloud

  1. Reserva una dirección IP externa estática.

    (Solo para tráfico IPv4) Crea una dirección IPv4 externa estática para tu balanceador de cargas.

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

    Para el tráfico IPv6: Crea un rango de direcciones IPv6 externas estáticas para tu balanceador de cargas. La subred usada debe ser una subred de pila doble con un rango de IPv6 externo.

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. Crea una verificación de estado de TCP.

    gcloud compute health-checks create tcp tcp-health-check \
        --region us-central1 \
        --port 80
    
  3. Crear un servicio de backend.

    gcloud compute backend-services create network-lb-backend-service \
        --protocol TCP \
        --health-checks tcp-health-check \
        --health-checks-region us-central1 \
        --region us-central1
    
  4. Agrega los dos grupos de instancias al servicio de backend.

    gcloud compute backend-services add-backend network-lb-backend-service \
    --instance-group ig-us-1 \
    --instance-group-zone us-central1-a \
    --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
    --instance-group ig-us-2 \
    --instance-group-zone us-central1-c \
    --region us-central1
    
  5. Crea las reglas de reenvío según si deseas manejar el tráfico IPv4 o IPv6. Crea ambas reglas de reenvío para manejar ambos tipos de tráfico.

    1. Para el tráfico IPv4: crea una regla de reenvío a fin de enrutar el tráfico de TCP entrante al servicio de backend. Usa la dirección IPv4 reservada en el paso 1 como la dirección IP externa estática del balanceador de cargas.

      gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv4 \
        --load-balancing-scheme EXTERNAL \
        --region us-central1 \
        --ports 80 \
        --address network-lb-ipv4 \
        --backend-service network-lb-backend-service
      
    2. Para el tráfico IPv6: crea una regla de reenvío a fin de controlar el tráfico IPv6. Usa el rango de direcciones IPv6 reservado en el paso 1 como la dirección IP externa estática del balanceador de cargas. La subred usada debe ser una subred de pila doble con un rango de subred IPv6 externo.

      gcloud compute forwarding-rules create network-lb-forwarding-rule-ipv6 \
          --load-balancing-scheme EXTERNAL \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports 80 \
          --backend-service network-lb-backend-service
      

Prueba el balanceador de cargas

Ahora que el servicio de balanceo de cargas está configurado, puedes comenzar a enviar tráfico a la dirección IP externa del balanceador de cargas y ver cómo se distribuye el tráfico a las instancias de backend.

Busca la dirección IP externa del balanceador de cargas

Console

  1. En la página Componentes del balanceo de cargas, ve a la pestaña Reglas de reenvío.

    Ir a Reglas de reenvío

  2. Ubica la regla de reenvío que usa el balanceador de cargas.

  3. En la columna Dirección IP externa de , anota la dirección IP externa que aparece en la lista.

gcloud: IPv4

Ingresa el siguiente comando para ver la dirección IPv4 externa de la regla de reenvío network-lb-forwarding-rule que usa el balanceador de cargas.

gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv4 \
    --region us-central1

gcloud: IPv6

Ingresa el siguiente comando para ver la dirección IP IPv6 externa de la regla de reenvío network-lb-forwarding-rule que usa el balanceador de cargas.

gcloud compute forwarding-rules describe network-lb-forwarding-rule-ipv6 \
    --region us-central1

Envía tráfico al balanceador de cargas

Realiza solicitudes web al balanceador de cargas mediante curl para contactar a su dirección IP.

  • Desde los clientes con conectividad IPv4, ejecuta el siguiente comando:

    $ while true; do curl -m1 IPV4_ADDRESS; done
    
  • Desde los clientes con conectividad IPv6, ejecuta el siguiente comando:

    $ while true; do curl -m1 http://IPV6_ADDRESS; done
    

    Por ejemplo, si la dirección IPv6 asignada es [2001:db8:1:1:1:1:1:1/96]:80, el comando debe verse de la siguiente manera:

    $ while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:80; done
    

Ten en cuenta el texto que muestra el comando curl. El nombre de la VM de backend que genera la respuesta se muestra en ese texto; por ejemplo: Page served from: VM_NAME.

La respuesta del comando curl se alterna de manera aleatoria entre las tres instancias. Si al principio tu respuesta es incorrecta, es posible que debas esperar alrededor de 30 segundos para que la configuración se cargue por completo y tus instancias se marquen como en buen estado antes de intentar otra vez.

Opciones de configuración adicionales

En esta sección, se expande el ejemplo de configuración para proporcionar instrucciones sobre cómo personalizar aún más el balanceador de cargas de red de transferencia externo. Estas tareas son opcionales. Puedes realizarlas en cualquier orden.

Configura la afinidad de sesión

La configuración de ejemplo crea un servicio de backend con afinidad de sesión inhabilitada (valor establecido en NONE). En esta sección, se muestra cómo actualizar el servicio de backend para cambiar la configuración de afinidad de sesión del balanceador de cargas.

Para conocer los tipos de afinidad de sesión compatibles, consulta Opciones de afinidad de sesión.

Console

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

    Ir a Balanceo de cargas

  2. En la pestaña Balanceadores de cargas, haz clic en el nombre del servicio de backend y, luego, en Editar.

  3. En la página Editar balanceador de cargas de red de transferencia externo, haz clic en Configuración de backend.

  4. Selecciona una opción de la lista Afinidad de sesión.

  5. Haga clic en Update.

gcloud

Usa el siguiente comando de gcloud a fin de actualizar la afinidad de sesión para el servicio de backend:

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --session-affinity=SESSION_AFFINITY_OPTION

Reemplaza los marcadores de posición por valores válidos:

  • BACKEND_SERVICE: El servicio de backend que estás actualizando.
  • SESSION_AFFINITY_OPTION: Es la opción de afinidad de sesión que deseas establecer.

    A fin de obtener una lista de los valores admitidos para un balanceador de cargas de red de transferencia externo, consulta Opciones de afinidad de sesión.

Configura una política de seguimiento de conexiones

En la configuración de ejemplo, se crea un servicio de backend con la configuración predeterminada para la política de seguimiento de conexiones. En esta sección, se muestra cómo actualizar el servicio de backend para cambiar la política predeterminada de seguimiento de conexiones del balanceador de cargas.

Una política de seguimiento de conexión incluye la siguiente configuración:

gcloud

Usa el siguiente comando gcloud compute backend-services para actualizar la política de seguimiento de conexiones del servicio de backend:

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --tracking-mode=TRACKING_MODE \
    --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR

Reemplaza los marcadores de posición por valores válidos:

  • BACKEND_SERVICE: El servicio de backend que estás actualizando.
  • TRACKING_MODE: Es el modo de seguimiento de la conexión que se usará para los paquetes entrantes. Para obtener la lista de valores admitidos, consulta Modo de seguimiento.
  • CONNECTION_PERSISTENCE_BEHAVIOR: Es el comportamiento de persistencia de la conexión cuando los backends están en mal estado. Para obtener la lista de valores compatibles, consulta Persistencia de conexión en backends en mal estado.

Configura el direccionamiento del tráfico

En esta sección, se muestra cómo actualizar la configuración de frontend de un balanceador de cargas para configurar el direccionamiento del tráfico basado en la IP de origen. Para obtener detalles sobre cómo funciona el direccionamiento del tráfico, consulta Direccionamiento del tráfico.

En estas instrucciones, se supone que ya creaste una regla de reenvío base superior. En este ejemplo, se crea una segunda regla de reenvío, que es la regla de reenvío, con la misma dirección IP, el mismo protocolo IP y los mismos puertos que el superior. Esta regla de reenvío de dirección se configura con rangos de IP de origen para que puedas personalizar la forma en que se reenvían los paquetes de esos rangos de IP de origen.

gcloud

Usa el siguiente comando para crear una regla de reenvío de dirección que apunte a un servicio de backend:

gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_BS \
    --load-balancing-scheme=EXTERNAL \
    --backend-service=BACKEND_SERVICE \
    --address=LOAD_BALANCER_VIP \
    --ip-protocol=IP_PROTOCOL \
    --ports=PORTS \
    --region=REGION \
    --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES

Usa el siguiente comando para crear una regla de reenvío de dirección que apunte a una instancia de destino:

gcloud compute forwarding-rules create STEERING_FORWARDING_RULE_TI \
    --load-balancing-scheme=EXTERNAL \
    --target-instance=TARGET_INSTANCE \
    --address=LOAD_BALANCER_VIP \
    --ip-protocol=IP_PROTOCOL \
    --ports=PORTS \
    --region=REGION \
    --source-ip-ranges=SOURCE_IP_ADDRESS_RANGES

Reemplaza los marcadores de posición por valores válidos:

  • FORWARDING_RULE: Es el nombre de la regla de reenvío de dirección que creas.
  • BACKEND_SERVICE o TARGET_INSTANCE: Es el nombre del servicio de backend o de la instancia de destino a la que esta regla de reenvío de dirección enviará tráfico. Incluso si la regla de reenvío superior apunta a un servicio de backend, puedes crear reglas de reenvío de dirección que apunten a instancias de destino.
  • LOAD_BALANCER_VIP, IP_PROTOCOL, PORTS: la dirección IP, el protocolo IP y los puertos, respectivamente, para la regla de reenvío de direccionamiento que creas. Esta configuración debe coincidir con una regla de reenvío base preexistente.
  • REGION: Es la región de la regla de reenvío que deseas crear.
  • SOURCE_IP_ADDRESS_RANGES: Es una lista separada por comas de las direcciones IP o los rangos de direcciones IP. Esta regla de reenvío solo reenviará el tráfico cuando la dirección IP de origen del paquete entrante se encuentre en uno de los rangos de IP establecidos aquí.

Usa el siguiente comando para borrar una regla de reenvío de dirección. Debes borrar cualquier regla de reenvío de dirección que use un balanceador de cargas antes de poder borrar el balanceador de cargas.

gcloud compute forwarding-rules delete STEERING_FORWARDING_RULE \
    --region=REGION

Configura la política de conmutación por error

Si quieres configurar la política de conmutación por error, consulta Configura la conmutación por error para balanceadores de cargas de red de transferencia externos.

Configura el balanceo de cargas ponderado

Para configurar el balanceo de cargas ponderado, consulta Configura el balanceo de cargas ponderado.

¿Qué sigue?