Configurar la conmutación por error de los balanceadores de carga de red de paso a través externos

En esta guía se usa un ejemplo para mostrar cómo configurar la conmutación por error de un balanceador de carga de red de paso a través externo con un servicio de backend. Antes de seguir esta guía, familiarízate con lo siguiente:

Permisos

Para seguir esta guía, debes crear instancias y modificar una red en un proyecto. Debes tener el rol de propietario o editor del proyecto, o bien tener todos los roles de gestión de identidades y accesos de Compute Engine siguientes:

Tarea Rol obligatorio
Crear componentes de balanceador de carga Administrador de red
Añadir y eliminar reglas de cortafuegos Administrador de seguridad
Crear instancias Administrador de instancias de Compute

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

Configuración

En esta guía se explica cómo configurar y probar un balanceador de carga de red de paso a través externo que usa la conmutación por error. En los pasos de esta sección se describe cómo configurar lo siguiente:

  1. VMs de backend:
    • Un backend principal en un grupo de instancias sin gestionar de la zona us-west1-a
    • Un backend de conmutación por error en un grupo de instancias sin gestionar de la zona us-west1-c
  2. Reglas de cortafuegos que permiten las conexiones entrantes a las VMs de backend
  3. Una máquina virtual de cliente para probar las conexiones y observar el comportamiento de la conmutación por error
  4. Los siguientes componentes del balanceador de carga de red de paso a través externo:
    • Una comprobación del estado del servicio de backend
    • Un servicio de backend en la región us-west1 para gestionar la distribución de conexiones entre las VMs de backend
    • Una regla de reenvío y una dirección IP para el frontend del balanceador de carga

La arquitectura de este ejemplo es la siguiente:

Conmutación por error con un balanceador de carga de red de paso a través externo.
Conmutación por error con un balanceador de carga de red de paso a través externo (haz clic en la imagen para ampliarla).

Crear VMs y grupos de instancias de backend

En este paso, crearás las VMs de backend y los grupos de instancias sin gestionar:

  • El grupo de instancias ig-a de us-west1-a es un backend principal con dos VMs:
    • vm-a1
    • vm-a2
  • El grupo de instancias ig-c de us-west1-c es un backend de conmutación por error con dos VMs:
    • vm-c1
    • vm-c2

Los back-ends principal y de conmutación por error se colocan en zonas independientes para que las instrucciones sean más claras y para gestionar la conmutación por error en caso de que una de las zonas deje de funcionar.

Cada VM principal y de copia de seguridad está configurada para ejecutar un servidor web Apache en el puerto 80 de TCP. De forma predeterminada, Apache está configurado para enlazarse a cualquier dirección IP. Los balanceadores de carga de red entregan paquetes conservando la IP de destino.

Asegúrate de que el software del servidor que se ejecuta en tus VMs primaria y de copia de seguridad esté escuchando en la dirección IP de la regla de reenvío del balanceador de carga. La dirección IP de destino de un paquete que un balanceador de carga de red pasarela externo entrega a una VM de backend es la dirección IP de la regla de reenvío.

Para simplificar las instrucciones, todas las máquinas virtuales principales y de copia de seguridad ejecutan Debian GNU/Linux 9.

Consola

Crear VMs de backend

  1. En la consola de Google Cloud , ve a la página Instancias de VM. Ir a instancias de VM
  2. Repite los pasos siguientes para crear cuatro VMs con las siguientes combinaciones de nombre y zona.
    • Nombre: vm-a1, zona: us-west1-a
    • Nombre: vm-a2, zona: us-west1-a
    • Nombre: vm-c1, zona: us-west1-c
    • Nombre: vm-c2, zona: us-west1-c
  3. Haz clic en Crear instancia.
  4. Asigna el Nombre como se indica en el paso 2.
  5. En Región, elige us-west1 y, en Zona, selecciona la opción que se indica en el paso 2.
  6. En la sección Disco de arranque, comprueba que la imagen seleccionada sea Debian GNU/Linux 12 (bookworm). Haz clic en Elegir para cambiar la imagen si es necesario.
  7. Haz clic en Advanced options (Opciones avanzadas).
  8. Haz clic en Redes y configura el siguiente campo:
    1. En Etiquetas de red, introduzca network-lb.
  9. Haz clic en Gestión. Introduce la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio. El contenido de la secuencia de comandos es idéntico en las cuatro VMs:

    #! /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
    
  10. Haz clic en Crear.

