En esta guía se proporcionan instrucciones para migrar un balanceador de carga de red de acceso directo externo de un backend de grupo de destino a un servicio de backend regional.
Si cambias a un servicio de backend regional, podrás aprovechar funciones como las comprobaciones de estado no antiguas (para TCP, SSL, HTTP, HTTPS y HTTP/2), los grupos de instancias gestionados, la purga de conexión y la política de conmutación por error.
Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:
En esta guía se explica cómo migrar el siguiente balanceador de carga de red de paso a través externo basado en un grupo de destino de ejemplo para que use un servicio de backend regional.
El despliegue del balanceador de carga de red de paso a través externo basado en el servicio de backend resultante será similar al siguiente.
En este ejemplo, se da por hecho que tienes un balanceador de carga de red de paso a través externo tradicional basado en grupos de destino con dos instancias en la zona us-central-1a
y dos instancias en la zona us-central-1c
.
Estos son los pasos generales que debes seguir para hacer la transición:
Agrupa las instancias de tu grupo de destino en grupos de instancias.
Los servicios de backend solo funcionan con grupos de instancias gestionados o no gestionados. Aunque no hay límite en el número de instancias que se pueden colocar en un mismo grupo de destino, los grupos de instancias tienen un tamaño máximo. Si tu grupo de destino tiene más del número máximo de instancias, debes dividir sus backends en varios grupos de instancias.
Si tu implementación incluye un grupo de destino de copia de seguridad, crea un grupo de instancias independiente para esas instancias. Este grupo de instancias está configurado como grupo de conmutación por error.
Crea un servicio backend regional.
Si tu implementación incluye un grupo de destino de copia de seguridad, debes especificar una proporción de conmutación por error al crear el servicio de backend. Debe coincidir con la proporción de conmutación por error configurada anteriormente para la implementación del grupo de destino.
Añade al servicio de backend los grupos de instancias que hayas creado anteriormente.
Si tu implementación incluye un grupo de destino de copia de seguridad, marca el grupo de instancias de conmutación por error correspondiente con una marca
--failover
al añadirlo al servicio de backend.Configura una regla de reenvío que apunte al nuevo servicio de backend.
Puedes elegir una de las siguientes opciones:
Actualiza la regla de reenvío para que apunte al servicio de backend (recomendado).
Crea una regla de reenvío que apunte al servicio de backend. Para ello, debes crear una nueva dirección IP para el frontend del balanceador de carga. A continuación, modifica la configuración de DNS para pasar sin problemas de la dirección IP del antiguo balanceador de carga basado en grupos de destino a la nueva dirección IP.
Antes de empezar
Instala Google Cloud CLI. Para obtener una descripción general completa de la herramienta, consulta la guía de la herramienta gcloud. Puedes encontrar comandos relacionados con el balanceo de carga en el grupo de comandos gcloud compute
.
Si no has ejecutado la CLI de Google Cloud anteriormente, ejecuta primero gcloud init
para autenticarte.
En esta guía se da por hecho que estás familiarizado con bash.
Identificar los back-ends y la regla de reenvío que se van a migrar
Para enumerar todos los grupos de destino, ejecuta el siguiente comando en Cloud Shell:
gcloud compute target-pools list
Anota el nombre del grupo de destino desde el que vas a migrar. Más adelante se utilizará TARGET_POOL_NAME para hacer referencia a este nombre.
Para enumerar todas las instancias de VM del grupo de destino TARGET_POOL_NAME, ejecuta el comando en Cloud Shell:
gcloud compute target-pools describe TARGET_POOL_NAME \ --region=us-central1
Anota los nombres de las instancias de VM. Estos nombres se mencionan más adelante como BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 y BACKEND_INSTANCE4.
Para enumerar las reglas de reenvío del balanceador de carga de red de paso a través externo, ejecuta el comando en Cloud Shell:
gcloud compute forwarding-rules list --filter="target: ( TARGET_POOL_NAME )"
Anota el nombre de la regla de reenvío. Más adelante se utilizará FORWARDING_RULE para hacer referencia a este nombre.
Crear los grupos de instancias sin gestionar zonales
Crea un grupo de instancias sin gestionar zonal para cada una de las zonas en las que tengas back-ends. En función de tu configuración, puedes dividir tus instancias en tantos grupos de instancias como necesites. En nuestro ejemplo, solo usamos dos grupos de instancias, uno por zona, y colocamos todas las VMs de backend de una zona determinada en el grupo de instancias asociado.
En este ejemplo, crearemos dos grupos de instancias: uno en la zona uc-central1-a
y otro en la zona us-central1-c
.
Configurar los grupos de instancias
Consola
- En la consola, ve a la página Grupos de instancias. Google Cloud
- Haz clic en Crear grupo de instancias.
- En el panel de la izquierda, selecciona Nuevo grupo de instancias sin gestionar.
- En Nombre, escribe
ig-us-1
. - En Región, selecciona
us-central1
. - En Zona, selecciona
us-central1-a
. - Selecciona Red y Subred en función de dónde se encuentren tus instancias. En este ejemplo, las instancias del grupo de destino ya creado están en la red
default
y en la subred. - Para añadir instancias al grupo de instancias, en la sección Instancias de VM, selecciona las dos instancias BACKEND_INSTANCE1 y BACKEND_INSTANCE2.
- Haz clic en Crear.
Repite estos pasos para crear un segundo grupo de instancias con las siguientes especificaciones:
- Nombre:
ig-us-2
- Región:
us-central1
- Zona:
us-central1-c
Añade las dos instancias BACKEND_INSTANCE3 y BACKEND_INSTANCE4 de la zona
us-central1-c
a este grupo de instancias.- Nombre:
Si tu implementación de balanceador de carga también tiene un grupo de destino de copia de seguridad, repite estos pasos para crear un grupo de instancias de failover independiente para esas instancias.
gcloud
Crea un grupo de instancias sin gestionar en la zona
us-central1-a
con el comandogcloud compute instance-groups unmanaged create
.gcloud compute instance-groups unmanaged create ig-us-1 \ --zone us-central1-a
Crea un segundo grupo de instancias sin gestionar en la zona
us-central1-c
.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-c
Añade instancias al grupo de instancias
ig-us-1
.gcloud compute instance-groups unmanaged add-instances ig-us-1 \ --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \ --zone us-central1-a
Añade instancias al grupo de instancias
ig-us-2
.gcloud compute instance-groups unmanaged add-instances ig-us-2 \ --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \ --zone us-central1-c
Si tu implementación de balanceador de carga también tiene un grupo de destino de copia de seguridad, repite estos pasos para crear un grupo de instancias de failover independiente para esas instancias.
Crear una comprobación del estado
Crea una comprobación del estado para determinar el estado de las instancias de tus grupos de instancias. Es probable que el balanceador de carga de red de paso a través externo basado en grupos de destino que ya tengas tenga asociada una comprobación del estado HTTP antigua.
Puede crear una comprobación del estado que coincida con el protocolo del tráfico que distribuirá el balanceador de carga. Los balanceadores de carga de red externos de tipo pasarela basados en servicios de backend pueden usar comprobaciones de estado TCP, SSL, HTTP(S) y HTTP/2.
Consola
- En la Google Cloud consola, ve a la página Comprobaciones de estado.
- Haz clic en Crear comprobación del estado.
- En el campo Name (Nombre), introduce
network-lb-health-check
. - En Ámbito, seleccione Regional.
- En Región, selecciona
us-central1
. - En Protocol (Protocolo), selecciona HTTP.
- En Puerto, escribe
80
. - Haz clic en Crear.
gcloud
En este ejemplo, creamos una comprobación del estado de HTTP no antigua para usarla con el servicio de backend.
gcloud compute health-checks create http network-lb-health-check \ --region us-central1 \ --port 80
Configurar el servicio de backend
Usa una de las siguientes secciones para crear el servicio de backend. Si tu balanceador de carga de red de paso a través externo tiene un grupo de destino de copia de seguridad, debes configurar una proporción de conmutación por error al crear el servicio de backend.
También debes designar el grupo de instancias de failover con la marca --failover
al añadir backends al servicio de backend.
Implementaciones sin un grupo de destino de copia de seguridad
gcloud
Crea un servicio backend regional en la región
us-central1
.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-checks network-lb-health-check \ --health-checks-region us-central1 \ --protocol TCP
Añade los dos grupos de instancias (
ig-us-1
yig-us-2
) como backends al servicio de backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Despliegues con un grupo de destino de copia de seguridad
gcloud
Crea un servicio backend regional en la región
us-central1
. Configure la proporción de conmutación por error del servicio de backend para que coincida con la proporción de conmutación por error configurada anteriormente para el grupo de destino.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-check network-lb-health-check \ --failover-ratio 0.5
Añade los dos grupos de instancias (
ig-us-1
yig-us-2
) como backends al servicio de backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Si has creado un grupo de instancias de conmutación por error, añádelo al servicio de backend. Marca este backend con la marca
--failover
cuando lo añadas al servicio backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group FAILOVER_INSTANCE_GROUP \ --instance-group-zone ZONE \ --region us-central1 \ --failover
Configurar la regla de reenvío
Tienes dos opciones para configurar la regla de reenvío y dirigir el tráfico al nuevo servicio de backend. Puede actualizar la regla de reenvío o crear una nueva con una dirección IP diferente.
Actualizar la regla de reenvío (opción recomendada)
Usa la marca set-target
para actualizar la regla de reenvío y que apunte al nuevo servicio de backend.
gcloud compute forwarding-rules set-target FORWARDING_RULE \ --backend-service network-lb-backend-service \ --region us-central1
Sustituye FORWARDING_RULE
por el nombre de la regla de reenvío que ya tengas.
Crear una regla de reenvío nueva
Si no quieres actualizar la regla de reenvío, puedes crear una con una dirección IP nueva. Como una dirección IP solo se puede asociar a una regla de reenvío a la vez, debes modificar manualmente tu configuración de DNS para transferir el tráfico entrante de la dirección IP antigua a la nueva.
Usa el siguiente comando para crear una regla de reenvío con una nueva dirección IP. Puedes usar la marca --address
si quieres especificar una dirección IP que ya esté reservada en la región us-central1
.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --load-balancing-scheme external \ --region us-central1 \ --ports 80 \ --backend-service network-lb-backend-service
Probar el balanceador de carga
Prueba el balanceador de carga para confirmar que la regla de reenvío dirige el tráfico entrante como se espera.
Buscar la dirección IP externa del balanceador de carga
gcloud
Introduce el siguiente comando para ver la dirección IP externa de la regla de reenvío network-lb-forwarding-rule
que usa el balanceador de carga.
gcloud compute forwarding-rules describe network-lb-forwarding-rule --region us-central1
Usa el comando nc
para acceder a la dirección IP externa
En este ejemplo, usamos el método de cifrado predeterminado para la afinidad de sesión, por lo que las solicitudes del comando nc
se distribuyen aleatoriamente a las VMs de backend en función del puerto de origen asignado por tu sistema operativo.
Para probar la conectividad, primero instala Netcat en Linux ejecutando el siguiente comando:
$ sudo apt install netcat
Repite el siguiente comando varias veces hasta que veas que responden todas las VMs de backend:
$ nc IP_ADDRESS 80
Eliminar los recursos asociados al balanceador de carga antiguo
Una vez que hayas confirmado que el nuevo balanceador de carga de red externo de pasarela funciona correctamente, puedes eliminar los recursos del antiguo grupo de destino.
- En la Google Cloud consola, ve a la página Balanceo de carga.
- Seleccione el antiguo balanceador de carga asociado al grupo de destino y, a continuación, haga clic en Eliminar.
- Selecciona las comprobaciones del estado que has creado y, a continuación, haz clic en Eliminar balanceador de carga y los recursos seleccionados.
Siguientes pasos
- Para obtener información sobre cómo funcionan los balanceadores de carga de red de paso a través externos con los servicios de backend, consulta el artículo sobre los balanceadores de carga de red de paso a través externos basados en servicios de backend.
- Para configurar un balanceador de carga de red de paso a través externo con un servicio de backend, consulta Configurar un balanceador de carga de red de paso a través externo con un servicio de backend.
- Para configurar un balanceador de carga de red de paso a través externo con un grupo de destino, consulta Configurar un balanceador de carga de red de paso a través externo con un grupo de destino.