Configurar un balanceador de carga de red de proxy interno multirregional con backends de grupos de instancias de VM

En este documento se proporcionan instrucciones para configurar un balanceador de carga de red proxy interno entre regiones para los servicios que se ejecutan en máquinas virtuales de Compute Engine.

Antes de empezar

Antes de seguir esta guía, familiarízate con lo siguiente:

Permisos

Para seguir esta guía, debes poder crear instancias y modificar una red en un proyecto. Debes ser propietario o editor del proyecto, o bien tener todos los roles de gestión de identidades y accesos de Compute Engine que se indican a continuación.

Tarea Rol necesario
Crear redes, subredes y componentes de balanceador de carga Administrador de red de Compute
Añadir y eliminar reglas de cortafuegos Administrador de seguridad de Compute
Crear instancias Administrador de instancias de Compute

Para obtener más información, consulta las siguientes guías:

Descripción general de la configuración

Puede configurar el balanceador de carga como se muestra en el siguiente diagrama:

Despliegue de alta disponibilidad de balanceadores de carga de red de proxy internos interregionales.
Despliegue de alta disponibilidad de balanceador de carga de red de proxy interno entre regiones (haz clic en la imagen para ampliarla).

Como se muestra en el diagrama, en este ejemplo se crea un balanceador de carga de red interno entre regiones en una red de VPC, con un servicio de backend y dos grupos de instancias gestionados (MIGs) de backend en las regiones REGION_A y REGION_B.

En el diagrama se muestra lo siguiente:

  1. Una red de VPC con las siguientes subredes:

    • Subred SUBNET_A y una subred de solo proxy en REGION_A.
    • Subred SUBNET_B y una subred de solo proxy en REGION_B.

    Debes crear subredes de solo proxy en cada región de una red de VPC en la que uses balanceadores de carga de red de proxy internos entre regiones. La subred de solo proxy de la región se comparte entre todos los balanceadores de carga de red con proxy internos entre regiones de la región. Las direcciones de origen de los paquetes enviados desde el balanceador de carga a los backends de tu servicio se asignan desde la subred solo proxy. En este ejemplo, la subred solo de proxy de la región REGION_B tiene un intervalo de direcciones IP principal de 10.129.0.0/23 y, en el caso de REGION_A, tiene un intervalo de direcciones IP principal de 10.130.0.0/23, que es el tamaño de subred recomendado.

  2. La configuración de alta disponibilidad tiene backends de grupos de instancias gestionados para las implementaciones de máquinas virtuales de Compute Engine en las regiones REGION_A y REGION_B. Si los backends de una región no funcionan, el tráfico se redirige a la otra región.

  3. Un servicio de backend global que monitoriza el uso y el estado de los backends.

  4. Un proxy TCP de destino global, que recibe una solicitud del usuario y la reenvía al servicio de backend.

  5. Reglas de reenvío globales, que tienen la dirección IP interna regional de tu balanceador de carga y pueden reenviar cada solicitud entrante al proxy de destino.

    La dirección IP interna asociada a la regla de reenvío puede proceder de una subred de la misma red y región que los backends. Ten en cuenta las siguientes condiciones:

    • La dirección IP puede (pero no tiene por qué) proceder de la misma subred que los grupos de instancias de backend.
    • La dirección IP no debe proceder de una subred reservada de solo proxy que tenga el valor GLOBAL_MANAGED_PROXY en su marca --purpose.
    • Si quieres usar la misma dirección IP interna con varias reglas de reenvío, define el valor de la marca de dirección IP --purpose como SHARED_LOADBALANCER_VIP.

Configurar la red y las subredes

En la red de VPC, configura una subred en cada región en la que estén configurados tus back-ends. Además, configura una proxy-only-subnet en cada región en la que quieras configurar el balanceador de carga.

En este ejemplo se usan la siguiente red VPC, región y subredes:

  • Red La red es una red de VPC en modo personalizado llamada NETWORK.

  • Subredes para back-ends.

    • Una subred llamada SUBNET_A en la región REGION_A usa 10.1.2.0/24 para su intervalo de IPs principal.
    • Una subred llamada SUBNET_B en la región REGION_B usa 10.1.3.0/24 para su intervalo de IPs principal.
  • Subredes para proxies.

    • Una subred llamada PROXY_SN_A en la región REGION_A usa 10.129.0.0/23 para su intervalo de IP principal.
    • Una subred llamada PROXY_SN_B en la región REGION_B usa 10.130.0.0/23 como intervalo de IP principal.

Se puede acceder a los balanceadores de carga de aplicaciones internos entre regiones desde cualquier región de la VPC. De esta forma, los clientes de cualquier región pueden acceder a los backends de tu balanceador de carga a nivel mundial.

Configurar las subredes de backend

Consola

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

    Ir a redes de VPC

  2. Haz clic en Crear red VPC.

  3. Asigne un nombre a la red.

  4. En la sección Subredes, selecciona Personalizado en Modo de creación de subredes.

  5. Crea una subred para los back-ends del balanceador de carga. En la sección Nueva subred, introduce la siguiente información:

    • Asigna un nombre a la subred.
    • Selecciona una región: REGION_A
    • Introduce un intervalo de direcciones IP: 10.1.2.0/24
  6. Haz clic en Listo.

  7. Haz clic en Añadir subred.

  8. Crea una subred para los back-ends del balanceador de carga. En la sección Nueva subred, introduce la siguiente información:

    • Asigna un nombre a la subred.
    • Selecciona una región: REGION_B
    • Introduce un intervalo de direcciones IP: 10.1.3.0/24
  9. Haz clic en Listo.

  10. Haz clic en Crear.

