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:
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
- Permisos para establecer la conectividad híbrida entre Google Cloud y tu entorno on-premise u otros entornos de nube. Para ver la lista de permisos necesarios, consulta la documentación del producto de conectividad de red correspondiente.
- Permisos para crear un NEG de conectividad híbrida y el balanceador de carga.
El rol Administrador de balanceadores de carga de Compute
(
roles/compute.loadBalancerAdmin
) contiene los permisos necesarios para realizar las tareas descritas en esta guía.
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.
- 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
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:port
combinació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.
Anunciar rutas
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
- En la Google Cloud consola, ve a la página Redes de VPC.
Ve a Redes de VPC. - Ve a la red que se usó para configurar la conectividad híbrida entre los entornos.
- Haz clic en Añadir subred.
- Escribe un nombre: PROXY_ONLY_SUBNET_NAME.
- Selecciona una región: REGION.
- En Propósito, selecciona Proxy gestionado regional.
- Introduce un intervalo de direcciones IP: PROXY_ONLY_SUBNET_RANGE.
- 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
- En la Google Cloud consola, ve a la página Redes de VPC.
Ve a Redes de VPC. - Ve a la red que se ha usado para configurar la conectividad híbrida entre los entornos.
- 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.
- Haz clic en Crear.
gcloud
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 .
- Ve a la página Redes de VPC.
- Haz clic en la red que se ha usado para configurar la conectividad híbrida entre los entornos.
- Haz clic en Direcciones IP internas estáticas y, a continuación, en Reservar dirección estática.
- Escribe un nombre: LB_IP_ADDRESS.
- En Subred, selecciona LB_SUBNET_NAME.
- 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.
- Si quieres usar esta dirección IP con varias reglas de reenvío, en Propósito, elige Compartida.
- Haz clic en Reservar para finalizar el proceso.
gcloud
Con la CLI de gcloud, ejecuta el comando
compute addresses create
:gcloud compute addresses create LB_IP_ADDRESS \ --region=REGION \ --subnet=LB_SUBNET_NAME \
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
y35.191.0.0/16
). En este ejemplo, se usa la etiqueta de destinoallow-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 destinoallow-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
- En la Google Cloud consola, ve a la página Políticas de cortafuegos.
Ve a Políticas de cortafuegos - Haz clic en Crear regla de cortafuegos para crear la regla que permita el tráfico de las sondas de comprobación del estado:
- Asigne un Nombre de
fw-allow-health-check
. - En Red, selecciona NETWORK.
- En Objetivos, seleccione Etiquetas de destino especificadas.
- Rellene el campo Etiquetas de destino con
allow-health-check
. - En Filtro de origen, elija Intervalos de IPv4.
- Asigna los valores
130.211.0.0/22
y35.191.0.0/16
a Intervalos de IPv4 de origen. - En Protocolos y puertos, selecciona Protocolos y puertos especificados.
- Selecciona TCP y, a continuación, introduce
80
como número de puerto. - Haz clic en Crear.
- Asigne un Nombre de
- Vuelve a hacer clic en Crear regla de cortafuegos para crear la regla que permita las conexiones SSH entrantes:
- Nombre:
fw-allow-ssh
- Red: NETWORK
- Prioridad:
1000
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
allow-ssh
- Filtro de origen: Intervalos de IPv4
- Intervalos de IPv4 de origen:
0.0.0.0/0
- Protocolos y puertos: elige Protocolos y puertos especificados.
- Selecciona TCP y, a continuación, introduce
22
como número de puerto. - Haz clic en Crear.
- Nombre:
- Vuelve a hacer clic en Crear regla de cortafuegos para crear la regla que permita las conexiones entrantes de la subred de solo proxy:
- Nombre:
fw-allow-proxy-only-subnet
- Red: NETWORK
- Prioridad:
1000
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
allow-proxy-only-subnet
- Filtro de origen: Intervalos de IPv4
- Intervalos de IPv4 de origen: PROXY_ONLY_SUBNET_RANGE
- Protocolos y puertos: elige Protocolos y puertos especificados.
- Selecciona TCP y, a continuación, introduce
80
como número de puerto. - Haz clic en Crear.
- Nombre:
gcloud
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 TCP80
: Google Cloudgcloud 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
Crea la regla de cortafuegos
fw-allow-ssh
para permitir la conectividad SSH a las VMs con la etiqueta de redallow-ssh
. Si omitesource-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
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
- Ve a la página Instancias de VM de la Google Cloud consola.
Ir a instancias de VM - Haz clic en Crear instancia.
- Asigna el valor
vm-a1
a Nombre. - 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.
- 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.
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
yallow-proxy-only-subnet
. - Haz clic en Editar
- Red: NETWORK
- Subred: LB_SUBNET_NAME
- IP interna principal: efímera (automática)
- IP externa: efímera
en Interfaces de red y haz los siguientes cambios. A continuación, haz clic en Hecho:
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
- Haz clic en Redes y añade las siguientes etiquetas de red:
Haz clic en Crear.
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
- Nombre:
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_ZONEgcloud 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:
- 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 - Haz clic en Crear grupo de endpoints de red.
- Introduce un nombre para el NEG zonal. En este procedimiento, se denomina GCP_NEG_NAME.
- Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red (por zonas).
- Selecciona Red: NETWORK
- Selecciona la Subred: LB_SUBNET_NAME
- Selecciona la Zona: GCP_NEG_ZONE
- Introduce el puerto predeterminado:
80
. - Haz clic en Crear.
Añade los endpoints al NEG de zona:
- Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
Ve a Grupos de endpoints de red - 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.
- 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.
- 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.
- En el campo Dirección IPv4, introduce la dirección IPv4 del nuevo endpoint de red.
- Seleccione el Tipo de puerto.
- 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 puerto80
. - Si seleccionas Personalizado, introduce el Número de puerto del endpoint que quieras usar.
- Si selecciona Predeterminado, el endpoint usará el puerto predeterminado
- Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos anteriores.
- Una vez que hayas añadido todos los endpoints, haz clic en Crear.
gcloud
Crea un NEG zonal (con
GCE_VM_IP_PORT
endpoints) con el comandogcloud 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.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:
- Ve a la página Grupos de puntos finales de red de la Google Cloud consola.
Ve a Grupos de puntos finales de red - Haz clic en Crear grupo de endpoints de red.
- Introduce un nombre para el NEG híbrido. En este procedimiento, se denomina ON_PREM_NEG_NAME.
- Selecciona el Tipo de grupo de puntos finales de red: Grupo de puntos finales de red de conectividad híbrida (por zonas).
- Selecciona la red: NETWORK
- Selecciona la Subred: LB_SUBNET_NAME.
- Selecciona la Zona: ON_PREM_NEG_ZONE
- Introduce el puerto predeterminado.
- Primero, haz clic en Crear.
Añade endpoints al NEG de conectividad híbrida:
- 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 - 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.
- 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.
- Introduce la dirección IP del nuevo endpoint de red.
- Seleccione el Tipo de puerto.
- Si seleccionas Predeterminado, el endpoint usará el puerto predeterminado para todos los endpoints del grupo de endpoints de red.
- Si selecciona Personalizado, puede introducir otro Número de puerto para que lo use el endpoint.
- Para añadir más endpoints, haz clic en Añadir endpoint de red y repite los pasos anteriores.
- Una vez que hayas añadido todos los endpoints que no seanGoogle Cloud , haz clic en Crear.
gcloud
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
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
- Crea una comprobación del estado
para los backends.
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).gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=REGION \ --use-serving-port
- 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
- Añade el NEG zonal como backend al servicio de backend.
Para obtener información sobre cómo configurar el modo de balanceo, consulta la documentación de la CLI de gcloud sobre el parámetrogcloud 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
--max-rate-per-endpoint
. - Añade el NEG híbrido como backend al servicio de backend.
Para obtener información sobre cómo configurar el modo de balanceo, consulta la documentación de la CLI de gcloud sobre el parámetrogcloud 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
--max-rate-per-endpoint
. - 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
- 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:
- Certificados autogestionados regionales. Para obtener información sobre cómo crear y usar certificados regionales autogestionados, consulta Implementar un certificado regional autogestionado. No se admiten mapas de certificados.
Certificados gestionados por Google regionales. No se admiten mapas de certificados.
Certificate Manager admite los siguientes tipos de certificados regionales gestionados por Google:
- Certificados regionales gestionados por Google con autorización de DNS por proyecto. Para obtener más información, consulta el artículo sobre cómo desplegar un certificado regional gestionado por Google con autorización de DNS.
- Certificados privados gestionados por Google regionales con el Servicio de Autoridades de Certificación. Para obtener más información, consulta el artículo sobre cómo implementar un certificado regional gestionado por Google con el Servicio de Autoridades de Certificación.
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
- 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: 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-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=REGION \ --region=REGION
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 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: En el caso de un balanceador de carga HTTPS: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
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
- Ve a la página Instancias de VM de la Google Cloud consola.
Ir a instancias de VM - Haz clic en Crear instancia.
- Asigna el valor
vm-client
a Nombre. - En Zona, elija CLIENT_VM_ZONE.
- 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
- Haz clic en Redes y añade
- 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.
Usa SSH para conectarte a la instancia de cliente.
gcloud compute ssh client-vm \ --zone=CLIENT_VM_ZONE
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
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
En la Google Cloud consola, ve a la página Balanceo de carga.
- Haga clic en el nombre del balanceador de carga que quiera modificar.
- Haz clic en Editar.
- Haz clic en Configuración de frontend.
- Despliega Funciones avanzadas. En Tiempo de espera de HTTP Keep-Alive, introduce un valor de tiempo de espera.
- Haz clic en Actualizar.
- 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
- Convertir un balanceador de carga de aplicaciones a IPv6
- Limpiar la configuración del balanceador de carga