Crear grupos de instancias

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

    Ir a Grupos de instancias

  2. Repite los pasos siguientes para crear dos grupos de instancias no gestionados, cada uno con dos VMs, usando estas combinaciones.

    • Grupo de instancias: ig-a, zona: us-west1-a, VMs: vm-a1 y vm-a2
    • Grupo de instancias: ig-c, zona: us-west1-c, VMs: vm-c1 y vm-c2
  3. Haz clic en Crear grupo de instancias.

  4. Haga clic en Nuevo grupo de instancias sin gestionar.

  5. Asigna el Nombre como se indica en el paso 2.

  6. En la sección Ubicación, elija us-west1 en Región y, a continuación, seleccione una Zona como se indica en el paso 2.

  7. En Red, escribe default.

  8. En la sección Instancias de VM, añade las VMs como se indica en el paso 2.

  9. Haz clic en Crear.

gcloud

  1. Crea cuatro VMs ejecutando el siguiente comando cuatro veces y usando estas cuatro combinaciones para VM-NAME y ZONE. El contenido de la secuencia de comandos es idéntico en las cuatro VMs.

    • VM-NAME de vm-a1 y ZONE de us-west1-a
    • VM-NAME de vm-a2 y ZONE de us-west1-a
    • VM-NAME de vm-c1 y ZONE de us-west1-c
    • VM-NAME de vm-c2 y ZONE de us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --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 los dos grupos de instancias sin gestionar en cada zona:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone us-west1-c
    
  3. Añade las VMs a los grupos de instancias correspondientes:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone us-west1-a \
        --instances vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone us-west1-c \
        --instances vm-c1,vm-c2
    

Configurar reglas de cortafuegos

Crea una regla de cortafuegos que permita que el tráfico externo llegue a las instancias de backend.

Consola

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

    Ir a Políticas de cortafuegos

  2. Haga clic en Crear regla de cortafuegos para crear la regla que permita el tráfico de cualquier origen. Usa los siguientes valores:

    1. Nombre: allow-network-lb.
    2. Red:default
    3. Prioridad: 1000
    4. Dirección del tráfico: entrada
    5. Acción tras coincidencia: permitir.
    6. Destinos: etiquetas de destino especificadas
    7. Etiquetas de destino: network-lb
    8. Filtro de origen: Intervalos de IPv4
    9. Intervalos de IPv4 de origen: 0.0.0.0/0, que permite el tráfico de cualquier origen. De esta forma, tanto el tráfico externo como las sondas de comprobación del estado pueden llegar a las instancias de backend.
    10. Protocolos y puertos: elige Protocolos y puertos especificados. Selecciona la casilla TCP e introduce 80.
  3. Haz clic en Crear.

  4. Vuelve a hacer clic en Crear regla de cortafuegos para crear la regla que permita las conexiones SSH entrantes a las instancias. Usa los siguientes valores:

    1. Nombre: allow-ssh
    2. Red: default
    3. Prioridad: 1000
    4. Dirección del tráfico: entrada
    5. Acción tras coincidencia: permitir
    6. Destinos: etiquetas de destino especificadas
    7. Etiquetas de destino: network-lb
    8. Filtro de origen: Intervalos de IPv4
    9. Intervalos de IPv4 de origen: 0.0.0.0/0
    10. Protocolos y puertos: elige Protocolos y puertos especificados. Selecciona la casilla TCP e introduce 22.
  5. Haz clic en Crear.

gcloud

gcloud compute firewall-rules create allow-network-lb \
    --target-tags network-lb \
    --allow tcp:80
gcloud compute firewall-rules create allow-ssh \
    --target-tags network-lb \
    --allow tcp:22

Configurar componentes de balanceadores de carga

En estos pasos se configuran los siguientes componentes del balanceador de carga de red de paso a través externo:

  • Comprobación del estado: en este ejemplo se usa una comprobación del estado de HTTP que simplemente comprueba si hay una respuesta HTTP 200 (Correcto).

  • Servicio de backend: como el ejemplo envía tráfico HTTP a través del balanceador de carga, la configuración especifica TCP, no UDP. Para ilustrar la conmutación por error, este servicio de backend tiene una proporción de conmutación por error de 0.75.

  • Regla de reenvío: en este ejemplo se crea una sola regla de reenvío.

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 pasarela y haz clic en Siguiente.
  5. En Público o interno, selecciona Público (externo) y haz clic en Siguiente.
  6. Haz clic en Configurar.