gcloud

  1. Crea la red de VPC personalizada con el comando gcloud compute networks create:

    gcloud compute networks create NETWORK \
        --subnet-mode=custom
    
  2. Crea una subred en la red NETWORK de la región REGION_A con el comando gcloud compute networks subnets create:

    gcloud compute networks subnets create SUBNET_A \
        --network=NETWORK \
        --range=10.1.2.0/24 \
        --region=REGION_A
    
  3. Crea una subred en la red NETWORK de la región REGION_B con el comando gcloud compute networks subnets create:

    gcloud compute networks subnets create SUBNET_B \
        --network=NETWORK \
        --range=10.1.3.0/24 \
        --region=REGION_B
    

Terraform

Para crear la red de VPC, usa el recurso google_compute_network.

resource "google_compute_network" "default" {
  auto_create_subnetworks = false
  name                    = "lb-network-crs-reg"
  provider                = google-beta
}

Para crear las subredes de VPC en la red lb-network-crs-reg, usa el recurso google_compute_subnetwork.

resource "google_compute_subnetwork" "subnet_a" {
  provider      = google-beta
  ip_cidr_range = "10.1.2.0/24"
  name          = "lbsubnet-uswest1"
  network       = google_compute_network.default.id
  region        = "us-west1"
}
resource "google_compute_subnetwork" "subnet_b" {
  provider      = google-beta
  ip_cidr_range = "10.1.3.0/24"
  name          = "lbsubnet-useast1"
  network       = google_compute_network.default.id
  region        = "us-east1"
}

API

Realiza una solicitud POST al método networks.insert. Sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks

{
 "routingConfig": {
   "routingMode": "regional"
 },
 "name": "NETWORK",
 "autoCreateSubnetworks": false
}

Realiza una solicitud POST al método subnetworks.insert. Sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks

{
 "name": "SUBNET_A",
 "network": "projects/PROJECT_ID/global/networks/lb-network-crs-reg",
 "ipCidrRange": "10.1.2.0/24",
 "region": "projects/PROJECT_ID/regions/REGION_A",
}

Realiza una solicitud POST al método subnetworks.insert. Sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks

{
 "name": "SUBNET_B",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "ipCidrRange": "10.1.3.0/24",
 "region": "projects/PROJECT_ID/regions/REGION_B",
}

Configurar la subred de solo proxy

Una subred de solo proxy proporciona un conjunto de direcciones IP que Google Cloud usa para ejecutar proxies de Envoy en tu nombre. Los proxies terminan las conexiones del cliente y crean nuevas conexiones con los back-ends.

Todos los balanceadores de carga regionales basados en Envoy de la misma región que la red de VPC usan esta subred de solo proxy. Solo puede haber una subred solo proxy activa para un propósito determinado por región y por red.

Consola

Si usas la consola de Google Cloud , puedes esperar y crear la subred de solo proxy más adelante en la página Balanceo de carga.

Si quieres crear la subred de solo proxy ahora, sigue estos pasos:

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

    Ir a redes de VPC

  2. Haga clic en el nombre de la red VPC.
  3. En la pestaña Subred, haz clic en Añadir subred.
  4. Asigna un nombre a la subred de solo proxy.
  5. Selecciona una región: REGION_A
  6. En la lista Propósito, selecciona Proxy gestionado entre regiones.
  7. En el campo Intervalo de direcciones IP, introduce 10.129.0.0/23.
  8. Haz clic en Añadir.

Crea la subred de solo proxy en REGION_B

  1. En la pestaña Subred, haz clic en Añadir subred.
  2. Asigna un nombre a la subred de solo proxy.
  3. Selecciona una región: REGION_B
  4. En la lista Propósito, selecciona Proxy gestionado entre regiones.
  5. En el campo Intervalo de direcciones IP, introduce 10.130.0.0/23.
  6. Haz clic en Añadir.

gcloud

Crea las subredes de solo proxy con el comando gcloud compute networks subnets create.

    gcloud compute networks subnets create PROXY_SN_A \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_A \
        --network=NETWORK \
        --range=10.129.0.0/23
    
    gcloud compute networks subnets create PROXY_SN_B \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_B \
        --network=NETWORK \
        --range=10.130.0.0/23
    

Terraform

Para crear la subred de solo proxy de la VPC en la red lb-network-crs-reg, usa el recurso google_compute_subnetwork.

resource "google_compute_subnetwork" "proxy_subnet_a" {
  provider      = google-beta
  ip_cidr_range = "10.129.0.0/23"
  name          = "proxy-only-subnet1"
  network       = google_compute_network.default.id
  purpose       = "GLOBAL_MANAGED_PROXY"
  region        = "us-west1"
  role          = "ACTIVE"
  lifecycle {
    ignore_changes = [ipv6_access_type]
  }
}
resource "google_compute_subnetwork" "proxy_subnet_b" {
  provider      = google-beta
  ip_cidr_range = "10.130.0.0/23"
  name          = "proxy-only-subnet2"
  network       = google_compute_network.default.id
  purpose       = "GLOBAL_MANAGED_PROXY"
  region        = "us-east1"
  role          = "ACTIVE"
  lifecycle {
    ignore_changes = [ipv6_access_type]
  }
}

