Configura la conmutación por error para balanceadores de cargas de red de transferencia externos

En esta guía, se usa un ejemplo para enseñarte a configurar la conmutación por error en un balanceador de cargas de red de transferencia externo con un servicio de backend. Antes de seguir con 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 ser propietario o editor de un proyecto o tener todas las siguientes funciones de IAM de Compute Engine:

Tarea Función requerida
Crea componentes del balanceador de cargas Administrador de redes
Agrega y quita reglas de firewall Administrador de seguridad
Crea instancias Administrador de instancias de Compute

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

Crear

En esta guía, se muestra cómo configurar y probar un balanceador de cargas de red de transferencia externo que usa la conmutación por error. En los pasos de esta sección, se describe cómo configurar los siguientes elementos:

  1. VM de backend:
    • Un backend principal en un grupo de instancias no administrado en la zona us-west1-a
    • Un backend de conmutación por error en un grupo de instancias no administrado en la zona us-west1-c
  2. Reglas de firewall que permiten conexiones entrantes a VM de backend
  3. Una VM cliente para probar conexiones y observar el comportamiento de conmutación por error
  4. Los siguientes componentes del balanceador de cargas de red de transferencia externo:
    • Una verificación de estado del servicio de backend
    • Un servicio de backend en la región us-west1 para administrar la distribución de las conexiones entre las VM de backend
    • Una regla de reenvío y una dirección IP para el frontend del balanceador de cargas

Así se ve la arquitectura de este ejemplo:

Conmutación por error con un balanceador de cargas de red de paso externo.
Conmutación por error con un balanceador de cargas de red de paso externo (haz clic para ampliar)
.

Crea grupos de instancias y VM de backend

En este paso, crearás las VM de backend y los grupos de instancias no administrados:

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

Los backends principales y de conmutación por error se colocan en zonas diferentes para favorecer la claridad de instrucción y manejar la conmutación por error en caso de que una zona se desconecte.

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

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

Para simplificar las instrucciones, todas las VMs principales y de copia de seguridad ejecutan Debian GNU/Linux 9.

Console

Crea VM 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 siguientes pasos para crear cuatro VM 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. En Nombre establece lo que se indica en el paso 2.
  5. En Región, elige us-west1 y selecciona una Zona como 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 10 (buster). Haz clic en Elegir para cambiar la imagen si es necesario.
  7. Haga clic en Opciones avanzadas.
  8. Haz clic en Herramientas de redes y configura el siguiente campo:
    1. En Etiquetas de red, ingresa network-lb.
  9. Haz clic en Administración. Ingresa la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio. El contenido de secuencia de comandos es idéntico para las cuatro VM:

    #! /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.

Crea grupos de instancias

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

    Ir a Grupos de instancias

  2. Repite estos pasos para crear dos grupos de instancias no administrados, cada uno con dos VM, mediante estas combinaciones.

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

  4. Haz clic en Crear un nuevo grupo de instancias no administrado.

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

  6. En la sección Ubicación, elige us-west1 para Región y, luego, elige una opción en Zona, como se indica en el paso 2.

  7. En Red, ingresa default.

  8. En la sección Instancias de VM, agrega las VM como se indica en el paso 2.

  9. Haz clic en Crear.

gcloud

  1. A fin de crear cuatro VM, ejecuta el siguiente comando cuatro veces, con estas cuatro combinaciones para VM-NAME y ZONE. El contenido de la secuencia de comandos es idéntico para las cuatro VM.

    • 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-10 \
        --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 no administrados 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. Agrega las VM a los grupos de instancias adecuados:

    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
    

Configura las reglas de firewall

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

Consola

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

    Ir a Políticas de firewall

  2. Haz clic en Crear regla de firewall a fin de crear la regla para permitir el tráfico desde cualquier fuente. 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 en caso de coincidencia: Permitir
    6. Objetivos: etiquetas de destino especificadas
    7. Etiquetas de destino: network-lb
    8. Filtro de fuente: Rangos de IPv4
    9. Rangos de IPv4 de origen: 0.0.0.0/0, que permiten el tráfico desde cualquier fuente. Esto permite que el tráfico externo y los sondeos de verificaciones de estado lleguen a las instancias de backend.
    10. Protocolos y puertos: Elige Protocolos y puertos especificados. Selecciona la casilla de verificación TCP y, luego, ingresa el puerto 80.
  3. Haz clic en Crear.

  4. Haz clic en Crear regla de firewall de nuevo para crear la regla que permita 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 si hay coincidencia: permitir
    6. Objetivos: etiquetas de destino especificadas
    7. Etiquetas de destino: network-lb
    8. Filtro de fuente: Rangos de IPv4
    9. Rangos de IPv4 de origen: 0.0.0.0/0
    10. Protocolos y puertos: Elige Protocolos y puertos especificados. Selecciona la casilla de verificación TCP y, luego, ingresa el puerto 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