Configuración de backend

  1. En la página Create external passthrough Network Load Balancer (Crear balanceador de carga de red de paso a través externo), introduzca un nombre de tcp-network-lb para el nuevo balanceador de carga.
  2. Haz clic en Configuración de backend. Aparece el Nombre del balanceador de carga que has introducido anteriormente, pero no se puede modificar.
  3. Haz clic en Configuración de backend y haz los siguientes cambios:
    1. En Región, selecciona us-west1.
    2. En Backends (Back-ends), usa el menú desplegable Grupo de instancias para seleccionar ig-a. Por último, haz clic en Listo.
    3. Haz clic en Añadir backend y repite este paso para añadir ig-c. Selecciona la casilla Usar este grupo de instancias como grupo de conmutaciones por error alternativo.
    4. En Comprobación del estado, elige Crear otra comprobación del estado o Crear otra comprobación del estado e introduce la siguiente información:
      • Nombre: hc-http-80
      • Protocolo: TCP
      • Puerto: 80
    5. Haz clic en Guardar y continuar.
    6. Haz clic en Configuraciones avanzadas.
    7. En Índice de conmutación por error, introduce 0.75.
    8. Comprueba que haya una marca de verificación azul junto a Configuración del backend antes de continuar.

Configuración de frontend

  1. Haz clic en Configuración de frontend.
  2. Asigne un Nombre de network-lb-forwarding-rule.
  3. En IP, haz clic en el menú desplegable y selecciona Crear dirección IP.
    1. En la pantalla Reservar una dirección IP estática nueva, asigna un nombre a network-lb-ip.
    2. Haz clic en Reservar.
  4. Elige Único e introduce 80 en el campo Número de puerto.
  5. Haz clic en el botón Hecho.

    Un círculo azul con una marca de verificación a la izquierda de Configuración del frontend indica que la configuración se ha realizado correctamente.

Revisar la configuración

  1. Haz clic en el botón Revisar y finalizar para comprobar todos los ajustes de configuración del balanceador de carga.
  2. Si los ajustes son correctos, haz clic en Crear. El balanceador de carga tardará unos minutos en crearse.

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

gcloud

  1. Crea una dirección IP externa estática para tu balanceador de carga.

    gcloud compute addresses create network-lb-ip \
        --region us-west1
    
  2. Crea una comprobación del estado de HTTP para probar la conectividad TCP a las VMs en el puerto 80.

    gcloud compute health-checks create http hc-http-80 \
        --region us-west1 \
        --port 80
    
  3. Crea el servicio de backend para el tráfico HTTP:

    gcloud compute backend-services create network-lb-backend-service \
        --protocol tcp \
        --region us-west1 \
        --health-checks hc-http-80 \
        --health-checks-region us-west1 \
        --failover-ratio 0.75
    
  4. Añade el backend principal al servicio de backend:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-a \
        --instance-group-zone us-west1-a
    
  5. Añade el backend de failover al servicio backend:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-c \
        --instance-group-zone us-west1-c \
        --failover
    
  6. Crea una regla de reenvío para el servicio de backend. Usa la dirección IP reservada en el paso 1 como dirección IP externa estática del balanceador de carga.

    gcloud compute forwarding-rules create network-lb-forwarding-rule \
        --region us-west1 \
        --load-balancing-scheme external \
        --address network-lb-ip\
        --ports 80 \
        --backend-service network-lb-backend-service
    

Pruebas

Estas pruebas muestran cómo validar la configuración del balanceador de carga y cómo conocer su comportamiento esperado.

Enviar tráfico al balanceador de carga

Este procedimiento envía tráfico externo al balanceador de carga. Seguirás este procedimiento para completar las demás pruebas.

  1. Conéctate a la instancia de VM cliente.

    gcloud compute forwarding-rules describe network-lb-forwarding-rule \
        --region us-west1
    
  2. Haz una solicitud web al balanceador de carga mediante curl para ponerte en contacto con su dirección IP.

    curl http://IP_ADDRESS
    
  3. Fíjate en el texto devuelto por el comando curl. El nombre de la VM backend que genera la respuesta se muestra en ese texto. Por ejemplo: Page served from: vm-a1

Prueba del estado inicial