API

Crea las subredes de solo proxy con el método subnetworks.insert. Sustituye PROJECT_ID por el ID de tu proyecto.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks

    {
      "name": " PROXY_SN_A",
      "ipCidrRange": "10.129.0.0/23",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_A",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
   
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks

    {
      "name": "PROXY_SN_B",
      "ipCidrRange": "10.130.0.0/23",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_B",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
   

Configurar reglas de cortafuegos

En este ejemplo se usan las siguientes reglas de cortafuegos:

  • fw-ilb-to-backends. Una regla de entrada aplicable a las instancias que se van a balancear de carga que permita la conectividad SSH entrante en el puerto TCP 22 desde cualquier dirección. Puedes elegir un intervalo de direcciones IP de origen más restrictivo para esta regla. Por ejemplo, puedes especificar solo los intervalos de direcciones IP del sistema desde el que inicias sesiones SSH. En este ejemplo se usa la etiqueta de destino allow-ssh para identificar las VMs a las que se aplica la regla de cortafuegos.

  • fw-healthcheck. Una regla de entrada aplicable a las instancias que se están balanceando de carga, que permite todo el tráfico TCP de los sistemas de comprobación del estado Google Cloud(en 130.211.0.0/22 y 35.191.0.0/16). En este ejemplo, se usa la etiqueta de destino load-balanced-backend para identificar las VMs a las que se aplica la regla de cortafuegos.

  • fw-backends. Una regla de entrada, aplicable a las instancias que se van a balancear, que permita el tráfico TCP en los puertos 80, 443 y 8080 de los proxies gestionados del balanceador de carga de red con proxy interno. En este ejemplo se usa la etiqueta de destino load-balanced-backend para identificar las VMs a las que se aplica la regla de cortafuegos.

Sin estas reglas de cortafuegos, la regla denegar predeterminada de entrada bloquea el tráfico entrante a las instancias de backend.

Las etiquetas de destino definen las instancias de backend. Si no se incluyen las etiquetas de destino, las reglas de cortafuegos se aplican a todas las instancias de backend de la red de VPC. Cuando crees las VMs de backend, asegúrate de incluir las etiquetas de destino especificadas, tal como se muestra en Crear un grupo de instancias gestionado.

Consola

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

    Ir a Políticas de cortafuegos

  2. Haz clic en Crear regla de cortafuegos para crear la regla que permita las conexiones SSH entrantes:

    • Nombre: fw-ilb-to-backends
    • Red: NETWORK
    • Sentido del tráfico: entrada
    • Acción tras coincidencia: Permitir
    • Objetivos: Etiquetas de destino especificadas
    • Etiquetas de destino: allow-ssh
    • Filtro de origen: Intervalos de IPv4
    • Intervalos de IPv4 de origen: 0.0.0.0/0
    • Protocolos y puertos:
      • Elige Protocolos y puertos especificados.
      • Selecciona la casilla TCP y, a continuación, introduce 22 como número de puerto.
  3. Haz clic en Crear.

  4. Vuelve a hacer clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado deGoogle Cloud :

    • Nombre: fw-healthcheck
    • Red: NETWORK
    • Sentido del tráfico: entrada
    • Acción tras coincidencia: Permitir
    • Objetivos: Etiquetas de destino especificadas
    • Etiquetas de destino: load-balanced-backend
    • Filtro de origen: Intervalos de IPv4
    • Intervalos de IPv4 de origen: 130.211.0.0/22 y 35.191.0.0/16
    • Protocolos y puertos:

      • Elige Protocolos y puertos especificados.
      • Selecciona la casilla TCP y, a continuación, introduce 80 como número de puerto.

      Como práctica recomendada, limita esta regla a los protocolos y puertos que coincidan con los que usa tu comprobación del estado. Si usas tcp:80 para el protocolo y el puerto, Google Cloud puede usar HTTP en el puerto 80 para ponerse en contacto con tus VMs, pero no puede usar HTTPS en el puerto 443 para hacerlo.

  5. Haz clic en Crear.

  6. Haz clic en Crear regla de cortafuegos por tercera vez para crear la regla que permita que los servidores proxy del balanceador de carga se conecten a los backends:

    • Nombre: fw-backends
    • Red: NETWORK
    • Sentido del tráfico: entrada
    • Acción tras coincidencia: Permitir
    • Objetivos: Etiquetas de destino especificadas
    • Etiquetas de destino: load-balanced-backend
    • Filtro de origen: Intervalos de IPv4
    • Intervalos de IPv4 de origen: 10.129.0.0/23 y 10.130.0.0/23
    • Protocolos y puertos:
      • Elige Protocolos y puertos especificados.
      • Selecciona la casilla TCP y, a continuación, introduce 80, 443, 8080 en los números de puerto.
  7. Haz clic en Crear.

gcloud

  1. Crea la regla de cortafuegos fw-ilb-to-backends para permitir la conectividad SSH a las VMs con la etiqueta de red allow-ssh. Si omite source-ranges, Google Cloud interpreta que la regla se aplica a cualquier fuente.

    gcloud compute firewall-rules create fw-ilb-to-backends \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. Crea la regla fw-healthcheck para permitir Google Cloud las comprobaciones del estado. En este ejemplo, se permite todo el tráfico TCP de los verificadores de comprobación del estado. Sin embargo, puede configurar un conjunto de puertos más reducido para satisfacer sus necesidades.

    gcloud compute firewall-rules create fw-healthcheck \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --target-tags=load-balanced-backend \
        --rules=tcp
    
  3. Crea la regla fw-backends para permitir que los proxies del balanceador de carga de red de proxy interno se conecten a tus backends. Define source-ranges en los intervalos asignados de tu subred de solo proxy, por ejemplo, 10.129.0.0/23 y 10.130.0.0/23.

    gcloud compute firewall-rules create fw-backends \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --source-ranges=SOURCE_RANGE \
        --target-tags=load-balanced-backend \
        --rules=tcp:80,tcp:443,tcp:8080
    

API

Crea la regla de cortafuegos fw-ilb-to-backends haciendo una solicitud POST al método firewalls.insert y sustituyendo PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "fw-ilb-to-backends",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "sourceRanges": [
   "0.0.0.0/0"
 ],
 "targetTags": [
   "allow-ssh"
 ],
 "allowed": [
  {
    "IPProtocol": "tcp",
    "ports": [
      "22"
    ]
  }
 ],
"direction": "INGRESS"
}

Crea la regla de cortafuegos fw-healthcheck haciendo una solicitud POST al método firewalls.insert y sustituyendo PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "fw-healthcheck",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "sourceRanges": [
   "130.211.0.0/22",
   "35.191.0.0/16"
 ],
 "targetTags": [
   "load-balanced-backend"
 ],
 "allowed": [
   {
     "IPProtocol": "tcp"
   }
 ],
 "direction": "INGRESS"
}

