Configura un balanceador de cargas de aplicaciones interno regional con conectividad híbrida

En esta página, se ilustra cómo implementar un balanceador de cargas de aplicaciones interno regional para balancear las cargas del tráfico en los extremos de red que se encuentran en entornos locales o en otras nubes públicas, y a los que se puede acceder mediante la conectividad híbrida

Si aún no lo hiciste, revisa la descripción general de los NEG de conectividad híbrida para comprender los requisitos de red para configurar el balanceo de cargas híbrido.

Descripción general de la configuración

En el ejemplo en esta página, se configura la siguiente implementación:

Ejemplo del balanceador de cargas de aplicaciones interno regional para la conectividad híbrida.
Ejemplo del balanceador de cargas de aplicaciones interno regional para la conectividad híbrida (haz clic para ampliar)

Debes configurar la conectividad híbrida antes de configurar una implementación de balanceo de cargas híbrido. En esta página, no se incluye la configuración de conectividad híbrida.

Según el producto de conectividad híbrida que elijas (Cloud VPN o Cloud Interconnect, dedicado o socio), usa la documentación del producto correspondiente.

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 de solo proxy de la región.

Configura el 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.

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

Configura la subred de solo proxy

Esta subred de solo proxy se usa para todos los balanceadores de cargas regionales basados en Envoy en la región REGION.

Consola

  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. Ingresa un Nombre: PROXY_ONLY_SUBNET_NAME
  5. Selecciona una región: REGION
  6. Configura Propósito como Proxy administrado regional.
  7. Ingresa un Rango de direcciones IP: PROXY_ONLY_SUBNET_RANGE.
  8. Haga clic en Agregar.

gcloud

Crea la subred de solo proxy con el comando gcloud compute networks subnets create.

gcloud compute networks subnets create PROXY_ONLY_SUBNET_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Configura la subred del balanceador de cargas

Esta subred se usa para crear los backends de NEG zonales del balanceador de cargas, el frontend y la dirección IP interna.

Consola de Cloud

  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. En la sección Subredes, haz lo siguiente:
    • Establece Modo de creación de subred en Personalizado.
    • En la sección Nueva subred, ingresa la siguiente información:
      • Nombre: LB_SUBNET_NAME
      • Región: REGION
      • Rangos de direcciones IP: LB_SUBNET_RANGE
    • Haz clic en Listo.
  4. Haz clic en Crear.

gcloud

  1. Crea una subred en la red que se usó para configurar la conectividad híbrida entre los entornos.

    gcloud compute networks subnets create LB_SUBNET_NAME \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE \
        --region=REGION
    

Reserva la dirección IP del balanceador de cargas

De forma predeterminada, se usa una dirección IP para cada regla de reenvío. Puedes reservar una dirección IP compartida, que te permite usar la misma dirección IP con varias reglas de reenvío. Sin embargo, si deseas publicar el balanceador de cargas mediante Private Service Connect, no uses una dirección IP compartida para la regla de reenvío.

Console

Puedes reservar una dirección IP interna independiente con la consola de Google Cloud.

  1. Ir a la página de redes de VPC

    Ir a las redes de VPC

  2. Haz clic en la red que se usó para configurar la conectividad híbrida entre los entornos.
  3. Haz clic en Direcciones IP internas estáticas y, luego, en Reservar dirección estática.
  4. Ingresa un Nombre: LB_IP_ADDRESS
  5. En Subred, selecciona LB_SUBNET_NAME.
  6. Si deseas especificar qué dirección IP deseas reservar, en Dirección IP estática, selecciona Permitirme elegir y, luego, completa una Dirección IP personalizada. De lo contrario, el sistema asignará de forma automática una dirección IP en la subred.
  7. Si deseas usar esta dirección IP con varias reglas de reenvío, en Propósito, elige Compartido.
  8. Haz clic en Reservar para finalizar el proceso.

gcloud

  1. Con la CLI de gcloud, ejecuta el comando compute addresses create:

    gcloud compute addresses create LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME \
    
  2. Usa el comando compute addresses describe para ver la dirección IP asignada:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

    Si deseas usar la misma dirección IP con varias reglas de reenvío, especifica --purpose=SHARED_LOADBALANCER_VIP.

Crea reglas de firewall para NEG zonales

