Configurar un balanceador de carga de aplicaciones interno regional con conectividad híbrida

En esta página se explica cómo desplegar un balanceador de carga de aplicaciones interno regional para balancear la carga del tráfico a los endpoints de red que están en las instalaciones o en otras nubes públicas y a los que se puede acceder mediante la conectividad híbrida.

Si aún no lo has hecho, consulta la descripción general de los NEG de conectividad híbrida para conocer los requisitos de red necesarios para configurar el balanceo de carga híbrido.

Descripción general de la configuración

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

Ejemplo de balanceador de carga de aplicaciones interno regional para la conectividad híbrida.
Ejemplo de balanceador de carga de aplicación interno regional para la conectividad híbrida (haz clic para ampliar).

Debes configurar la conectividad híbrida antes de configurar una implementación de equilibrio de carga híbrida. En esta página no se incluye la configuración de la conectividad híbrida.

En función del producto de conectividad híbrida que elijas (Cloud VPN o Cloud Interconnect [Dedicated o Partner]), consulta la documentación correspondiente.

Permisos

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

  • Activado Google Cloud

  • En tu entorno local u otro entorno que no sea deGoogle Cloud cloud

    • Permisos para configurar endpoints de red que permitan que los servicios de tu entorno local u otros entornos de nube sean accesibles desdeGoogle Cloud mediante una combinación de IP:Port. Para obtener más información, ponte en contacto con el administrador de red de tu entorno.
    • Permisos para crear reglas de cortafuegos en tu entorno local u otros entornos de nube para permitir que las sondas de comprobación del estado de Google lleguen a los endpoints.

Además, para completar las instrucciones de esta página, debe crear un NEG de conectividad híbrida, un balanceador de carga y NEGs zonales (y sus endpoints) para que actúen como back-ends basados en Google Clouddel balanceador de carga.

Debes tener el rol de propietario o editor del proyecto, o bien los siguientes roles de gestión de identidades y accesos de Compute Engine.

Tarea Rol necesario
Crear redes, subredes y componentes de balanceador de carga Administrador de red de Compute (roles/compute.networkAdmin)
Añadir y eliminar reglas de cortafuegos Administrador de seguridad de Compute (roles/compute.securityAdmin)
Crear instancias Administrador de instancias de Compute (roles/compute.instanceAdmin)

Establecer una conectividad híbrida

Tu entorno Google Cloud y el entorno on-premise u otros entornos de nube deben conectarse mediante conectividad híbrida usando vinculaciones de VLAN de Cloud Interconnect o túneles de Cloud VPN con Cloud Router o VMs de dispositivo router. Te recomendamos que uses una conexión de alta disponibilidad.

Un Cloud Router habilitado con enrutamiento dinámico global obtiene información sobre el endpoint específico mediante el protocolo de pasarela fronteriza (BGP) y lo programa en tu Google Cloud red de VPC. No se admite el enrutamiento dinámico regional. Tampoco se admiten las rutas estáticas.

Puedes usar la misma red de VPC o una diferente en el mismo proyecto para configurar tanto la red híbrida (Cloud Interconnect, Cloud VPN o una VM de dispositivo Router) como el balanceador de carga. Ten en cuenta lo siguiente:

  • Si usas redes de VPC diferentes, las dos redes deben estar conectadas mediante el emparejamiento entre redes de VPC o deben ser radios de VPC en el mismo hub de Network Connectivity Center.

  • Si usas la misma red de VPC, asegúrate de que los intervalos CIDR de las subredes de tu red de VPC no entren en conflicto con los intervalos CIDR remotos. Cuando las direcciones IP se superponen, se priorizan las rutas de subred sobre la conectividad remota.

Para obtener instrucciones, consulta la siguiente documentación:

Configurar un entorno externo Google Cloud

Sigue estos pasos para configurar tu entorno local u otro entorno de nube para el balanceo de carga híbrido:

  • Configura los endpoints de red para exponer los servicios locales aGoogle Cloud (IP:Port).
  • Configura reglas de cortafuegos en tu entorno local u otro entorno de nube.
  • Configura Cloud Router para que anuncie determinadas rutas necesarias a tu entorno privado.

Configurar endpoints de red