Crea la regla de cortafuegos fw-backends para permitir el tráfico TCP en la subred de proxy del método firewalls.insert. Sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "fw-backends",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "sourceRanges": [
   "10.129.0.0/23",
   "10.130.0.0/23"
 ],
 "targetTags": [
   "load-balanced-backend"
 ],
 "allowed": [
   {
     "IPProtocol": "tcp",
     "ports": [
       "80"
     ]
   },
 {
     "IPProtocol": "tcp",
     "ports": [
       "443"
     ]
   },
   {
     "IPProtocol": "tcp",
     "ports": [
       "8080"
     ]
   }
 ],
 "direction": "INGRESS"
}

Crear un grupo de instancias gestionado

En esta sección se muestra cómo crear una plantilla y un grupo de instancias gestionado. El grupo de instancias gestionado proporciona instancias de VM que ejecutan los servidores backend de un balanceador de carga de red con proxy interno entre regiones de ejemplo. En tu grupo de instancias, puedes definir un servicio HTTP y asignar un nombre de puerto al puerto correspondiente. El servicio de backend del balanceador de carga reenvía el tráfico a los puertos con nombre. El tráfico de los clientes se balancea entre los servidores de backend. Para fines de demostración, los backends sirven sus propios nombres de host.

Consola

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

    Ir a Plantillas de instancia

    1. Haz clic en Crear plantilla de instancia.
    2. En Nombre, escribe gil4-backendeast1-template.
    3. Asegúrate de que el disco de arranque esté configurado con una imagen de Debian, como Debian GNU/Linux 12 (bookworm). En estas instrucciones se usan comandos que solo están disponibles en Debian, como apt-get.
    4. Haz clic en Advanced options (Opciones avanzadas).
    5. Haga clic en Redes y configure los siguientes campos:
      1. En Etiquetas de red, introduce allow-ssh y load-balanced-backend.
      2. En Interfaces de red, selecciona lo siguiente:
        • Red: NETWORK
        • Subred: SUBNET_B
    6. Haz clic en Gestión. Introduce 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://169.254.169.254/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
    7. Haz clic en Crear.

    8. Haz clic en Crear plantilla de instancia.

    9. En Nombre, escribe gil4-backendwest1-template.

    10. Asegúrate de que el disco de arranque esté configurado con una imagen de Debian, como Debian GNU/Linux 12 (bookworm). En estas instrucciones se usan comandos que solo están disponibles en Debian, como apt-get.

    11. Haz clic en Advanced options (Opciones avanzadas).

    12. Haga clic en Redes y configure los siguientes campos:

      1. En Etiquetas de red, introduce allow-ssh y load-balanced-backend.
      2. En Interfaces de red, selecciona lo siguiente:
        • Red: NETWORK
        • Subred: SUBNET_A
    13. Haz clic en Gestión. Introduce 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://169.254.169.254/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
    14. Haz clic en Crear.

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

    Ir a Grupos de instancias

    1. Haz clic en Crear grupo de instancias.
    2. Selecciona Nuevo grupo de instancias gestionado (sin reconocimiento del estado). Para obtener más información, consulta Grupos de instancias gestionados con o sin reconocimiento del estado.
    3. En Nombre, escribe gl4-ilb-miga.
    4. En Ubicación, selecciona Una sola zona.
    5. En Región, selecciona REGION_A.
    6. En Zona, selecciona ZONE_A.
    7. En Plantilla de instancia, selecciona gil4-backendwest1-template.
    8. Especifica el número de instancias que quieres crear en el grupo.

      En este ejemplo, especifica las siguientes opciones en Escalado automático:

      • En Modo de autoescalado, selecciona Off:do not autoscale.
      • En Número máximo de instancias, introduce 2.

      Opcionalmente, en la sección Autoescalado de la interfaz de usuario, puede configurar el grupo de instancias para que añada o elimine instancias automáticamente en función del uso de la CPU de las instancias.

    9. Haz clic en Crear.

    10. Haz clic en Crear grupo de instancias.

    11. Selecciona Nuevo grupo de instancias gestionado (sin reconocimiento del estado). Para obtener más información, consulta Grupos de instancias gestionados con o sin reconocimiento del estado.

    12. En Nombre, escribe gl4-ilb-migb.

    13. En Ubicación, selecciona Una sola zona.

    14. En Región, selecciona REGION_B.

    15. En Zona, selecciona ZONE_B.

    16. En Plantilla de instancia, selecciona gil4-backendeast1-template.

    17. Especifica el número de instancias que quieres crear en el grupo.

      En este ejemplo, especifica las siguientes opciones en Escalado automático:

      • En Modo de autoescalado, selecciona Off:do not autoscale.
      • En Número máximo de instancias, introduce 2.

      Opcionalmente, en la sección Auto escalado de la interfaz de usuario, puede configurar el grupo de instancias para que añada o elimine instancias automáticamente en función del uso de la CPU de las instancias.

    18. Haz clic en Crear.

