Configura un balanceador de cargas de red del proxy externo regional con conectividad híbrida

Un balanceador de cargas de red de proxy externo regional es un balanceador de cargas regional de capa 4 basado en proxy que te permite ejecutar y escalar el tráfico de servicio TCP en una sola región detrás de una dirección IP regional externa. Estos balanceadores de cargas distribuyen el tráfico de TCP externo desde Internet hasta los backends en la misma región.

En esta página, se describe cómo configurar un balanceador de cargas de red del proxy externo regional para balancear las cargas del tráfico a los backends en entornos locales o en otros entornos de nube conectados mediante la conectividad híbrida. La configuración de la conectividad híbrida para conectar tus redes a Google Cloud no está dentro del alcance de esta página.

Antes de comenzar, lee la descripción general del balanceador de cargas de red del proxy externo.

En este ejemplo, usaremos el balanceador de cargas para distribuir el tráfico de TCP en las VMs de backend ubicadas en instalaciones locales o en otros entornos de nube.

En este ejemplo, debes configurar la implementación que se muestra en el siguiente diagrama.

Configuración de ejemplo del balanceador de cargas de red del proxy externo con backends de NEG híbridos.
Configuración de ejemplo del balanceador de cargas de red del proxy externo con backends de NEG híbridos.

Este es un balanceador de cargas regional. Todos los componentes del balanceador de cargas (grupos de instancias de backend, servicio de backend, proxy de destino y regla de reenvío) deben estar en la misma región.

Permisos

Para configurar el balanceo de cargas híbrido, debes tener los siguientes permisos:

  • En Google Cloud

  • En tu entorno local o en otro entorno de nube que no sea de Google Cloud

    • Permisos para configurar los extremos de red que permiten que se pueda acceder a los servicios en tu entorno local o en otros entornos de nube desde Google Cloud a través de una combinación IP:Port. Para obtener más información, comunícate con el administrador de red de tu entorno.
    • Permisos para crear reglas de firewall en tu entorno local o en otros entornos de nube a fin de permitir que los sondeos de verificación de estado de Google lleguen a los extremos.

Además, a fin de completar las instrucciones de esta página, debes crear un NEG de conectividad híbrida, un balanceador de cargas y NEG zonales (y sus extremos) que funcionen como backends basados en Google Cloud para el balanceador de cargas.

Debes ser Propietario o Editor de un proyecto o tener los siguientes roles de IAM de Compute Engine.

Tarea Función requerida
Crear redes, subredes y componentes del balanceador de cargas Administrador de red de Compute (roles/compute.networkAdmin)
Agrega y quita reglas de firewall Administrador de seguridad de Compute (roles/compute.securityAdmin)
Crea instancias Administrador de instancias de Compute (roles/compute.instanceAdmin)

Establece una conectividad híbrida

Tu Google Cloud y otros entornos de nube deben estar conectados a través de la conectividad híbrida, mediante adjuntos de VLAN de Cloud Interconnect o túneles de Cloud VPN con Cloud Router. Te recomendamos usar una conexión de alta disponibilidad.

Un Cloud Router habilitado con enrutamiento dinámico global aprende sobre el extremo específico a través del protocolo de puerta de enlace fronteriza (BGP) y lo programa en tu red de VPC de Google Cloud. No se admite el enrutamiento dinámico regional. Tampoco se admiten las rutas estáticas.

La red de VPC que usas para configurar Cloud Interconnect o Cloud VPN es la misma red que usas a fin de configurar la implementación del balanceo de cargas híbrido. Asegúrate de que los rangos de CIDR de la subred de la red de VPC no entren en conflicto con los rangos de CIDR remotos. Cuando las direcciones IP se superponen, las rutas de subred se priorizan por sobre la conectividad remota.

Para obtener instrucciones, consulta la siguiente documentación:

Configura tu entorno fuera de Google Cloud

Realiza los pasos siguientes a fin de configurar tu entorno local o algún otro entorno de nube para el balanceo de cargas híbrido:

  • Configura los extremos de red para exponer los servicios locales a Google Cloud (IP:Port).
  • Configura reglas de firewall en tu entorno local o en otro entorno de nube.
  • Configura Cloud Router para anunciar ciertas rutas obligatorias a tu entorno privado.

Configura extremos de red