Una vez que hayas configurado el balanceador de carga de ejemplo, las cuatro VMs de backend deberían estar en buen estado:

  • Las dos máquinas virtuales principales, vm-a1 y vm-a2
  • las dos VMs de copia de seguridad, vm-c1 y vm-c2

Sigue el procedimiento de prueba para enviar tráfico al balanceador de carga. Repite el segundo paso varias veces. Lo habitual es que el tráfico se sirva desde las dos VMs principales, vm-a1 y vm-a2, porque ambas están en buen estado. Deberías ver que cada VM principal sirve una respuesta aproximadamente la mitad del tiempo porque no se ha configurado ninguna afinidad de sesión para este balanceador de carga.

Prueba de conmutación por error

Esta prueba simula el fallo de vm-a1 para que puedas observar el comportamiento de la conmutación por error.

  1. Conéctate a la VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Detén el servidor web Apache. Después de diez segundos, Google Cloudconsidera que esta VM no está en buen estado. (La comprobación del estado hc-http-80 que has creado en la configuración usa el intervalo de comprobación predeterminado de cinco segundos y el umbral de mal estado de dos sondeos fallidos consecutivos).

    sudo apachectl stop
    
  3. Sigue el procedimiento de prueba para enviar tráfico al balanceador de carga. Repite el segundo paso varias veces. Lo normal es que el tráfico ahora se publique en las dos VMs de copia de seguridad, vm-c1 y vm-c2. Como solo hay una VM principal en buen estado (vm-a2), la proporción de VMs principales en buen estado con respecto al total de VMs principales es 0.5. Este número es inferior al umbral de conmutación por error de 0.75, por lo queGoogle Cloud ha vuelto a configurar el grupo activo del balanceador de carga para que use las VMs de copia de seguridad. Deberías ver que cada VM de copia de seguridad responde aproximadamente la mitad del tiempo siempre que no se haya configurado ninguna afinidad de sesión para este balanceador de carga.

Prueba de conmutación por error

Esta prueba simula una conmutación por recuperación reiniciando el servidor Apache en vm-a1.

  1. Conéctate a la VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Inicia el servidor web Apache y espera 10 segundos.

    sudo apachectl start
    
  3. Sigue el procedimiento de prueba del cliente. Repite el segundo paso varias veces. Lo normal es que el tráfico se publique en las dos máquinas virtuales principales, vm-a1 y vm-a2. Como ambas VMs principales están en buen estado, la proporción de VMs principales en buen estado con respecto al total de VMs principales es 1.0, que es superior al umbral de conmutación por error de 0.75, por lo que Google Cloud ha configurado el grupo activo para que vuelva a usar las VMs principales.

Añadir más VMs de backend

En esta sección se amplía la configuración de ejemplo añadiendo más VMs principales y de copia de seguridad al balanceador de carga. Para ello, crea dos grupos de instancias de backend más para demostrar que puedes distribuir las VMs principales y de copia de seguridad entre varias zonas de la misma región:

  • Un tercer grupo de instancias, ig-d en us-west1-c, actúa como backend principal con dos VMs:
    • vm-d1
    • vm-d2
  • Un cuarto grupo de instancias, ig-b en us-west1-a, actúa como backend de conmutación por error con dos VMs:
    • vm-b1
    • vm-b2

La arquitectura modificada de este ejemplo es la siguiente:

Conmutación por error de balanceadores de carga de red de paso a través externos multizona.
Conmutación por error del balanceador de carga de red de paso a través externo multizona (haz clic para ampliar).

Crear más VMs y grupos de instancias

Sigue estos pasos para crear las VMs principales y de copia de seguridad adicionales, así como los grupos de instancias no gestionados correspondientes.

Consola

Crear VMs de backend

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a instancias de VM

  2. Repite los pasos siguientes para crear cuatro VMs con las siguientes combinaciones de nombre y zona.

    • Nombre: vm-b1, zona: us-west1-a
    • Nombre: vm-b2, zona: us-west1-a
    • Nombre: vm-d1, zona: us-west1-c
    • Nombre: vm-d2, zona: us-west1-c
  3. Haz clic en Crear instancia.

  4. Asigna el Nombre como se indica en el paso 2.

  5. En Región, elige us-west1 y, en Zona, selecciona la opción que se indica en el paso 2.

  6. En la sección Disco de arranque, asegúrate de que la imagen seleccionada sea Debian GNU/Linux 9 Stretch. Haz clic en Elegir para cambiar la imagen si es necesario.

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

  8. Haga clic en Redes y configure el siguiente campo:

    1. En Etiquetas de red, introduzca network-lb.
  9. Haz clic en Gestión. Introduce la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio. El contenido de la secuencia de comandos es idéntico en las cuatro VMs:

    #! /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
    
  10. Haz clic en Crear.