Después de configurar la conectividad híbrida, configura uno o varios endpoints de red en tu entorno local u otros entornos de nube a los que se pueda acceder a través de Cloud Interconnect, Cloud VPN o el dispositivo Router mediante una combinación de IP:port. Esta IP:portcombinación se configura como uno o varios endpoints para el NEG de conectividad híbrida que se crea Google Cloud más adelante en este proceso.

Si hay varias rutas al endpoint IP, el enrutamiento sigue el comportamiento descrito en la descripción general de Cloud Router.

Configurar reglas de cortafuegos

Debes crear las siguientes reglas de cortafuegos en tu entorno local u otro entorno de nube:

  • Crea una regla de cortafuegos de entrada en un entorno local o en otra nube para permitir que el tráfico de la subred de solo proxy de la región llegue a los endpoints.
  • No es necesario permitir el tráfico de los intervalos de sondeo de comprobación del estado de Google para los NEGs híbridos. Sin embargo, si utilizas una combinación de NEGs híbridos y zonales en un mismo servicio de backend, debes permitir el tráfico de los intervalos de sondeo de comprobación de estado de Google para los NEGs zonales.

Configura Cloud Router para anunciar los siguientes intervalos de IP personalizados a tu entorno local u otro entorno de nube:

  • Intervalo de la subred de solo proxy de la región.

Configurar el entorno de Google Cloud

En los pasos siguientes, asegúrate de usar la misma red de VPC (llamada NETWORK en este procedimiento) que se usó para configurar la conectividad híbrida entre los entornos.

Además, asegúrate de que la región utilizada (denominada REGION en este procedimiento) sea la misma que la que se ha usado para crear el túnel de Cloud VPN o la vinculación de VLAN de Cloud Interconnect.

Configurar la subred de solo proxy

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

Consola

  1. En la Google Cloud consola, ve a la página Redes de VPC.
    Ve a Redes de VPC.
  2. Ve a la red que se usó para configurar la conectividad híbrida entre los entornos.
  3. Haz clic en Añadir subred.
  4. Escribe un nombre: PROXY_ONLY_SUBNET_NAME.
  5. Selecciona una región: REGION.
  6. En Propósito, selecciona Proxy gestionado regional.
  7. Introduce un intervalo de direcciones IP: PROXY_ONLY_SUBNET_RANGE.
  8. Haz clic en Añadir.

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

Configurar la subred del balanceador de carga

Esta subred se usa para crear los back-ends de NEG zonales del balanceador de carga, el frontend y la dirección IP interna.

consola de Cloud

  1. En la Google Cloud consola, ve a la página Redes de VPC.
    Ve a Redes de VPC.
  2. Ve a la red que se ha usado para configurar la conectividad híbrida entre los entornos.
  3. En la sección Subredes, haz lo siguiente:
    • Elige Personalizado en Modo de creación de subred.
    • En la sección Nueva subred, introduce la siguiente información:
      • Nombre: LB_SUBNET_NAME
      • Región: REGION
      • Intervalo 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 haya usado 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
    

Reservar la dirección IP del balanceador de carga

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

Consola

Puedes reservar una dirección IP interna independiente mediante la consolaGoogle Cloud .

  1. Ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Haz clic en la red que se ha usado para configurar la conectividad híbrida entre los entornos.
  3. Haz clic en Direcciones IP internas estáticas y, a continuación, en Reservar dirección estática.
  4. Escribe un nombre: LB_IP_ADDRESS.
  5. En Subred, selecciona LB_SUBNET_NAME.
  6. Si quieres especificar qué dirección IP quieres reservar, en Dirección IP estática, selecciona Permitirme elegir y, a continuación, introduce una Dirección IP personalizada. De lo contrario, el sistema asignará automáticamente una dirección IP de la subred.
  7. Si quieres usar esta dirección IP con varias reglas de reenvío, en Propósito, elige Compartida.
  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 compute addresses describe comando para ver la dirección IP asignada:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

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

Crear reglas de cortafuegos para NEGs de zona