Luego de configurar la conectividad híbrida, configura uno o más extremos de red en tus entornos de nube locales o en otros a los que se pueda acceder mediante Cloud Interconnect o Cloud VPN mediante una combinación IP:port. Esta combinación IP:port se configura como uno o más extremos para el NEG de conectividad híbrida que se crea más adelante en Google Cloud en este proceso.

Si hay varias rutas de acceso al extremo de IP, el enrutamiento seguirá el comportamiento descrito en la descripción general de Cloud Router.

Configura reglas de firewall

Las siguientes reglas de firewall se deben crear en tu entorno local o en otro entorno de nube:

  • Crea una regla de firewall de permiso de entrada en entornos locales o en otros entornos de nube para permitir que el tráfico de la subred de solo proxy de la región llegue a los extremos.
  • No se requiere incluir en la lista de entidades permitidas los rangos de sondeo de verificación de estado de Google para los NEG híbridos. Sin embargo, si usas una combinación de NEG híbridos y zonales en un solo servicio de backend, debes incluir en la lista de anunciantes permitidos los rangos de sondeo de verificación de estado de Google para los NEG zonales.

Configura Cloud Router para Anunciar los siguientes rangos de IP personalizados a tu entorno local o a otro entorno de nube:

  • El rango de la subred solo de proxy de la región.

Configura tu entorno de Google Cloud

Para los siguientes pasos, asegúrate de usar la misma red de VPC (llamada NETWORK en este procedimiento) que se usó a fin de configurar la conectividad híbrida entre los entornos. Puedes seleccionar cualquier subred de esta red para reservar la dirección IP del balanceador de cargas y crear el balanceador de cargas. En este procedimiento, se hace referencia a esta subred como LB_SUBNET.

Además, asegúrate de que la región que se usa (llamada REGION en este procedimiento) sea la misma región que se usó para crear el túnel de Cloud VPN o el adjunto de VLAN de Cloud Interconnect.

Configura la subred de solo proxy

La subred de solo proxy proporciona un conjunto de direcciones IP que Google usa para ejecutar proxies de Envoy en tu nombre. Los proxies finalizan las conexiones del cliente y crean conexiones nuevas a los backends.

Todos los balanceadores de cargas regionales basados en Envoy usan la subred de solo proxy en la región (REGION) de la red de VPC (NETWORK).

Solo puede haber una subred de solo proxy activa por región y por red de VPC. Puedes omitir este paso si ya existe una subred de solo proxy en esta región.

Console

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 cargas.

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

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

    Ir a las redes de VPC

  2. Ve a la red que se usó para configurar la conectividad híbrida entre los entornos.

  3. Haz clic en Agregar subred.

  4. En Nombre, ingresa proxy-only-subnet.

  5. En Región, selecciona us-west1.

  6. Configura Propósito como Proxy administrado regional.

  7. En Rango de direcciones IP, ingresa 10.129.0.0/23.

  8. Haz clic en Agregar.

gcloud

Para crear la subred de solo proxy, usa el comando gcloud compute networks subnets create:

gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=us-west1 \
    --network=NETWORK \
    --range=10.129.0.0/23

Reserva la dirección IP del balanceador de cargas

Reserva una dirección IP externa para el balanceador de cargas Este procedimiento crea la dirección IP del balanceador de cargas en el nivel Estándar. Los balanceadores de cargas de red del proxy externos regionales admiten los Niveles de servicio de red Premium y Estándar. Sin embargo, no se admite la creación de este balanceador de cargas en el nivel Premium en la consola de Google Cloud. En su lugar, usa gcloud o la API de REST.

Console

  1. En la consola de Google Cloud, ve a la página Reserva una dirección estática.

    Ir a Reserva una dirección estática

  2. Elige un nombre para la dirección nueva.

  3. En Nivel de servicio de red, selecciona Estándar.

  4. Para Versión de la IP, selecciona IPv4. Las direcciones IPv6 no son compatibles.

  5. En Tipo, selecciona Regional.

  6. En Región, selecciona us-west1.

  7. Deja la opción Conectado a configurada en Ninguna. Después de crear el balanceador de cargas, esta dirección IP se adjunta a la regla de reenvío del balanceador de cargas.

  8. Haz clic en Reservar si deseas reservar la dirección IP.