En este ejemplo, se crean las siguientes reglas de firewall para los backends de NEG zonales en Google Cloud:

  • fw-allow-health-check: Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite el tráfico de los sistemas de verificación de estado de Google Cloud (130.211.0.0/22 y 35.191.0.0/16). En este ejemplo, se usa la etiqueta de destino allow-health-check para identificar las VMs de backend a las que debe aplicarse. 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.
  • fw-allow-ssh: una regla de entrada que permita la conectividad SSH entrante en el puerto TCP 22 desde cualquier dirección. Puedes elegir un rango de IP de origen más restrictivo para esta regla; por ejemplo, puedes especificar los rangos de IP de los sistemas desde los que planeas iniciar sesiones SSH. En este ejemplo, se usa la etiqueta de destino allow-ssh para identificar las VM a las que se debe aplicar.
  • fw-allow-proxy-only-subnet: Es una regla de entrada que permite que las conexiones de la subred de solo proxy lleguen a los backends.

Consola

  1. En la consola de Google Cloud, ve a la página Firewall.
    Ir a Políticas de firewall
  2. Haz clic en Crear regla de firewall para crear la regla que permite el tráfico de los sondeos de verificación de estado:
    1. En Nombre ingresa fw-allow-health-check.
    2. En Red selecciona NETWORK.
    3. En Destinos, selecciona Etiquetas de destino especificadas.
    4. Propaga el campo Etiquetas de destino con allow-health-check.
    5. Configura Filtro de fuente como Rangos de IPv4.
    6. Establece Rangos de IPv4 de origen en 130.211.0.0/2235.191.0.0/16.
    7. En Protocolos y puertos, selecciona Protocolos y puertos especificados.
    8. Selecciona TCP y, luego, ingresa 80 para el número de puerto.
    9. Haz clic en Crear.
  3. Vuelve a hacer clic en Crear regla de firewall para crear la regla que permitirá conexiones SSH entrantes:
    1. Nombre: fw-allow-ssh
    2. Red: NETWORK
    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: allow-ssh
    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.
    11. Selecciona TCP y, luego, ingresa 22 para el número de puerto.
    12. Haz clic en Crear.
  4. Haz clic en Crear regla de firewall de nuevo para crear la regla que permite conexiones entrantes desde la subred de solo proxy:
    1. Name: fw-allow-proxy-only-subnet
    2. Red: NETWORK
    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: allow-proxy-only-subnet
    8. Filtro de fuente: Rangos de IPv4
    9. Rangos de IPv4 de origen: PROXY_ONLY_SUBNET_RANGE
    10. Protocolos y puertos: Elige Protocolos y puertos especificados
    11. Selecciona TCP y, luego, ingresa 80 para el número de puerto.
    12. Haz clic en Crear.

gcloud

  1. Crea la regla fw-allow-health-check-and-proxy para permitir que las verificaciones de estado de Google Cloud lleguen a las instancias de backend en el puerto TCP 80:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. Crea la regla de firewall fw-allow-ssh para permitir la conectividad SSH a las VM con la etiqueta de red allow-ssh. Cuando omites source-ranges, Google Cloud interpreta que la regla significa cualquier fuente.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. Crea una regla de firewall de permiso de entrada para la subred de solo proxy a fin de permitir que el balanceador de cargas se comunique con instancias de backend en el puerto TCP 80:

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE \
        --rules=tcp:80
    

Configura el NEG zonal

Para los backends basados en Google Cloud, te recomendamos configurar varios NEG zonales en la misma región en la que configuraste la conectividad híbrida.

Para este ejemplo, configuramos un NEG zonal (con extremos de tipo GCE_VM_IP_PORT) en la región REGION. Primero, crea las VMs en la zona GCP_NEG_ZONE. Luego, crea un NEG zonal en el mismo GCP_NEG_ZONE y agrega los extremos de red de las VMs al NEG.

Crea VM