En este ejemplo, se crean las siguientes reglas de cortafuegos para los back-ends de NEG zonal en Google Cloud:

  • fw-allow-health-check: una regla de entrada aplicable a las instancias que se están balanceando de carga, que permite el tráfico de los sistemas de comprobación del estadoGoogle 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 se debe aplicar. No es necesario permitir el tráfico de los intervalos de sondeo de comprobación del estado de Google para los NEGs híbridos. Sin embargo, si utilizas una combinación de NEGs híbridos y zonales en un mismo servicio de backend, debes permitir el tráfico de los intervalos de sondeo de comprobación de estado de Google para los NEGs zonales.
  • fw-allow-ssh: una regla de entrada que permite la conectividad SSH entrante en el puerto TCP 22 desde cualquier dirección. Puede elegir un intervalo de IPs de origen más restrictivo para esta regla. Por ejemplo, puede especificar solo los intervalos de IPs de los sistemas desde los que iniciará sesiones SSH. En este ejemplo se usa la etiqueta de destino allow-ssh para identificar las máquinas virtuales a las que se debe aplicar.
  • fw-allow-proxy-only-subnet: una regla de entrada que permite que las conexiones de la subred de solo proxy lleguen a los backends.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de cortafuegos.
    Ve a Políticas de cortafuegos
  2. Haz clic en Crear regla de cortafuegos para crear la regla que permita el tráfico de las sondas de comprobación del estado:
    1. Asigne un Nombre de fw-allow-health-check.
    2. En Red, selecciona NETWORK.
    3. En Objetivos, seleccione Etiquetas de destino especificadas.
    4. Rellene el campo Etiquetas de destino con allow-health-check.
    5. En Filtro de origen, elija Intervalos de IPv4.
    6. Asigna los valores 130.211.0.0/22 y 35.191.0.0/16 a Intervalos de IPv4 de origen.
    7. En Protocolos y puertos, selecciona Protocolos y puertos especificados.
    8. Selecciona TCP y, a continuación, introduce 80 como número de puerto.
    9. Haz clic en Crear.
  3. Vuelve a hacer clic en Crear regla de cortafuegos para crear la regla que permita las conexiones SSH entrantes:
    1. Nombre: fw-allow-ssh
    2. Red: NETWORK
    3. Prioridad: 1000
    4. Dirección del tráfico: entrada
    5. Acción tras coincidencia: permitir
    6. Destinos: etiquetas de destino especificadas
    7. Etiquetas de destino: allow-ssh
    8. Filtro de origen: Intervalos de IPv4
    9. Intervalos de IPv4 de origen: 0.0.0.0/0
    10. Protocolos y puertos: elige Protocolos y puertos especificados.
    11. Selecciona TCP y, a continuación, introduce 22 como número de puerto.
    12. Haz clic en Crear.
  4. Vuelve a hacer clic en Crear regla de cortafuegos para crear la regla que permita las conexiones entrantes de la subred de solo proxy:
    1. Nombre: fw-allow-proxy-only-subnet
    2. Red: NETWORK
    3. Prioridad: 1000
    4. Dirección del tráfico: entrada
    5. Acción tras coincidencia: permitir
    6. Destinos: etiquetas de destino especificadas
    7. Etiquetas de destino: allow-proxy-only-subnet
    8. Filtro de origen: Intervalos de IPv4
    9. Intervalos de IPv4 de origen: PROXY_ONLY_SUBNET_RANGE
    10. Protocolos y puertos: elige Protocolos y puertos especificados.
    11. Selecciona TCP y, a continuación, introduce 80 como número de puerto.
    12. Haz clic en Crear.

gcloud

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

    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 cortafuegos fw-allow-ssh para permitir la conectividad SSH a las VMs con la etiqueta de red allow-ssh. Si omite source-ranges, Google Cloud interpreta que la regla se aplica a 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 cortafuegos de entrada para la subred de solo proxy que permita que el balanceador de carga se comunique con las 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
    

Configurar el NEG de zona

En el caso de los back-ends basados en Google Cloud, le recomendamos que configure varios NEG zonales en la misma región en la que haya configurado la conectividad híbrida.

En este ejemplo, hemos configurado un NEG zonal (con puntos finales de tipo GCE_VM_IP_PORT) en la región REGION. Primero, crea las VMs en la zona GCP_NEG_ZONE. A continuación, crea un NEG por zonas en el mismo GCP_NEG_ZONE y añade los endpoints de red de las VMs al NEG.