gcloud

  1. Para reservar una dirección IP externa estática, usa el comando gcloud compute addresses create:

    gcloud compute addresses create ADDRESS_NAME  \
       --region=us-west1 \
       --network-tier=STANDARD
    

    Reemplaza ADDRESS_NAME por el nombre que deseas darle a esta dirección.

  2. Para ver el resultado, usa el comando gcloud compute addresses describe:

    gcloud compute addresses describe ADDRESS_NAME
    

Configura el NEG de conectividad híbrida

Cuando crees el NEG, usa un ZONE que minimice la distancia geográfica entre Google Cloud y tu entorno local o de otra nube. Por ejemplo, si alojas un servicio en un entorno local en Fráncfort, Alemania, puedes especificar la zona europe-west3-a de Google Cloud cuando crees el NEG.

Además, la zona que usas a fin de crear el NEG debe estar en la misma región en la que se configuró el túnel de Cloud VPN o el adjunto de VLAN de Cloud Interconnect para la conectividad híbrida.

Para las regiones y zonas disponibles, consulta Regiones y zonas disponibles en la documentación de Compute Engine.

Console

Crea un NEG de conectividad híbrida

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

    Ir a Grupos de extremos de red

  2. Haz clic en Crear un grupo de extremos de red.

  3. En Nombre, ingresa HYBRID_NEG_NAME.

  4. En Tipo de grupo de extremos de red, selecciona Grupo de extremos de red de conectividad híbrida (zonal).

  5. En Red, selecciona NETWORK.

  6. En Subred, selecciona LB_SUBNET.

  7. En Zona, selecciona HYBRID_NEG_ZONE.

  8. En Puerto predeterminado, selecciona el valor predeterminado.

  9. En Cantidad máxima de conexiones, ingresa 2.

  10. Haz clic en Crear.

Agrega extremos al NEG de conectividad híbrida

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

    Ir a Grupos de extremos de red

  2. Haz clic en el nombre del grupo de extremos de red que creaste en el paso anterior (HYBRID_NEG_NAME).

  3. En la página Detalles del grupo de extremos de red, en la sección Extremos de red en este grupo, haz clic en Agregar extremo de red.

  4. En la página Agregar extremo de red, ingresa la dirección IP del extremo de red nuevo.

  5. Selecciona el tipo de puerto:

    • Si seleccionas Predeterminado, el extremo usará el puerto predeterminado para todos los extremos del grupo de extremos de red.
    • Si seleccionas Personalizado, puedes ingresar un Número de puerto diferente para que lo use el extremo.
  6. Para agregar más extremos, haz clic en Agregar extremo de red y repite los pasos anteriores.

  7. Después de agregar todos los extremos que no son de Google Cloud, haz clic en Crear.

gcloud

  1. Para crear un NEG de conectividad híbrida, usa el comando gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create HYBRID_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=HYBRID_NEG_ZONE \
        --network=NETWORK
     
  2. Agrega el extremo de IP:Port local al NEG híbrido:

    gcloud compute network-endpoint-groups update HYBRID_NEG_NAME \
        --zone=HYBRID_NEG_ZONE \
        --add-endpoint="ip=ENDPOINT_IP_ADDRESS,port=ENDPOINT_PORT"
    

Puedes usar este comando para agregar los extremos de red que configuraste antes de forma local o en tu entorno de nube. Repite --add-endpoint tantas veces como sea necesario.

Puedes repetir estos pasos para crear varios NEG híbridos si es necesario.

Configura el balanceador de cargas

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 transferencia, selecciona Balanceador de cargas de proxy 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. En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo regionales y haz clic en Siguiente.
  7. Haz clic en Configurar.

Configuración básica

  1. En Nombre, ingresa un nombre para el balanceador de cargas.
  2. En Región, selecciona REGION.
  3. En Red, selecciona NETWORK.

Reserva una subred de solo proxy

  1. Haz clic en Reservar subred.
  2. En Nombre, ingresa proxy-only-subnet.
  3. En Rango de direcciones IP, ingresa 10.129.0.0/23.
  4. Haga clic en Agregar.