Consola

  1. Ve a la página Instancias de VM en la consola de Google Cloud.
    Ir a Instancias de VM
  2. Haga clic en Crear instancia.
  3. Configura el campo Nombre como vm-a1.
  4. En Región, elige REGION y elige cualquier Zona. En este procedimiento, se denominará GCP_NEG_ZONE.
  5. En la sección Disco de arranque, asegúrate de que el sistema operativo Debian y la versión 10 (buster) estén seleccionados como opciones de disco de arranque. Haz clic en Elegir para cambiar la imagen si es necesario.
  6. Haz clic en Opciones avanzadas y realiza los siguientes cambios:

    • Haz clic en Herramientas de redes y agrega las siguientes Etiquetas de red: allow-ssh, allow-health-check y allow-proxy-only-subnet.
    • Haz clic en Editar  en Interfaces de red y realiza los siguientes cambios. Luego, haz clic en Listo:
      • Red: NETWORK
      • Subred: LB_SUBNET_NAME
      • IP interna principal: efímera (automática)
      • IP externa: efímera
    • Haz clic en Administración. En el campo Secuencia de comandos de inicio, copia y pega el siguiente contenido de la secuencia de comandos. 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
      
  7. Haz clic en Crear.

  8. Repite los siguientes pasos para crear una segunda VM mediante la siguiente combinación de nombre y zona:

    • Nombre: vm-a2, zona: GCP_NEG_ZONE

gcloud

Para crear las VMs, ejecuta el siguiente comando dos veces, con estas combinaciones para el nombre de la VM y su zona. El contenido de la secuencia de comandos es idéntico para ambas VMs.

  • VM_NAME de vm-a1 y cualquier GCP_NEG_ZONE que elijas
  • VM_NAME de vm-a2 y la misma zona de GCP_NEG_ZONE

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --subnet=LB_SUBNET_NAME \
        --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'
    

Crea el NEG zonal

Consola

Para crear un grupo de extremos de red por zonas, sigue estos pasos:

  1. Ve a la página Grupos de extremos de red en la consola de Google Cloud.
    Ir a la página Grupos de extremos de red
  2. Haz clic en Crear un grupo de extremos de red.
  3. Ingresa un Nombre para el NEG zonal. En este procedimiento, se lo llamará GCP_NEG_NAME.
  4. Selecciona el Tipo de grupo de extremos de red: Grupo de extremos de red (zonal).
  5. Selecciona la red: NETWORK
  6. Selecciona la Subred: LB_SUBNET_NAME
  7. Selecciona la Zona: GCP_NEG_ZONE
  8. Ingresa el Puerto predeterminado: 80.
  9. Haga clic en Crear.

Agrega extremos al NEG zonal.

  1. Ve a la página Grupos de extremos de red en la consola de Google Cloud.
    Ir a los grupos de extremos de red
  2. Haz clic en el Nombre del grupo de extremos de red que se creó en el paso anterior (GCP_NEG_NAME). Verás la página Detalles del grupo de extremos de red.
  3. En la sección Extremos de red de este grupo, haz clic en Agregar extremo de red. Verás la página Agregar extremo de red.
  4. Selecciona una instancia de VM para agregar sus direcciones IP internas como extremos de red. En la sección Interfaz de red, se muestra el nombre, la zona y la subred de la VM.
  5. Ingresa la dirección IP del extremo de red nuevo.
  6. Selecciona el tipo de puerto.
    1. Si seleccionas Predeterminado, el extremo usará el puerto predeterminado 80 para todos los extremos del grupo de extremos de red. Esto es suficiente para nuestro ejemplo, ya que el servidor Apache entrega solicitudes en el puerto 80.
    2. Si seleccionas Personalizado, deberás ingresar el número de puerto para el extremo que se usará.
  7. Para agregar más extremos, haz clic en Agregar extremo de red y repite los pasos anteriores.
  8. Después de agregar todos los extremos, haz clic en Crear.

gcloud

  1. Crea un NEG zonal (con extremos GCE_VM_IP_PORT) mediante el comando gcloud compute network-endpoint-groups create:

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    Puedes especificar un --default-port mientras creas el NEG o especificar un número de puerto para cada extremo como se muestra en el paso siguiente.

  2. Agrega extremos a GCP_NEG_NAME.

    gcloud compute network-endpoint-groups update GCP_NEG_NAME \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,port=80' \
        --add-endpoint='instance=vm-a2,port=80'
    

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, si usas Cloud Interconnect, el ZONE que se usa para crear el NEG debe estar en la misma región en la que se configuró el adjunto de Cloud Interconnect.

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

Consola