Crear VMs

Consola

  1. Ve a la página Instancias de VM de la Google Cloud consola.
    Ir a instancias de VM
  2. Haz clic en Crear instancia.
  3. Asigna el valor vm-a1 a Nombre.
  4. En Región, elige REGION y, a continuación, selecciona cualquier zona. En este procedimiento, se hará referencia a este elemento como GCP_NEG_ZONE.
  5. En la sección Disco de arranque, asegúrate de que la opción Debian GNU/Linux 12 (bookworm) esté seleccionada para el disco de arranque. Haz clic en Elegir para cambiar la imagen si es necesario.
  6. Haz clic en Opciones avanzadas y haz los siguientes cambios:

    • Haz clic en Redes y añade las siguientes etiquetas de red: allow-ssh, allow-health-check y allow-proxy-only-subnet.
    • Haz clic en Editar en Interfaces de red y haz los siguientes cambios. A continuación, haz clic en Hecho:
      • Red: NETWORK
      • Subred: LB_SUBNET_NAME
      • IP interna principal: efímera (automática)
      • IP externa: efímera
    • Haz clic en Gestión. En el campo Startup script (Secuencia de comandos de inicio), copia y pega el siguiente contenido de la secuencia de comandos. El contenido de la secuencia de comandos es idéntico en las cuatro VMs:

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  7. Haz clic en Crear.

  8. Repite los pasos siguientes para crear una segunda máquina virtual con la siguiente combinación de nombre y zona:

    • Nombre: vm-a2, zona: GCP_NEG_ZONE

gcloud

Crea las VMs ejecutando el siguiente comando dos veces y usando estas combinaciones para el nombre de la VM y su zona. El contenido de la secuencia de comandos es idéntico en ambas máquinas virtuales.

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

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-12 \
        --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'
    

Crear el NEG de zona

Consola

Para crear un grupo de endpoints de red de zona, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haz clic en Crear grupo de endpoints de red.
  3. Introduce un nombre para el NEG zonal. En este procedimiento, se denomina GCP_NEG_NAME.
  4. Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red (por zonas).
  5. Selecciona Red: NETWORK
  6. Selecciona la Subred: LB_SUBNET_NAME
  7. Selecciona la Zona: GCP_NEG_ZONE
  8. Introduce el puerto predeterminado: 80.
  9. Haz clic en Crear.

Añade los endpoints al NEG de zona:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a Grupos de endpoints de red
  2. Haga clic en el Nombre del grupo de puntos finales de red creado en el paso anterior (GCP_NEG_NAME). Verá la página Detalles del grupo de puntos finales de red.
  3. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.
  4. Selecciona una instancia de VM para añadir sus direcciones IP internas como endpoints de red. En la sección Interfaz de red, se muestra el nombre, la zona y la subred de la máquina virtual.
  5. En el campo Dirección IPv4, introduce la dirección IPv4 del nuevo endpoint de red.
  6. Seleccione el Tipo de puerto.
    1. Si selecciona Predeterminado, el endpoint usará el puerto predeterminado 80 para todos los endpoints del grupo de endpoints de red. Esto es suficiente para nuestro ejemplo, ya que el servidor Apache sirve solicitudes en el puerto 80.
    2. Si seleccionas Personalizado, introduce el Número de puerto del endpoint que quieras usar.
  7. Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos anteriores.
  8. Una vez que hayas añadido todos los endpoints, haz clic en Crear.

gcloud

  1. Crea un NEG zonal (con GCE_VM_IP_PORT endpoints) con 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
    

    Puede especificar un --default-port al crear el NEG o especificar un número de puerto para cada endpoint, como se muestra en el paso siguiente.

  2. Añade puntos finales 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'
    

Configurar el NEG de conectividad híbrida

Al crear el NEG, usa una ZONEque minimice la distancia geográfica entre Google Cloud y tu entorno on-premise u otro entorno de nube. Por ejemplo, si alojas un servicio en un entorno local en Fráncfort (Alemania), puedes especificar la zona europe-west3-a Google Cloud al crear el NEG.