gcloud

Las instrucciones de la CLI de gcloud de esta guía presuponen que usas Cloud Shell u otro entorno con bash instalado.

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

    gcloud compute instance-templates create gil4-backendwest1-template \
       --region=REGION_A \
       --network=NETWORK \
       --subnet=SUBNET_A \
       --tags=allow-ssh,load-balanced-backend \
       --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'
    
    gcloud compute instance-templates create gil4-backendeast1-template \
        --region=REGION_B \
        --network=NETWORK \
        --subnet=SUBNET_B \
        --tags=allow-ssh,load-balanced-backend \
        --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'
    
  2. Crea un grupo de instancias gestionado en la zona con el comando gcloud compute instance-groups managed create.

    gcloud compute instance-groups managed create gl4-ilb-miga \
        --zone=ZONE_A \
        --size=2 \
        --template=gil4-backendwest1-template
    
    gcloud compute instance-groups managed create gl4-ilb-migb \
        --zone=ZONE_B \
        --size=2 \
        --template=gil4-backendeast1-template
    

API

Crea la plantilla de instancia con el método instanceTemplates.insert y sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name":"gil4-backendwest1-template",
  "properties":{
     "machineType":"e2-standard-2",
     "tags":{
       "items":[
         "allow-ssh",
         "load-balanced-backend"
       ]
     },
     "metadata":{
        "kind":"compute#metadata",
        "items":[
          {
            "key":"startup-script",
            "value":"#! /bin/bash\napt-get update\napt-get install
            apache2 -y\na2ensite default-ssl\na2enmod ssl\n
            vm_hostname=\"$(curl -H \"Metadata-Flavor:Google\"
            \\\nhttp://169.254.169.254/computeMetadata/v1/instance/name)\"\n
            echo \"Page served from: $vm_hostname\" | \\\ntee
            /var/www/html/index.html\nsystemctl restart apache2"
          }
        ]
     },
     "networkInterfaces":[
       {
         "network":"projects/PROJECT_ID/global/networks/NETWORK",
         "subnetwork":"regions/REGION_A/subnetworks/SUBNET_A",
         "accessConfigs":[
           {
             "type":"ONE_TO_ONE_NAT"
           }
         ]
       }
     ],
     "disks":[
       {
         "index":0,
         "boot":true,
         "initializeParams":{
           "sourceImage":"projects/debian-cloud/global/images/family/debian-12"
         },
         "autoDelete":true
       }
     ]
  }
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

{
  "name":"gil4-backendeast1-template",
  "properties":{
     "machineType":"e2-standard-2",
     "tags":{
       "items":[
         "allow-ssh",
         "load-balanced-backend"
       ]
     },
     "metadata":{
        "kind":"compute#metadata",
        "items":[
          {
            "key":"startup-script",
            "value":"#! /bin/bash\napt-get update\napt-get install
            apache2 -y\na2ensite default-ssl\na2enmod ssl\n
            vm_hostname=\"$(curl -H \"Metadata-Flavor:Google\"
            \\\nhttp://169.254.169.254/computeMetadata/v1/instance/name)\"\n
            echo \"Page served from: $vm_hostname\" | \\\ntee
            /var/www/html/index.html\nsystemctl restart apache2"
          }
        ]
     },
     "networkInterfaces":[
       {
         "network":"projects/PROJECT_ID/global/networks/NETWORK",
         "subnetwork":"regions/REGION_B/subnetworks/SUBNET_B",
         "accessConfigs":[
           {
             "type":"ONE_TO_ONE_NAT"
           }
         ]
       }
     ],
     "disks":[
       {
         "index":0,
         "boot":true,
         "initializeParams":{
           "sourceImage":"projects/debian-cloud/global/images/family/debian-12"
         },
         "autoDelete":true
       }
     ]
  }
}

Crea un grupo de instancias gestionadas en cada zona con el método instanceGroupManagers.insert. Sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/{zone}/instanceGroupManagers