Para crear un grupo de extremos de red de conectividad híbrida, haz lo siguiente:

  1. Ve a la página Grupos de extremos de red en la consola de Google Cloud.
    Ir a Grupos de extremos de red
  2. Haz clic en Crear un grupo de extremos de red.
  3. Ingresa un Nombre para el NEG híbrido. En este procedimiento, se lo llamará ON_PREM_NEG_NAME.
  4. Selecciona el Tipo de grupo de extremos de red: Grupo de extremos de red de conectividad híbrida (zonal).
  5. Selecciona la Red: NETWORK
  6. Selecciona la Subred: LB_SUBNET_NAME
  7. Selecciona la Zona: ON_PREM_NEG_ZONE
  8. Ingresa el Puerto predeterminado.
  9. Haga clic en Crear.

Agrega extremos al NEG de conectividad híbrida:

  1. Ve a la página Grupos de extremos de red en la consola de Google Cloud.
    Ir a la página Grupos de extremos de red
  2. Haz clic en el Nombre del grupo de extremos de red que se creó en el paso anterior (ON_PREM_NEG_NAME). Verás la página Detalles del grupo de extremos de red.
  3. En la sección Extremos de red de este grupo, haz clic en Agregar extremo de red. Verás la página Agregar extremo de red.
  4. Ingresa la dirección IP del extremo de red nuevo.
  5. Selecciona el tipo de puerto.
    1. Si seleccionas Predeterminado, el extremo usará el puerto predeterminado para todos los extremos del grupo de extremos de red.
    2. 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. Crea un NEG de conectividad híbrida mediante el comando gcloud compute network-endpoint-groups create.

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. Agrega el extremo de la VM de backend local a ON_PREM_NEG_NAME:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

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

Consola