Configura componentes del balanceador de cargas

Con estos pasos, se configuran los siguientes componentes externos del balanceador de cargas de red de transferencia externo:

  • Verificación de estado: En este ejemplo, se usa una verificación de estado HTTP que busca una respuesta HTTP 200 (OK).

  • Servicio de backend: Debido a que el ejemplo transmite tráfico HTTP a través del balanceador de cargas, 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 interno.

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 un Nombre de tcp-network-lb para el balanceador de cargas nuevo.
  2. Haz clic en Configuración de backend. El Nombre del balanceador de cargas que ingresaste antes aparece, pero no puedes modificarlo.
  3. Haz clic en Configuración de backend y realiza los siguientes cambios:
    1. Para la Región, selecciona us-west1.
    2. En Backends, usa el menú desplegable Grupo de instancias para seleccionar ig-a. Haz clic en Listo.
    3. Haz clic en Agregar backend y repite este paso para agregar ig-c. Selecciona la casilla de verificación Usar este grupo de instancias como grupo de conmutación por error para la copia de seguridad.
    4. En Verificación de estado, elige Crear otra verificación de estado o Crear otra verificación de estado, ingresa la siguiente información:
      • Nombre: hc-http-80
      • Protocolo: TCP
      • Puerto: 80
    5. Haz clic en Guardar y continuar.
    6. Haz clic en Configuración avanzada.
    7. En Proporción de conmutación por error, ingresa 0.75.
    8. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Configuración de frontend

  1. Haz clic en Configuración de frontend.
  2. Ingresa 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 de network-lb-ip.
    2. Haz clic en Reservar.
  4. Elige Individual e ingresa 80 en el Número de puerto.
  5. Haz clic en el botón 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 el botón Revisar y finalizar para verificar la configuración del balanceador de cargas.
  2. Si la configuración es correcta, haz clic en Crear. El balanceador de cargas tarda unos cuantos minutos en crearse.

    En la pantalla 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. Crea una dirección IP externa estática para tu balanceador de cargas.

    gcloud compute addresses create network-lb-ip \
        --region us-west1
    
  2. Crea una verificación de estado HTTP nueva para probar la conectividad TCP a las VM en 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. Agrega 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. Agrega el backend de conmutación por error al servicio de 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 la dirección IP externa estática del balanceador de cargas.

    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
    

Prueba

Mediante estas pruebas se muestra cómo validar la configuración del balanceador de cargas y conocer su comportamiento esperado.

Envía tráfico al balanceador de cargas

Este procedimiento envía tráfico externo al balanceador de cargas. Usarás este procedimiento para completar las otras pruebas.

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

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

    curl http://IP_ADDRESS
    
  3. 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-a1.

Realiza una prueba de estado inicial

Después de configurar el balanceador de cargas de ejemplo, las cuatro VM de backend deberían estar en buen estado:

  • las dos VM principales, vm-a1 y vm-a2
  • las dos VM de copia de seguridad, vm-c1 y vm-c2

Sigue el procedimiento de prueba para enviar tráfico al balanceador de cargas. Repite el segundo paso varias veces. El comportamiento esperado es que las dos VM principales entreguen tráfico, vm-a1 y vm-a2, ya que ambas están en buen estado. Cada VM principal debería entregar una respuesta aproximadamente la mitad del tiempo porque no se configuró ninguna afinidad de sesión para este balanceador de cargas.

Prueba de conmutación por error