{
  "name": "gl4-ilb-miga",
  "zone": "projects/PROJECT_ID/zones/ZONE_A",
  "instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/gil4-backendwest1-template",
  "baseInstanceName": "gl4-ilb-miga",
  "targetSize": 2
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/{zone}/instanceGroupManagers

{
  "name": "gl4-ilb-migb",
  "zone": "projects/PROJECT_ID/zones/ZONE_A",
  "instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/gil4-backendwest1-template",
  "baseInstanceName": "gl4-ilb-migb",
  "targetSize": 2
}

Configurar el balanceador de carga

En este ejemplo se muestra cómo crear los siguientes recursos de balanceador de carga de red proxy interno entre regiones:

  • Una comprobación del estado TCP global.
  • Un servicio de backend global con los mismos MIGs que el backend.
  • Un proxy de destino global.
  • Dos reglas de reenvío globales con direcciones IP regionales. En la dirección IP de la regla de reenvío, usa el intervalo de direcciones IP SUBNET_A o SUBNET_B. Si intentas usar la subred de solo proxy, no se podrá crear la regla de reenvío.

Disponibilidad de proxy

A veces, las Google Cloud regiones no tienen suficiente capacidad de proxy para un nuevo balanceador de carga. Si esto ocurre, la Google Cloud consola proporciona un mensaje de advertencia de disponibilidad del proxy cuando creas el balanceador de carga. Para solucionar este problema, puedes hacer una de las siguientes cosas:

  • Selecciona otra región para el balanceador de carga. Esta puede ser una opción práctica si tienes back-ends en otra región.
  • Selecciona una red de VPC que ya tenga una subred de solo proxy asignada.
  • Espera a que se resuelva el problema de capacidad.

Consola

Iniciar la configuración

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

    Ir a Balanceo de carga

  2. Haga clic en Crear balanceador de carga.
  3. En Tipo de balanceador de carga, selecciona Balanceador de carga de red (TCP/UDP/SSL) y haz clic en Siguiente.
  4. En Proxy o pasarela, selecciona Balanceador de carga de proxy y haz clic en Siguiente.
  5. En Público o interno, selecciona Interno y haz clic en Siguiente.
  6. En Implementación en una sola región o en varias regiones, selecciona La mejor opción para cargas de trabajo entre regiones y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. Asigna un nombre al balanceador de carga.
  2. En Red, selecciona NETWORK.

Configurar el frontend con dos reglas de reenvío

  1. Haz clic en Configuración de frontend.
    1. Asigne un nombre a la regla de reenvío.
    2. En la lista Región de la subred, selecciona REGION_A.

      Reservar una subred de solo proxy

    3. En la lista Subred, selecciona SUBNET_A.
    4. En la lista Dirección IP, haz clic en Crear dirección IP. Se abrirá la página Reservar una dirección IP interna estática.
      • Asigna un nombre a la dirección IP estática.
      • En la lista Dirección IP estática, selecciona Permitirme elegir.
      • En el campo Dirección IP personalizada, introduce 10.1.2.99.
      • Selecciona Reservar.
  2. Haz clic en Listo.
  3. Para añadir la segunda regla de reenvío, haz clic en Añadir IP y puerto de frontend.
    1. Asigne un nombre a la regla de reenvío.
    2. En la lista Región de la subred, selecciona REGION_B.

      Reservar una subred de solo proxy

    3. En la lista Subred, selecciona SUBNET_B.
    4. En la lista Dirección IP, haz clic en Crear dirección IP. Se abrirá la página Reservar una dirección IP interna estática.
      • Asigna un nombre a la dirección IP estática.
      • En la lista Dirección IP estática, selecciona Permitirme elegir.
      • En el campo Dirección IP personalizada, introduce 10.1.3.99.
      • Selecciona Reservar.
  4. Haz clic en Listo.
Configurar el servicio de backend
  1. Haz clic en Configuración de backend.
  2. En la lista Crear o seleccionar servicios de backend, haz clic en Crear un servicio de backend.
  3. Asigna un Nombre al servicio de backend.
  4. En Protocolo, selecciona TCP.
  5. En Puerto con nombre, introduce http.
  6. En la lista Tipo de backend, selecciona Grupo de instancias.
  7. En la sección Nuevo backend:
    • En la lista Grupo de instancias, selecciona gl4-ilb-miga en REGION_A.
    • Define Port numbers (Transferir números) en 80.
    • Haz clic en Listo.
    • Para añadir otro backend, haz clic en Añadir backend.
    • En la lista Grupo de instancias, selecciona gl4-ilb-migb en REGION_B.
    • Define Port numbers (Transferir números) en 80.
    • Haz clic en Listo.
  8. En la lista Comprobación del estado, haga clic en Crear una comprobación del estado.
    • En el campo Name (Nombre), introduce global-http-health-check.
    • Define Protocol (Protocolo) como HTTP.
    • Define Puerto como 80.
    • Haz clic en Guardar.

Revisar la configuración

  1. Haz clic en Revisar y finalizar.
  2. Revisa los ajustes de configuración de tu balanceador de carga.
  3. Haz clic en Crear.

gcloud

  1. Define la comprobación del estado TCP con el comando gcloud compute health-checks create tcp.

    gcloud compute health-checks create tcp global-health-check \
       --use-serving-port \
       --global
    
  2. Define el servicio backend con el comando gcloud compute backend-services create.

    gcloud compute backend-services create gl4-gilb-backend-service \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=TCP \
      --enable-logging \
      --logging-sample-rate=1.0 \
      --health-checks=global-health-check \
      --global-health-checks \
      --global
    
  3. Añade backends al servicio de backend con el comando gcloud compute backend-services add-backend.

    gcloud compute backend-services add-backend gl4-gilb-backend-service \
      --balancing-mode=CONNECTION \
      --max-connections=50 \
      --instance-group=gl4-ilb-miga \
      --instance-group-zone=ZONE_A \
      --global
    
    gcloud compute backend-services add-backend gl4-gilb-backend-service \
      --balancing-mode=CONNECTION \
      --max-connections=50 \
      --instance-group=gl4-ilb-migb \
      --instance-group-zone=ZONE_B \
      --global
    
  4. Crea el proxy de destino.

    Crea el proxy de destino con el comando gcloud compute target-tcp-proxies create.

    gcloud compute target-tcp-proxies create gilb-tcp-proxy \
      --backend-service=gl4-gilb-backend-service \
      --global
    
  5. Crea dos reglas de reenvío: una con una IP virtual (10.1.2.99) en REGION_B y otra con una IP virtual (10.1.3.99) en REGION_A. Para obtener más información, consulta Reservar una dirección IPv4 interna estática.

    En el caso de las redes personalizadas, debes hacer referencia a la subred en la regla de reenvío. Ten en cuenta que se trata de la subred de la VM, no de la subred del proxy.

    Usa el comando gcloud compute forwarding-rules create con las marcas correctas.

    gcloud compute forwarding-rules create gil4forwarding-rule-a \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_A \
      --subnet-region=REGION_A \
      --address=10.1.2.99 \
      --ports=80 \
      --target-tcp-proxy=gilb-tcp-proxy \
      --global
    
    gcloud compute forwarding-rules create gil4forwarding-rule-b \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_B \
      --subnet-region=REGION_B \
      --address=10.1.3.99 \
      --ports=80 \
      --target-tcp-proxy=gilb-tcp-proxy \
      --global
    

API

Para crear la comprobación del estado, haz una solicitud POST al método healthChecks.insert y sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/healthChecks

{
"name": "global-health-check",
"type": "TCP",
"httpHealthCheck": {
  "portSpecification": "USE_SERVING_PORT"
}
}

Crea el servicio de backend global haciendo una solicitud POST al método backendServices.insert y sustituyendo PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices

{
"name": "gl4-gilb-backend-service",
"backends": [
  {
    "group": "projects/PROJECT_ID/zones/ZONE_A/instanceGroups/gl4-ilb-miga",
    "balancingMode": "CONNECTION"
  },
  {
    "group": "projects/PROJECT_ID/zones/ZONE_B/instanceGroups/gl4-ilb-migb",
    "balancingMode": "CONNECTION"
  }
],
"healthChecks": [
  "projects/PROJECT_ID/regions/global/healthChecks/global-health-check"
],
"loadBalancingScheme": "INTERNAL_MANAGED"
}

Crea el proxy TCP de destino haciendo una solicitud POST al método targetTcpProxies.insert y sustituyendo PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetTcpProxy

{
"name": "l4-ilb-proxy",
}

Para crear la regla de reenvío, haz una solicitud POST al método forwardingRules.insert y sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil4forwarding-rule-a",
"IPAddress": "10.1.2.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetTcpProxies/l4-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_A/subnetworks/SUBNET_A",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil4forwarding-rule-b",
"IPAddress": "10.1.3.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetTcpProxies/l4-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_B/subnetworks/SUBNET_B",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}