Crear grupos de instancias

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

    Ir a Grupos de instancias

  2. Repite los pasos siguientes para crear dos grupos de instancias no gestionados, cada uno con dos VMs, usando estas combinaciones.

    • Grupo de instancias: ig-b, zona: us-west1-a, VMs: vm-b1 y vm-b2
    • Grupo de instancias: ig-d, zona: us-west1-c, VMs: vm-d1 y vm-d2
  3. Haz clic en Crear grupo de instancias.

  4. Haga clic en Nuevo grupo de instancias sin gestionar.

  5. Asigna el Nombre como se indica en el paso 2.

  6. En la sección Ubicación, elija us-west1 en Región y, a continuación, seleccione una Zona como se indica en el paso 2.

  7. En Red, escribe default.

  8. En la sección Instancias de VM, añade las VMs como se indica en el paso 2.

  9. Haz clic en Crear.

gcloud

  1. Crea cuatro VMs ejecutando el siguiente comando cuatro veces y usando estas cuatro combinaciones para VM-NAME y ZONE. El contenido de la secuencia de comandos es idéntico en las cuatro VMs.

    • VM-NAME de vm-b1 y ZONE de us-west1-a
    • VM-NAME de vm-b2 y ZONE de us-west1-a
    • VM-NAME de vm-d1 y ZONE de us-west1-c
    • VM-NAME de vm-d2 y ZONE de us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --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 los dos grupos de instancias sin gestionar en cada zona:

    gcloud compute instance-groups unmanaged create ig-b \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-d \
        --zone us-west1-c
    
  3. Añade las VMs a los grupos de instancias correspondientes:

    gcloud compute instance-groups unmanaged add-instances ig-b \
        --zone us-west1-a \
        --instances vm-b1,vm-b2
    gcloud compute instance-groups unmanaged add-instances ig-d \
        --zone us-west1-c \
        --instances vm-d1,vm-d2
    

Añadir un backend principal

Puedes usar este procedimiento como plantilla para añadir un grupo de instancias no gestionado al servicio de backend de un balanceador de carga de red de pases externo como backend principal. En la configuración de ejemplo, este procedimiento muestra cómo añadir el grupo de instancias ig-d como backend principal al balanceador de carga network-lb.

Consola

Edita la configuración del balanceador de carga para añadir un backend principal.

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

    Ir a Balanceo de carga

  2. Haz clic en el balanceador de carga que quieras modificar.

  3. Haz clic en Editar.

  4. Haz clic en Configuración de backend y haz los siguientes cambios:

    1. En Backends, haz clic en Add Backend (Añadir backend).
    2. En el menú desplegable, selecciona el grupo de instancias que quieras añadir como backend principal. En este caso, ig-d.
    3. Haz clic en Listo.
    4. Comprueba que haya una marca de verificación azul junto a Configuración del backend antes de continuar.

Revisar la configuración

  1. Haz clic en el botón Revisar y finalizar y confirma que el nuevo backend principal se muestra en Backend.
  2. Si los ajustes son correctos, haz clic en Crear. El balanceador de carga tardará unos minutos en crearse.

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

gcloud

Usa el siguiente comando gcloud para añadir un backend principal al servicio de backend de un balanceador de carga de red de paso a través externo.

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION

donde:

  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de carga. En este ejemplo, usa network-lb-backend-service.
  • INSTANCE_GROUP_NAME es el nombre del grupo de instancias que se va a añadir como backend principal. En este ejemplo, usa ig-d.
  • INSTANCE_GROUP_ZONE es la zona en la que se define el grupo de instancias. En este ejemplo, usa us-west1-c.
  • REGION es la región del balanceador de carga. En este ejemplo, usa us-west1.

Añadir un backend de failover

Puedes usar este procedimiento como plantilla para añadir un grupo de instancias no gestionado al servicio de backend de un balanceador de carga de red de transferencia externo como backend de conmutación por error. En la configuración de ejemplo, este procedimiento muestra cómo añadir el grupo de instancias ig-b como backend de conmutación por error al balanceador de carga network-lb.