En esta prueba, se simula la falla de vm-a1 para que puedas observar el comportamiento de 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 Cloud considera que esta VM no está en buen estado. La verificación de estado hc-http-80 que creaste en la configuración usa el intervalo de comprobación predeterminado de cinco segundos y el límite de mal estado de dos sondeos fallidos consecutivos.

    sudo apachectl stop
    
  3. Sigue el procedimiento de prueba para enviar tráfico al balanceador de cargas. Repite el segundo paso varias veces. El comportamiento esperado es que vm-c1 y vm-c2, las dos VM de copia de seguridad, entreguen tráfico. Debido a que solo una VM principal, vm-a2, está en buen estado, la proporción de VM principales en buen estado respecto al total de VM principales es de 0.5. Este número es menor que el límite de conmutación por error de 0.75, por lo que Google Cloud volvió a configurar el grupo activo del balanceador de cargas para usar las VM de copia de seguridad. Deberías ver que cada VM de copia de seguridad entregue una respuesta aproximadamente la mitad del tiempo siempre y cuando no se haya configurado la afinidad de sesión para este balanceador de cargas.

Realiza una prueba de recuperación

En esta prueba, se simula la conmutación por recuperación mediante el reinicio del servidor de 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. El comportamiento esperado es que vm-a1 y vm-a2, las dos VM principales, entreguen tráfico. Con ambas VM principales en buen estado, la proporción de VM principales en buen estado respecto al total de VM principales es de 1.0, más que el límite de conmutación por error de 0.75, por lo que Google Cloud configuró el grupo activo para usar las VM principales otra vez.

Agrega más VM de backend

En esta sección, se amplía la configuración de ejemplo mediante el agregado de más VM principales y de copia de seguridad al balanceador de cargas. Para ello, se crean dos grupos de instancias de backend a fin de demostrar que puedes distribuir VM 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, funciona como backend principal con dos VM:
    • vm-d1
    • vm-d2
  • Un cuarto grupo de instancias, ig-b en us-west1-a, funciona como un backend de conmutación por error con dos VM:
    • vm-b1
    • vm-b2

Así se ve la arquitectura modificada de este ejemplo:

Conmutación por error del balanceador de cargas de red de transferencia externo multizona.
Conmutación por error del balanceador de cargas de red de transferencia externo multizona (haz clic para ampliar)

Crea VM y grupos de instancias adicionales

Sigue estos pasos para crear las VM principales y de copia de seguridad adicionales y sus grupos de instancias no administrados correspondientes.

Console

Crea VM 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 siguientes pasos para crear cuatro VM 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. En Nombre establece lo que se indica en el paso 2.

  5. En Región, elige us-west1 y selecciona una Zona como 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 Opciones avanzadas.

  8. Haz clic en Herramientas de redes y configura el siguiente campo:

    1. En Etiquetas de red, ingresa network-lb.
  9. Haz clic en Administración. Ingresa la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio. El contenido de secuencia de comandos es idéntico para las cuatro VM:

    #! /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.

Crea grupos de instancias

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

    Ir a Grupos de instancias

  2. Repite los siguientes pasos para crear dos grupos de instancias no administrados, cada uno con dos VM, con estas combinaciones.

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

  4. Haz clic en Crear un nuevo grupo de instancias no administrado.

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

  6. En la sección Ubicación, elige us-west1 para Región y, luego, elige una opción en Zona, como se indica en el paso 2.

  7. En Red, ingresa default.

  8. En la sección Instancias de VM, agrega las VM como se indica en el paso 2.

  9. Haz clic en Crear.

gcloud

  1. A fin de crear cuatro VM, ejecuta el siguiente comando cuatro veces, con estas cuatro combinaciones para VM-NAME y ZONE. El contenido de la secuencia de comandos es idéntico para las cuatro VM.

    • 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-10 \
        --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 no administrados 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. Agrega las VM a los grupos de instancias adecuados:

    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
    

Agrega un backend principal

Puedes usar este procedimiento como una plantilla para agregar un grupo de instancias no administrado al servicio de backend de un balanceador de cargas de red de transferencia externo existente como un backend principal. Para la configuración de ejemplo, este procedimiento muestra cómo agregar el grupo de instancias ig-d como backend principal al balanceador de cargas network-lb.

Console

Edita la configuración del balanceador de cargas para agregar un backend principal.

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

    Ir a Balanceo de cargas

  2. Haz clic en el balanceador de cargas que deseas modificar.

  3. Haga clic en Editar.

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

    1. En Backends, haz clic en Agregar backend.
    2. En el menú desplegable, selecciona el grupo de instancias que se agregará como backend principal. En este caso: ig-d.
    3. Haz clic en Listo.
    4. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Revisa la configuración

  1. Haz clic en el botón Revisar y finalizar y confirma que el backend principal nuevo sea visible en Backend.
  2. Si la configuración es correcta, haz clic en Crear. El balanceador de cargas tarda unos cuantos minutos en crearse.

    En la pantalla 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