Además, si usas Cloud Interconnect, el ZONE que se utilice para crear el NEG debe estar en la misma región en la que se haya configurado el adjunto de Cloud Interconnect.

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

Consola

Para crear un grupo de endpoints de red de conectividad híbrida, sigue estos pasos:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a Grupos de puntos finales de red
  2. Haz clic en Crear grupo de endpoints de red.
  3. Introduce un nombre para el NEG híbrido. En este procedimiento, se denomina ON_PREM_NEG_NAME.
  4. Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red de conectividad híbrida (por zonas).
  5. Selecciona la red: NETWORK
  6. Selecciona la Subred: LB_SUBNET_NAME.
  7. Selecciona la Zona: ON_PREM_NEG_ZONE
  8. Introduce el puerto predeterminado.
  9. Primero, haz clic en Crear.

Añade endpoints al NEG de conectividad híbrida:

  1. Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
    Ve a la página Grupos de puntos finales de red
  2. Haga clic en el Nombre del grupo de endpoints de red creado en el paso anterior (ON_PREM_NEG_NAME). Verá la página Detalles del grupo de endpoints de red.
  3. En la sección Puntos finales de red de este grupo, haz clic en Añadir punto final de red. Verás la página Añadir punto final de red.
  4. Introduce la dirección IP del nuevo endpoint de red.
  5. Seleccione el Tipo de puerto.
    1. Si seleccionas Predeterminado, el endpoint usará el puerto predeterminado para todos los endpoints del grupo de endpoints de red.
    2. Si selecciona Personalizado, puede introducir otro Número de puerto para que lo use el endpoint.
  6. Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos anteriores.
  7. Una vez que hayas añadido todos los endpoints que no seanGoogle Cloud , haz clic en Crear.

gcloud

  1. Crea un NEG de conectividad híbrida con 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. Añade el endpoint de la VM 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 añadir los endpoints de red que hayas configurado anteriormente de forma local o en tu entorno de nube. Repite --add-endpoint tantas veces como sea necesario.

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

Configurar el balanceador de carga

Consola