Consola

Edita la configuración del balanceador de carga para añadir un backend principal.

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

    Ir a Balanceo de carga

  2. Haz clic en el balanceador de carga que quieras modificar.

  3. Haz clic en Editar.

  4. Haz clic en Configuración de backend y haz los siguientes cambios:

    1. En Backends, haz clic en Add Backend (Añadir backend).
    2. En el menú desplegable, selecciona el grupo de instancias que quieras añadir como backend de conmutación por error. En este caso, ig-b.
    3. Selecciona la casilla Usar este grupo de instancias como grupo de conmutaciones por error alternativo.
    4. Haz clic en Listo.
    5. Comprueba que haya una marca de verificación azul junto a Configuración del backend antes de continuar.

Revisar la configuración

  1. Haz clic en el botón Revisar y finalizar y confirma que el nuevo backend principal se muestra en Backend.
  2. Si los ajustes son correctos, haz clic en Crear. El balanceador de carga tardará unos minutos en crearse.

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

gcloud

Usa el siguiente comando gcloud para añadir un backend de failover al servicio de backend de un balanceador de carga de red de paso a través externo.

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

donde:

  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de carga. En este ejemplo, usa network-lb-backend-service.
  • INSTANCE_GROUP_NAME es el nombre del grupo de instancias que se va a añadir como backend de failover. En este ejemplo, usa ig-b.
  • INSTANCE_GROUP_ZONE es la zona en la que se define el grupo de instancias. En este ejemplo, usa us-west1-a.
  • REGION es la región del balanceador de carga. En este ejemplo, usa us-west1.

Convertir un backend principal o de failover

Puedes convertir un backend principal en un backend de failover o viceversa sin tener que quitar el grupo de instancias del servicio de backend del balanceador de carga de red de pases externo.

gcloud

Usa el siguiente comando gcloud para convertir un backend principal en un backend de conmutación por error:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

Usa el siguiente comando gcloud para convertir un backend de conmutación por error en un backend principal:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --no-failover

donde:

  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de carga.
  • INSTANCE_GROUP_NAME es el nombre del grupo de instancias.
  • INSTANCE_GROUP_ZONE es la zona en la que se define el grupo de instancias.
  • REGION es la región del balanceador de carga.

Configurar políticas de conmutación por error

En esta sección se describe cómo gestionar una política de conmutación por error para el servicio backend de un balanceador de carga de red pasante externo. Una política de conmutación por error consta de lo siguiente:

  • Índice de conmutación por error
  • Eliminar el tráfico cuando todas las VMs de backend estén en mal estado
  • Vaciado de conexiones al producirse una conmutación por error

Para obtener más información sobre los parámetros de una política de conmutación por error, consulta los siguientes artículos:

Definir una política de conmutación por error

En las siguientes instrucciones se describe cómo definir la política de conmutación por error de un balanceador de carga de red de pases externo.

gcloud

Para definir una política de conmutación por error con gcloud CLI, actualiza el servicio de backend del balanceador de carga:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
   --region REGION \
   --failover-ratio FAILOVER_RATIO \
   --connection-drain-on-failover \
   --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \
   --drop-traffic-if-unhealthy

donde:

  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de carga. En este ejemplo, usa network-lb.
  • REGION es la región del balanceador de carga. En este ejemplo, usa us-west1.
  • FAILOVER_RATIO es el índice de conmutación por error. Los valores posibles están comprendidos entre 0.0 y 1.0, ambos incluidos. En este ejemplo, usa 0.75.
  • CONNECTION_DRAINING_TIMEOUT permite que las conexiones TCP persistan, incluso en VMs que ya no están en el pool activo, durante el tiempo de espera de la desviación de conexiones.

Ver una política de conmutación por error

En las siguientes instrucciones se describe cómo ver la política de conmutación por error de un balanceador de carga de red de paso a través externo.

gcloud

Para enumerar los ajustes de la política de conmutación por error con gcloud CLI, usa el siguiente comando. Los ajustes indefinidos de una política de conmutación por error usan los valores predeterminados de la política de conmutación por error.

gcloud compute backend-services describe BACKEND_SERVICE_NAME \
   --region REGION \
   --format="get(failoverPolicy)"

donde:

  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de carga. En este ejemplo, usa network-lb-backend-service.
  • REGION es la región del balanceador de carga. En este ejemplo, usa us-west1.

Siguientes pasos