Usa el siguiente comando de gcloud para agregar un backend principal a un servicio de backend del balanceador de cargas de red de transferencia externo existente.

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 cargas. Para el ejemplo, usa network-lb-backend-service.
  • INSTANCE_GROUP_NAME es el nombre del grupo de instancias que se agregará como backend principal. Para el ejemplo, usa ig-d.
  • INSTANCE_GROUP_ZONE es la zona en la que se define el grupo de instancias. Para el ejemplo, usa us-west1-c.
  • REGION es la región del balanceador de cargas. Para el ejemplo, usa us-west1.

Agrega un backend de conmutación por error

Puedes usar este procedimiento como una plantilla para agregar un grupo de instancias no administrado al servicio de backend de un balanceador de cargas de red de transferencia externo existente como un backend de conmutación por error. Para la configuración de ejemplo, este procedimiento muestra cómo agregar el grupo de instancias ig-b como backend de conmutación por error al balanceador de cargas network-lb.

Console

Edita la configuración del balanceador de cargas para agregar un backend principal.

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

    Ir a Balanceo de cargas

  2. Haz clic en el balanceador de cargas que deseas modificar.

  3. Haga clic en Editar.

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

    1. En Backends, haz clic en Agregar backend.
    2. En el menú desplegable, selecciona el grupo de instancias que se agregará como backend de conmutación por error. En este caso: ig-b.
    3. Selecciona la casilla de verificación Usar este grupo de instancias como un grupo de conmutación por error para la copia de seguridad.
    4. Haz clic en Listo.
    5. Verifica que haya una marca de verificación azul junto a Configuración de backend antes de continuar.

Revisa la configuración

  1. Haz clic en el botón Revisar y finalizar y confirma que el backend principal nuevo sea visible en Backend.
  2. Si la configuración es correcta, haz clic en Crear. El balanceador de cargas tarda unos cuantos minutos en crearse.

    En la pantalla 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

Usa el siguiente comando de gcloud para agregar un backend principal a un servicio de backend del balanceador de cargas de red de transferencia externo existente.

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 cargas. Para el ejemplo, usa network-lb-backend-service.
  • INSTANCE_GROUP_NAME es el nombre del grupo de instancias que se agregará como backend de conmutación por error. Para el ejemplo, usa ig-b.
  • INSTANCE_GROUP_ZONE es la zona en la que se define el grupo de instancias. Para el ejemplo, usa us-west1-a.
  • REGION es la región del balanceador de cargas. Para el ejemplo, usa us-west1.

Convierte un backend primario o de conmutación por error

Puedes convertir un backend principal en uno de conmutación por error, o viceversa, sin quitar el grupo de instancias del servicio de backend del balanceador de cargas de red de transferencia externo.

gcloud

Usa el siguiente comando de gcloud para convertir un backend principal existente 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 de gcloud para convertir un backend de conmutación por error existente 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

En el ejemplo anterior, se ilustra lo siguiente:

  • BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de cargas.
  • 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 cargas.

Configura las políticas de conmutación por error

En esta sección, se describe cómo administrar una política de conmutación por error para un servicio de backend del balanceador de cargas de red de transferencia externo. Una política de conmutación por error consta de las siguientes partes:

  • Proporción de conmutación por error
  • Abandono del tráfico cuando todas las VM de backend están en mal estado
  • Desvío de conexión en conmutación por error

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

Define 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 cargas de red de transferencia externo existente.

gcloud

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

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 cargas. Para el ejemplo, usa network-lb.
  • REGION es la región del balanceador de cargas. Para el ejemplo, usa us-west1.
  • FAILOVER_RATIO es la proporción de conmutación por error. Los valores posibles están entre 0.01.0, incluido. Para el ejemplo, usa 0.75.
  • CONNECTION_DRAINING_TIMEOUT permite que las conexiones TCP se conserven, incluso en las VM que ya no están en el grupo activo, hasta que dure el tiempo de espera de vaciado de conexiones.

Visualiza 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 existente para un balanceador de cargas de red de transferencia externo.

gcloud

Para mostrar la configuración de la política de conmutación por error mediante la CLI de gcloud, usa el siguiente comando. Si no se define la configuración en una política de conmutación por error, se usan los valores de la política de conmutación por error predeterminados.

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

En el ejemplo anterior, se ilustra lo siguiente:

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

¿Qué sigue?