gcloud

  1. Crea una comprobación del estado para los backends.
       gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
           --region=REGION \
           --use-serving-port
       
    Las exploraciones de comprobación del estado de los backends de NEG híbrido proceden de los proxies de Envoy de la subred solo de proxy, mientras que las exploraciones de los backends de NEG zonales proceden de los [intervalos de IPs de exploración centrales de Google](/load-balancing/docs/health-check-concepts#ip-ranges).
  2. Crea un servicio de backend para backends basados en Google Cloud. Añade tanto el NEG zonal como 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. Añade el NEG zonal como 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
    
    Para obtener información sobre cómo configurar el modo de balanceo, consulta la documentación de la CLI de gcloud sobre el parámetro --max-rate-per-endpoint.
  4. Añade el NEG híbrido como 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
    
    Para obtener información sobre cómo configurar el modo de balanceo, consulta la documentación de la CLI de gcloud sobre el parámetro --max-rate-per-endpoint.
  5. Crea un mapa de URLs 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 carga. No es necesario para los balanceadores de carga HTTP.

    Puedes crear certificados de Compute Engine o de Certificate Manager. Utiliza cualquiera de los siguientes métodos para crear certificados con Certificate Manager:

    Una vez que hayas creado los certificados, adjúntalos directamente al proxy de destino.

    Para crear un recurso de certificado SSL autogestionado de Compute Engine, sigue estos pasos:
    gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
        --certificate CRT_FILE_PATH \
        --private-key KEY_FILE_PATH
    
  7. Crea un proxy HTTP(S) de destino para enrutar las solicitudes a tu mapa de URLs.

    En el caso de un balanceador de carga 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
    
    En el caso de un balanceador de carga HTTPS, crea un proxy HTTPS de destino. El proxy es la parte del balanceador de carga que contiene el certificado SSL para el balanceo de carga HTTPS, por lo que también debes cargar tu 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
    
  8. Crea una regla de reenvío para dirigir las solicitudes entrantes al proxy. No uses la subred de solo proxy para crear la regla de reenvío.

    En el caso de un balanceador de carga HTTP:
      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
    
    En el caso de un balanceador de carga HTTPS:
      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
    

Conectar tu dominio a tu balanceador de carga

Una vez creado el balanceador de carga, anota la dirección IP asociada a él. Por ejemplo, 30.90.80.100. Para dirigir tu dominio a tu balanceador de carga, crea un registro A con tu servicio de registro de dominios. Si has añadido varios dominios a tu certificado SSL, debes añadir un registro A para cada uno de ellos, todos apuntando a la dirección IP del balanceador de carga. Por ejemplo, para crear registros A de 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 el artículo sobre cómo añadir, modificar y eliminar registros.

Probar el balanceador de carga

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

Crear una VM cliente

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

Consola

  1. Ve a la página Instancias de VM de la Google Cloud consola.
    Ir a instancias de VM
  2. Haz clic en Crear instancia.
  3. Asigna el valor vm-client a Nombre.
  4. En Zona, elija CLIENT_VM_ZONE.
  5. Haz clic en Opciones avanzadas y haz los siguientes cambios:
    • Haz clic en Redes y añade allow-ssh a Etiquetas de red.
    • Haz clic en el botón de edición situado debajo de Interfaces de red y haz los siguientes cambios. A continuación, haz clic en Hecho:
      • 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 cliente puede estar en cualquier zona de la misma región que el balanceador de carga y puede usar cualquier subred de esa región. En este ejemplo, el cliente está en la zona CLIENT_VM_ZONE y usa la misma subred que las VMs de backend.

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

Enviar tráfico al balanceador de carga

Ahora que has configurado el balanceador de carga, puedes empezar a enviar tráfico a la dirección IP del balanceador de carga.

  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 carga. Usa el compute addresses describe comando para ver la dirección IP asignada:

    gcloud compute addresses describe l7-ilb-ip-address \
      --region=us-west1
    
  3. Verifica que el balanceador de carga esté sirviendo los nombres de host de backend correctamente. Sustituye IP_ADDRESS por la dirección IP del balanceador de carga.

    Para probar HTTP, ejecuta lo siguiente:

    curl IP_ADDRESS
    

    Para probar HTTPS, ejecuta lo siguiente:

  curl -k -s 'https://DOMAIN_NAME:443' --connect-to DOMAIN_NAME:443:IP_ADDRESS:443
  

Sustituye DOMAIN_NAME por el nombre de dominio de tu aplicación. Por ejemplo, test.example.com.

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

Para probar los endpoints que no son deGoogle Cloud , debes tener en cuenta el servicio que has expuesto a través del endpoint de NEG híbrido.

Opciones de configuración adicionales

En esta sección se amplía el ejemplo de configuración para ofrecer opciones de configuración alternativas y adicionales. Todas las tareas son opcionales. Puedes realizarlas en el orden que prefieras.

Actualizar el tiempo de espera de keep-alive HTTP del cliente

El balanceador de carga creado en los pasos anteriores se ha configurado con un valor predeterminado para el tiempo de espera de keep-alive HTTP del cliente.

Para actualizar el tiempo de espera de keep-alive HTTP del cliente, sigue estas instrucciones.

Consola

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

    Ve a Balanceo de carga.

  2. Haga clic en el nombre del balanceador de carga que quiera modificar.
  3. Haz clic en Editar.
  4. Haz clic en Configuración de frontend.
  5. Despliega Funciones avanzadas. En Tiempo de espera de HTTP Keep-Alive, introduce un valor de tiempo de espera.
  6. Haz clic en Actualizar.
  7. Para revisar los cambios, haz clic en Revisar y finalizar y, a continuación, en Actualizar.

gcloud

En el caso de un balanceador de carga HTTP, actualiza el proxy HTTP de destino con el comando gcloud compute target-http-proxies update.

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --region=REGION
      

En el caso de un balanceador de carga HTTPS, actualice el proxy HTTPS de destino con el comando gcloud compute target-https-proxies update.

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
          --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
          --region REGION
      

Haz los cambios siguientes:

  • TARGET_HTTP_PROXY_NAME: nombre del proxy HTTP de destino.
  • TARGET_HTTPS_PROXY_NAME: nombre del proxy HTTPS de destino.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC: el valor del tiempo de espera de HTTP Keep-Alive de 5 a 600 segundos.

Siguientes pasos