Configura el backend

  1. Haz clic en Configuración de backend.
  2. En Tipo de backend, selecciona Grupo de extremos de red de conectividad híbrida (Zonal).
  3. En Protocol, selecciona TCP.
  4. En Backend nuevo, selecciona el NEG híbrido que creaste antes (HYBRID_NEG_NAME). También puedes hacer clic en Crear un grupo de extremos de red para crear el NEG híbrido ahora. Para obtener orientación sobre cómo configurar el NEG, consulta Configura el NEG híbrido.
  5. Conserva los valores predeterminados restantes y haz clic en Listo.
  6. Configura la verificación de estado:
    • En Verificación de estado, seleccione Crear una verificación de estado.
    • En Nombre, ingresa un nombre para la verificación de estado.
    • En Protocol, selecciona TCP.
    • En Puerto, ingresa 80.
  7. Conserva los valores predeterminados restantes y haz clic en Guardar.
  8. En la consola de Google Cloud, verifica que haya una marca de verificación junto a Configuración de backend. De lo contrario, verifica que hayas completado todos los pasos.

Configura el frontend

  1. Haz clic en Configuración de frontend.
  2. En Nombre, ingresa un nombre para la regla de reenvío.
  3. En Dirección IP, selecciona LB_IP_ADDRESS.
  4. En Número de puerto, ingresa cualquier número de puerto del 1 al 65535. La regla de reenvío solo reenvía los paquetes con un puerto de destino coincidente.
  5. Habilita el Protocolo de proxy solo si funciona con el servicio que se ejecuta en tu extremo local o en otros extremos de la nube. Por ejemplo, el protocolo PROXY no funciona con el software del servidor HTTP de Apache. Para obtener más información, consulta Protocolo PROXY.
  6. Haz clic en Listo.
  7. En la consola de Google Cloud, verifica que haya una marca de verificación junto a Configuración de frontend. De lo contrario, verifica que hayas completado todos los pasos anteriores.

Revisa y finaliza

  1. Haz clic en Revisar y finalizar.
  2. Vuelve a verificar la configuración.
  3. Haga clic en Crear.

gcloud

  1. Crea una verificación de estado regional para los backends:

    gcloud compute health-checks create tcp TCP_HEALTH_CHECK_NAME \
        --region=REGION \
        --use-serving-port
    
  2. Crea un servicio de backend:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --protocol=TCP \
       --region=REGION \
       --health-checks=TCP_HEALTH_CHECK_NAME \
       --health-checks-region=REGION
    
  3. Agrega el backend de NEG híbrido al servicio de backend:

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
       --network-endpoint-group=HYBRID_NEG_NAME \
       --network-endpoint-group-zone=HYBRID_NEG_ZONE \
       --region=REGION \
       --balancing-mode=CONNECTION \
       --max-connections=MAX_CONNECTIONS
    

    Para MAX_CONNECTIONS, ingresa la cantidad máxima de conexiones simultáneas que el backend debe manejar.

  4. Crea el proxy TCP de destino:

    gcloud compute target-tcp-proxies create TARGET_TCP_PROXY_NAME \
       --backend-service=BACKEND_SERVICE_NAME \
       --region=REGION
    
  5. Crea la regla de reenvío. Usa el comando gcloud compute forwarding-rules create. Reemplaza FWD_RULE_PORT por un solo número de puerto, de 1 a 65535. La regla de reenvío solo reenvía los paquetes con un puerto de destino coincidente.

    gcloud compute forwarding-rules create FORWARDING_RULE \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network=NETWORK \
       --subnet=LB_SUBNET \
       --address=LB_IP_ADDRESS \
       --ports=FWD_RULE_PORT \
       --region=REGION \
       --target-tcp-proxy=TARGET_TCP_PROXY_NAME \
       --target-tcp-proxy-region=REGION
    

Prueba el balanceador de cargas

Ahora que ya configuraste el balanceador de cargas, puedes probar el envío de tráfico a la dirección IP del balanceador de cargas.

  1. Obtén la dirección IP del balanceador de cargas.

    Para obtener la dirección IPv4, ejecuta el siguiente comando:

    gcloud compute addresses describe ADDRESS_NAME
    
  2. Envía tráfico a tu balanceador de cargas mediante la ejecución del siguiente comando. Reemplaza LB_IP_ADDRESS por la dirección IPv4 del balanceador de cargas:

    curl -m1 LB_IP_ADDRESS:FWD_RULE_PORT
    

¿Qué sigue?