Para crear la regla de reenvío, haz una solicitud POST al método globalForwardingRules.insert y sustituye PROJECT_ID por el ID de tu proyecto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil4forwarding-rule-a",
"IPAddress": "10.1.2.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetTcpProxies/l4-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_A/subnetworks/SUBNET_A",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/forwardingRules

{
"name": "gil4forwarding-rule-b",
"IPAddress": "10.1.3.99",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/global/targetTcpProxies/l4-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/REGION_B/subnetworks/SUBNET_B",
"network": "projects/PROJECT_ID/global/networks/NETWORK",
"networkTier": "PREMIUM"
}

Probar el balanceador de carga

Crear una instancia de máquina virtual para probar la conectividad

  1. Crea una VM cliente en las regiones REGION_B y REGION_A:

    gcloud compute instances create l4-ilb-client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=NETWORK \
        --subnet=SUBNET_A \
        --zone=ZONE_A \
        --tags=allow-ssh
    
    gcloud compute instances create l4-ilb-client-b \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=NETWORK \
        --subnet=SUBNET_B \
        --zone=ZONE_B \
        --tags=allow-ssh
    
  2. Usa SSH para conectarte a cada instancia de cliente.

    gcloud compute ssh l4-ilb-client-a --zone=ZONE_A
    
    gcloud compute ssh l4-ilb-client-b --zone=ZONE_B
    
  3. Verificar que la dirección IP está sirviendo su nombre de host

    • Verifica que la VM cliente pueda acceder a ambas direcciones IP. El comando debería completarse correctamente y devolver el nombre de la VM backend que ha atendido la solicitud:

      curl 10.1.2.99
      
      curl 10.1.3.99
      

Prueba de conmutación por error

  1. Verifica la conmutación por error a las back-ends de la región REGION_A cuando las back-ends de la región REGION_B no estén en buen estado o no se pueda acceder a ellas. Para simular una conmutación por error, elimina todos los backends de REGION_B:

    gcloud compute backend-services remove-backend gl4-gilb-backend-service \
      --instance-group=gl4-ilb-migb \
      --instance-group-zone=ZONE_B \
      --global
    
  2. Conéctate mediante SSH a una VM cliente de REGION_B.

    gcloud compute ssh l4-ilb-client-b \
       --zone=ZONE_B
    
  3. Envía solicitudes a la dirección IP balanceada de carga de la región REGION_B. El resultado del comando muestra las respuestas de las VMs backend en REGION_A:

    {
    RESULTS=
    for i in {1..100}
    do
      RESULTS="$RESULTS:$(curl 10.1.3.99)"
    done
    echo "***"
    echo "*** Results of load-balancing to 10.1.3.99: "
    echo "***"
    echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
    echo
    }
    