gcloud

  1. Crea una verificación de estado para los backends.
       gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
           --region=REGION \
           --use-serving-port
       
    Los sondeos de verificación de estado para backends de NEG híbridos se originan en los proxies de Envoy en la subred de solo proxy, mientras que los sondeos para backends de NEG zonales se originan en los [rangos de IP de sondeo central de Google](/load-balancing/docs/health-check-concepts#ip-ranges).
  2. Crea un servicio de backend para backends basados en la nube de Google. Agrega el NEG zonal y el NEG de conectividad híbrida como backends a este servicio de backend.
      gcloud compute backend-services create BACKEND_SERVICE \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --protocol=HTTP \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --health-checks-region=REGION \
          --region=REGION
      
  3. Agrega el NEG sin servidores como un backend al servicio de backend:
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=GCP_NEG_NAME \
        --network-endpoint-group-zone=GCP_NEG_ZONE
    
    Si deseas obtener detalles sobre la configuración del modo de balanceo, consulta la documentación de la CLI de gcloud para el parámetro --max-rate-per-endpoint.
  4. Agrega el NEG híbrido como un backend al servicio de backend:
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=ON_PREM_NEG_NAME \
        --network-endpoint-group-zone=ON_PREM_NEG_ZONE
    
    Si deseas obtener detalles sobre la configuración del modo de balanceo, consulta la documentación de la CLI de gcloud para el parámetro --max-rate-per-endpoint.
  5. Crea un mapa de URL para enrutar las solicitudes entrantes al servicio de backend:
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service BACKEND_SERVICE \
        --region=REGION
    
  6. Opcional: Realiza este paso si usas HTTPS entre el cliente y el balanceador de cargas. Esto no es obligatorio para los balanceadores de cargas de HTTP.

    Puedes crear certificados de Compute Engine o del Administrador de certificados. Usa cualquiera de los siguientes métodos para crear certificados con el Administrador de certificados:

    • Certificados autoadministrados regionales Para obtener más información sobre cómo crear y usar certificados autoadministrados regionales, consulta Implementa un certificado autoadministrado regional. No se admiten mapas de certificados.

    • Certificados regionales administrados por Google. No se admiten mapas de certificados.

      El Administrador de certificados admite los siguientes tipos de certificados regionales administrados por Google:

    • Después de crear certificados, adjunta el certificado directamente al proxy de destino.

      Si deseas crear un recurso de certificado SSL autoadministrado de Compute Engine, ingresa el siguiente comando:
      gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
          --certificate CRT_FILE_PATH \
          --private-key KEY_FILE_PATH
      
    • Crea un proxy HTTP(S) de destino para enrutar las solicitudes al mapa de URL.

      Para un balanceador de cargas de HTTP, crea un proxy HTTP de destino:
      gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
          --url-map=URL_MAP_NAME \
          --url-map-region=REGION \
          --region=REGION
      
      Para un balanceador de cargas de HTTPS, crea un proxy Proxy HTTPS de destino El proxy es la parte del balanceador de cargas que contiene el certificado SSL para el balanceo de cargas de HTTPS, por lo que también debes cargar el certificado en este paso.
      gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
          --ssl-certificates=SSL_CERTIFICATE_NAME \
          --url-map=URL_MAP_NAME \
          --url-map-region=REGION \
          --region=REGION
      
    • Crea una regla de reenvío para enrutar las solicitudes entrantes al proxy. No uses la subred de solo proxy para crear la regla de reenvío.

      Para un balanceador de cargas de HTTP, ingresa
        gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --network=NETWORK \
            --subnet=LB_SUBNET_NAME \
            --address=LB_IP_ADDRESS \
            --ports=80 \
            --region=REGION \
            --target-http-proxy=TARGET_HTTP_PROXY_NAME \
            --target-http-proxy-region=REGION
      
      . Para un balanceador de cargas de HTTPS, ingresa el siguiente comando:
        gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --network=NETWORK \
            --subnet=LB_SUBNET_NAME \
            --address=LB_IP_ADDRESS \
            --ports=443 \
            --region=REGION \
            --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
            --target-https-proxy-region=REGION
      

Conecta tu dominio al balanceador de cargas

Después de crear el balanceador de cargas, toma nota de la dirección IP asociada con este: por ejemplo, 30.90.80.100. Para apuntar tu dominio al balanceador de cargas, crea un registro A mediante tu servicio de registro de dominio. Si agregaste varios dominios a tu certificado SSL, debes agregar un registro A para cada uno, que apunte a la dirección IP del balanceador de cargas. Por ejemplo, para crear registros A para www.example.com y example.com, usa lo siguiente:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Si usas Cloud DNS como proveedor de DNS, consulta Agrega, modifica y borra registros.

Prueba el balanceador de cargas

Para probar el balanceador de cargas, crea una VM de cliente en la misma región que el balanceador de cargas. Luego, envía tráfico del cliente al balanceador de cargas.

Crea una VM de cliente

En este ejemplo, se crea una VM de cliente (vm-client) en la misma región en la que están los NEG de backend. El cliente se usa para validar la configuración del balanceador de cargas y demostrar el comportamiento esperado, como se describe en la sección de pruebas.

Console

  1. Ve a la página Instancias de VM en la consola de Google Cloud.
    Ir a Instancias de VM
  2. Haga clic en Crear instancia.
  3. Configura el campo Nombre como vm-client.
  4. En Zona establece CLIENT_VM_ZONE.
  5. Haz clic en Opciones avanzadas y realiza los siguientes cambios:
    • Haz clic en Herramientas de redes y agrega allow-ssh a Etiquetas de red.
    • Haz clic en el botón Editar, en Interfaces de red, y realiza los siguientes cambios. Luego, haz clic en Listo:
      • Red: NETWORK
      • Subred: LB_SUBNET_NAME
      • IP interna principal: efímera (automática)
      • IP externa: Efímera
  6. Haz clic en Crear.

gcloud

La VM de cliente puede estar en cualquier zona de la misma región que el balanceador de cargas y puede usar cualquier subred en esa región. En este ejemplo el cliente se encuentra en la zona CLIENT_VM_ZONE y usa la misma subred que las VM de backend.

gcloud compute instances create vm-client \
    --zone=CLIENT_VM_ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=LB_SUBNET_NAME

Envía tráfico al balanceador de cargas

Ahora que ya configuraste el balanceador de cargas, puedes comenzar a enviar tráfico a la dirección IP del balanceador de cargas.

  1. Usa SSH para conectarte a la instancia de cliente.

    gcloud compute ssh client-vm \
      --zone=CLIENT_VM_ZONE
    
  2. Obtén la dirección IP del balanceador de cargas. Usa el comando compute addresses describe para ver la dirección IP asignada:

    gcloud compute addresses describe l7-ilb-ip-address \
      --region=us-west1
    
  3. Verifica que el balanceador de cargas entregue los nombres de host del backend como se esperaba. Reemplaza IP_ADDRESS por la dirección IP del balanceador de cargas.

    Para las pruebas de HTTP, ejecuta este comando:

    curl IP_ADDRESS
    

    Para las pruebas de HTTPS, ejecuta lo siguiente:

  curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS:443
  

La marca -k hace que curl omita la validación del certificado.

La prueba de los extremos que no son de Google Cloud depende del servicio que expones a través del extremo de NEG híbrido.

¿Qué sigue?