Opciones de configuración adicionales

En esta sección se amplía el ejemplo de configuración para ofrecer opciones de configuración alternativas y adicionales. Todas las tareas son opcionales. Puedes realizarlas en el orden que prefieras.

Protocolo PROXY para conservar la información de conexión del cliente

El balanceador de carga de red de proxy interno finaliza las conexiones TCP del cliente y crea nuevas conexiones con las instancias de VM. De forma predeterminada, la información de la IP y el puerto del cliente original no se conserva.

Para conservar y enviar la información de conexión original a tus instancias, habilita el protocolo PROXY (versión 1). Este protocolo envía un encabezado adicional que contiene la dirección IP de origen, la dirección IP de destino y los números de puerto a la instancia como parte de la solicitud.

Asegúrate de que las instancias de backend del balanceador de carga de red de proxy interno ejecuten servidores HTTP o HTTPS que admitan encabezados del protocolo PROXY. Si los servidores HTTP o HTTPS no están configurados para admitir encabezados del protocolo PROXY, las instancias de backend devuelven respuestas vacías. Por ejemplo, el protocolo PROXY no funciona con el software del servidor HTTP Apache. Puedes usar otro software de servidor web, como Nginx.

Si configuras el protocolo PROXY para el tráfico de usuarios, también debes hacerlo para las comprobaciones de estado. Si compruebas el estado y sirves contenido en el mismo puerto, define el --proxy-header de la comprobación del estado para que coincida con la configuración del balanceador de carga.

El encabezado del protocolo PROXY suele ser una sola línea de texto legible por el usuario con el siguiente formato:

PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n

A continuación, se muestra un ejemplo del protocolo PROXY:

PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n

En el ejemplo anterior, la IP del cliente es 192.0.2.1, la IP de balanceo de carga es 198.51.100.1, el puerto del cliente es 15221 y el puerto de destino es 110.

En los casos en los que no se conoce la IP del cliente, el balanceador de carga genera una cabecera del protocolo PROXY con el siguiente formato:

PROXY UNKNOWN\r\n

Actualizar el encabezado del protocolo PROXY de un proxy TCP de destino

La configuración de ejemplo del balanceador de carga de esta página muestra cómo habilitar el encabezado del protocolo PROXY al crear el balanceador de carga de red de proxy interno. Sigue estos pasos para cambiar el encabezado del protocolo PROXY de un proxy TCP de destino.

Consola

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

    Ir a Balanceo de carga

  2. Haz clic en Editar en el balanceador de carga.

  3. Haz clic en Configuración de frontend.

  4. Cambia el valor del campo Protocolo de proxy a Activado.

  5. Haz clic en Update (Actualizar) para guardar los cambios.

gcloud

En el siguiente comando, edita el campo --proxy-header y asigna el valor NONE o PROXY_V1, según lo que necesites.

gcloud compute target-ssl-proxies update int-tcp-target-proxy \
    --proxy-header=[NONE | PROXY_V1]

Usar la misma dirección IP en varias reglas de reenvío internas

Para que varias reglas de reenvío internas compartan la misma dirección IP interna, debe reservar la dirección IP y definir su marca --purpose en SHARED_LOADBALANCER_VIP.

gcloud

gcloud compute addresses create SHARED_IP_ADDRESS_NAME \
    --region=REGION \
    --subnet=SUBNET_NAME \
    --purpose=SHARED_LOADBALANCER_VIP

Habilitar la afinidad de sesión

La configuración de ejemplo crea un servicio de backend sin afinidad de sesión.

En estos procedimientos se muestra cómo actualizar un servicio de backend de un balanceador de carga de ejemplo para que utilice la afinidad de IP de cliente o la afinidad de cookies generada.

Cuando la afinidad de IP de cliente está habilitada, el balanceador de carga dirige las solicitudes de un cliente concreto a la misma VM de backend en función de un hash creado a partir de la dirección IP del cliente y la dirección IP del balanceador de carga (la dirección IP interna de una regla de reenvío interna).

Consola

Para habilitar la afinidad de sesión de IP de cliente, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Balanceo de carga.
    Ve a Balanceo de carga.
  2. Haz clic en Back-ends.
  3. Haz clic en el nombre del servicio de backend que has creado para este ejemplo y, a continuación, en Editar.
  4. En la página Detalles del servicio backend, haz clic en Configuración avanzada.
  5. En Afinidad de sesión, seleccione IP de cliente en el menú.
  6. Haz clic en Actualizar.

gcloud

Usa el siguiente comando de gcloud para actualizar el servicio de backend BACKEND_SERVICE y especificar la afinidad de sesión de la IP del cliente:

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --session-affinity=CLIENT_IP

Habilitar la purga de conexión

Puedes habilitar el drenaje de conexiones en los servicios de backend para minimizar las interrupciones para los usuarios cuando se termina, se elimina manualmente o se elimina mediante un escalador automático una instancia que está sirviendo tráfico. Para obtener más información sobre la purga de conexiones, consulta la documentación sobre cómo habilitar la purga de conexiones.

Siguientes pasos