En este documento, se muestran dos opciones de configuración de muestra para un balanceador de cargas de aplicaciones regional externo en un entorno de VPC compartida:
- En el primer ejemplo, se crean todos los componentes y backends del balanceador de cargas en un proyecto de servicio.
- En el segundo ejemplo, se crean los componentes de frontend y el mapa de URL del balanceador de cargas en un proyecto de servicio, mientras que el servicio de backend y los backends del balanceador de cargas se crean en un proyecto de servicio diferente. Este tipo de implementación, en el que el mapa de URL hace referencia a un servicio de backend en otro proyecto, se conoce como referencia de servicio entre proyectos.
Ambos ejemplos requieren la misma configuración inicial para otorgar permisos y configurar la VPC compartida antes de que puedas comenzar a crear balanceadores de cargas.
Estas no son las únicas opciones de configuración de VPC compartida compatibles con el balanceador de cargas de aplicaciones externo regional. Para obtener más información sobre otras arquitecturas válidas de VPC compartida, consulta Arquitecturas de VPC compartida.
Si no deseas usar una red de VPC compartida, consulta Configura un balanceador de cargas de aplicaciones externo regional con backends de grupos de instancias de VM.
Antes de comenzar
- Lee la Descripción general de la VPC compartida.
- Lee la Descripción general del balanceador de cargas de aplicaciones externo, incluida la sección Arquitecturas de VPC compartida.
Permisos necesarios
La configuración de un balanceador de cargas en una red de VPC compartida requiere cierta configuración y aprovisionamiento iniciales por parte de un administrador. Después de la configuración inicial, el propietario de un proyecto de servicio puede realizar una de las siguientes acciones:
- Implementar todos los componentes del balanceador de cargas y sus backends en un proyecto de servicio.
- Implementar los componentes de backend del balanceador de cargas (backend y servicio de backend) en proyectos de servicio a los que puede hacer referencia un mapa de URL en otro servicio o proyecto host.
En esta sección, se resumen los permisos necesarios para seguir esta guía a fin de configurar un balanceador de cargas en una red de VPC compartida.
Configura la VPC compartida
Se requieren los siguientes roles para las siguientes tareas:
- Realizar tareas administrativas únicas, como configurar la VPC compartida y habilitar un proyecto host.
- Realizar tareas administrativas que se deben repetir cada vez que desees incorporar un proyecto de servicio nuevo. Esto incluye conectar el proyecto de servicio, aprovisionar y configurar recursos de red, y otorgar acceso al administrador del proyecto de servicio.
Estas tareas deben realizarse en el proyecto host de la VPC compartida. Recomendamos que el administrador de la VPC compartida también sea el propietario del proyecto host de la VPC compartida. Esto otorga de forma automática las funciones de administrador de red y administrador de seguridad.
Tarea | Función requerida |
---|---|
Configurar la VPC compartida, habilitar el proyecto host y otorgar acceso a los administradores del proyecto de servicio | Administrador de VPC compartida |
Crea subredes en el proyecto host de VPC compartida y otorga acceso a los administradores del proyecto de servicio | Administrador de redes |
Agrega y quita reglas de firewall | Administrador de seguridad |
Después de que se aprovisionan las subredes, el propietario del proyecto host debe otorgar el rol de usuario de red en el proyecto host a cualquier persona (generalmente, desarrolladores, administradores del proyecto de servicio o cuentas de servicio) que necesite usar estos recursos.
Tarea | Función requerida |
---|---|
Usar redes y subredes de VPC que pertenezcan al proyecto host | Usuario de red |
Esta función se puede otorgar a nivel de proyecto o para subredes individuales. Se recomienda que otorgues la función en subredes individuales. Otorgar el rol en el proyecto proporciona acceso a todas las subredes actuales y futuras en la red de VPC del proyecto host.
Implementa un balanceador de cargas y backends
Los administradores de proyectos de servicio necesitan los siguientes roles en el proyecto de servicio para crear recursos y backends de balanceo de cargas. Estos permisos se otorgan automáticamente al propietario o editor del proyecto de servicio.
Tarea | Función requerida |
---|---|
Crear componentes del balanceador de cargas | Administrador de redes |
Crea instancias | Administrador de instancias |
Crear y modificar certificados SSL | Administrador de seguridad |
Requisitos previos
En esta sección, debes realizar los siguientes pasos:
- Configurar la red y las subredes en el proyecto host
- Configurar la VPC compartida en el proyecto host.
No es necesario realizar los pasos de esta sección cada vez que quieras crear un balanceador de cargas nuevo. Sin embargo, debes asegurarte de tener acceso a los recursos descritos aquí antes de continuar con la creación del balanceador de cargas.
Configura la red y las subredes en el proyecto host
Necesitas una red de VPC compartida con dos subredes: una para el frontend y los backends del balanceador de cargas una para los proxies del balanceador de cargas.En este ejemplo, se usan las siguientes subredes, red y región:
Red. La red se llama
lb-network
.Subred para el frontend y los backends del balanceador de cargas. Una subred llamada
lb-frontend-and-backend-subnet
en la regiónus-west1
usa10.1.2.0/24
para su rango de IP principal.Subred para proxies. Una subred llamada
proxy-only-subnet
en la regiónus-west1
usa10.129.0.0/23
en su rango de IP principal.
Configura la subred para el frontend y los backends del balanceador de cargas
No es necesario realizar este paso cada vez que quieras crear un balanceador de cargas nuevo. Solo debes asegurarte de que el proyecto de servicio tenga acceso a una subred en la red de VPC compartida (además de la subred de solo proxy).Todos los pasos de esta sección deben realizarse en el proyecto host.
Console
- En la consola de Google Cloud, ve a la página Redes de VPC.
- Haz clic en Crear red de VPC.
- En Nombre, ingresa
lb-network
. En la sección Subredes:
- Configura el Modo de creación de subred como Personalizado.
En la sección Subred nueva, ingresa la siguiente información:
- Nombre:
lb-frontend-and-backend-subnet
Región:
us-west1
Rangos de direcciones IP:
10.1.2.0/24
- Nombre:
Haz clic en Listo.
Haz clic en Crear.
gcloud
Crea una red de VPC con el comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crea una subred en la red
lb-network
en la regiónus-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet
--network=lb-network
--range=10.1.2.0/24
--region=us-west1
Terraform
Crea una red de VPC:
Crea una subred en la región
us-west1
:
Configura la subred de solo proxy
Todos los balanceadores de cargas regionales basados en Envoy usan la subred de solo proxy en la región us-west1
, en la red de VPC lb-network
. Solo puede haber una subred de solo proxy activa por región y por red.
No realices este paso si ya hay una subred de solo proxy reservada en la región us-west1
de esta red.
Todos los pasos de esta sección deben realizarse en el proyecto host.
Console
- En la consola de Google Cloud, ve a la página Redes de VPC.
- Haz clic en el nombre de la red de VPC compartida:
lb-network
. - Haz clic en Agregar subred.
- En Nombre, ingresa
proxy-only-subnet
. - En Región, selecciona
us-west1
. - Configura Propósito como Proxy administrado regional.
- En Rango de direcciones IP, ingresa
10.129.0.0/23
. - Haz 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 \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Terraform
Crea la subred de solo proxy:
Otorga a los administradores de proyectos de servicio acceso a la subred de backend
Los administradores de proyectos de servicio requieren acceso a la subredlb-frontend-and-backend-subnet
para poder aprovisionar los backends del balanceador de cargas.
Un administrador de VPC compartida debe otorgar acceso a la subred de backend a los administradores del proyecto de servicio (o desarrolladores que implementan recursos y backends que usan la subred). Si deseas obtener instrucciones, consulta Administradores de proyectos de servicio para algunas subredes.
Configura reglas de firewall en el proyecto host
En este ejemplo, se usan las siguientes reglas de firewall:fw-allow-health-check
. Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite el tráfico de TCP de los sistemas de verificación de estado de Google Cloud (en130.211.0.0/22
y35.191.0.0/16
). En este ejemplo, se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que debe aplicarse.
fw-allow-proxies
. Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite el tráfico de TCP en los puertos80
,443
y8080
desde los proxies administrados del balanceador de cargas. En este ejemplo, se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que se debe aplicar.
Todos los pasos de esta sección deben realizarse en el proyecto host.
Console
En la consola de Google Cloud, ve a la página Políticas de firewall.
- Haz clic en Crear regla de firewall para crear la regla que permitirá las verificaciones de estado de Google Cloud:
- Nombre:
fw-allow-health-check
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción si hay coincidencia: permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de fuente: Rangos de IPv4
- Rangos de IPv4 de origen:
130.211.0.0/22
y35.191.0.0/16
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Marca TCP e ingresa
80
para el número de puerto.
Como práctica recomendada, limita esta regla solo a los protocolos y puertos que coincidan con los que usa tu verificación de estado. Si usas
tcp:80
en el protocolo y el puerto, Google Cloud puede usar HTTP en el puerto80
a fin de contactar las VMs, pero no puede usar HTTPS en el puerto443
para comunicarse con ellas. - Haz clic en Crear.
- Haz clic en Crear regla de firewall para crear la regla que permitirá las verificaciones de estado de Google Cloud:
- Nombre:
fw-allow-proxies
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción si hay coincidencia: permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de fuente: Rangos de IPv4
- Rangos de IPv4 de origen:
10.129.0.0/23
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Marca TCP e ingresa
80, 443, 8080
para los números de puerto.
- Haz clic en Crear.
gcloud
Crea la regla de firewall
fw-allow-health-check
para permitir las verificaciones de estado de Google Cloud. Este ejemplo permite todo el tráfico de TCP proveniente de la verificación de estado. Sin embargo, puedes configurar un conjunto más limitado de puertos para satisfacer tus necesidades.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp
Crea la regla de firewall
fw-allow-proxies
para permitir que el tráfico de la subred de solo proxy de Envoy llegue a tus backends.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Terraform
Crea una regla de firewall para permitir las verificaciones de estado de Google Cloud.
Crea una regla de firewall para permitir que el tráfico de la subred de solo proxy de Envoy llegue a tus backends.
Configura la VPC compartida en el proyecto host
Este paso implica habilitar un proyecto host de VPC compartida, compartir subredes del proyecto host y conectar proyectos de servicio al proyecto host para que los proyectos de servicio puedan usar la red de VPC compartida. Para configurar una VPC compartida en el proyecto host, consulta las siguientes páginas:
En el resto de estas instrucciones, se supone que ya configuraste una VPC compartida. Esto incluye configurar políticas de IAM para tu organización y designar los proyectos host y de servicio.
No continúes hasta configurar la VPC compartida y habilitado los proyectos host y de servicio.
Después de completar los pasos definidos en esta sección de requisitos previos, puedes realizar una de las siguientes configuraciones:
Configura un balanceador de cargas en el proyecto de servicio
Configura un balanceador de cargas con un servicio de backend entre proyectos
Configura un balanceador de cargas en el proyecto de servicio
En este ejemplo, se crea un balanceador de cargas de aplicaciones regional externo en el que todos los componentes de balanceo de cargas (regla de reenvío, proxy de destino, mapa de URL y servicio de backend) se crean en el proyecto de servicio.
Los recursos de herramientas de redes del balanceador de cargas de aplicaciones externo regional, como la subred de solo proxy y la subred para las instancias de backend, se crean en el proyecto host. Las reglas de firewall para las instancias de backend también se crean en el proyecto host.
En esta sección, se muestra cómo configurar el balanceador de cargas y los backends. Estos pasos debe realizarlos el administrador del proyecto de servicio (o un desarrollador que opera dentro del proyecto de servicio) y no requieren participación del administrador del proyecto host. Los pasos de esta sección son muy similares a los pasos estándar para configurar balanceadores de cargas de aplicaciones externos regionales.
En el ejemplo de esta página, se configura de manera explícita una dirección IP reservada para la regla de reenvío del balanceador de cargas de aplicaciones externo regional, en lugar de permitir que se asigne una dirección IP efímera. Recomendamos reservar direcciones IP para las reglas de reenvío.
Crea un backend de grupo de instancias administrado
En esta sección, se muestra cómo crear una plantilla de instancias y un backend de grupo de instancias administrado. Las cargas del tráfico de los clientes se balancean a las VM de estos grupos de instancias.
Console
Crea una plantilla de instancias. En la consola de Google Cloud, ve a la página Plantillas de instancia.
- Haz clic en Crear plantilla de instancias.
- En Nombre, ingresa
l7-xlb-backend-template
. - Asegúrate de que el disco de arranque esté configurado como
una imagen de Debian, como
Debian GNU/Linux 12 (bookworm). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como
apt-get
. Si necesitas cambiar el Disco de arranque, haz clic en Cambiar.- En Sistema operativo, selecciona Debian.
- En Versión, selecciona una de las imágenes de Debian disponibles, como Debian GNU/Linux 12 (bookworm).
- Haz clic en Seleccionar.
- Haz clic en Opciones avanzadas y, luego, en Herramientas de redes.
- Ingresa las siguientes Etiquetas de red:
load-balanced-backend
. - En Interfaces de red, selecciona Redes compartidas conmigo (del proyecto host: HOST_PROJECT_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. Haz clic en Administración. En Administración, inserta la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio.
#! /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 Crear.
Cree un grupo de instancias administrado. En la consola de Google Cloud, ve a la página Grupos de instancias.
- Haga clic en Crear grupo de instancias.
- Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG con o sin estado.
- En Nombre, ingresa
l7-xlb-backend-example
. - En Ubicación, selecciona Zona única.
- En Región, selecciona us-west1.
- En Zona, selecciona us-west1-a.
- En Plantilla de instancias, selecciona
l7-xlb-backend-template
. Especifica la cantidad de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones en Ajuste de escala automático:
- En Modo de ajuste de escala automático, selecciona
Off:do not autoscale
. - En Cantidad máxima de instancias, ingresa
2
.
De manera opcional, en la sección de Ajuste de escala automático, puedes configurar el grupo de instancias para que agregue o quite instancias de forma automática en función del uso de CPU de la instancia.
- En Modo de ajuste de escala automático, selecciona
Haz clic en Crear.
gcloud
En las instrucciones de gcloud
que se incluyen en esta guía, se supone que usas Cloud Shell o algún otro entorno con bash instalado.
Crea una plantilla de instancias de VM con el servidor de HTTP con el comando
gcloud compute instance-templates create
.gcloud compute instance-templates create l7-xlb-backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --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' \ --project=SERVICE_PROJECT_ID
Crea un grupo de instancias administrado en la zona con el comando
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create l7-xlb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-xlb-backend-template \ --project=SERVICE_PROJECT_ID
Reserva la dirección IP del balanceador de cargas en el proyecto de servicio
Reserva una dirección IP externa estática regional para el balanceador de cargas en el proyecto de servicio.
Todos los pasos de esta sección deben realizarse en el proyecto host.
Console
En la consola de Google Cloud, ve a la página Reserva una dirección estática.
Elige un nombre para la dirección nueva.
En Nivel de servicio de red, selecciona Estándar.
Para Versión de la IP, selecciona IPv4. Las direcciones IPv6 solo pueden ser globales y solo se pueden usar con balanceadores de cargas globales.
En Tipo, selecciona Regional.
En Región, selecciona
us-west1
.Deja la opción Conectado a configurada en Ninguna. Después de crear el balanceador de cargas, esta dirección IP se adjunta a la regla de reenvío del balanceador de cargas.
Para reservar la dirección IP, haz clic en Reservar.
gcloud
Para reservar una dirección IP externa estática, usa el comando compute addresses create
.
gcloud compute addresses create IP_ADDRESS_NAME \ --region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Reemplaza lo siguiente:
IP_ADDRESS_NAME
: el nombre que quieres asignar a esta dirección IP.SERVICE_PROJECT_ID
: el ID del proyecto de servicio en el que se crea el balanceador de cargas.
Configura el balanceador de cargas
En esta sección, se muestra cómo crear los siguientes recursos regionales del balanceador de cargas de aplicaciones:
- Verificación de estado de HTTP
- Servicio de backend con un grupo de instancias administrado como backend
- Un mapa de URL
- Certificado SSL (obligatorio solo para HTTPS)
- Proxy de destino
- Regla de reenvío
Disponibilidad del proxy
Según la cantidad de proyectos de servicio que usen la misma red de VPC compartida, podrías alcanzar cuotas o límites más rápido que en el modelo de implementación de redes en el que cada proyecto de Google Cloud aloja su propia red.
Por ejemplo, a veces las regiones de Google Cloud no tienen suficiente capacidad de proxy para un balanceador de cargas de aplicaciones externo regional nuevo. Si esto sucede, la consola de Google Cloud muestra un mensaje de advertencia de disponibilidad del proxy cuando creas el balanceador de cargas. Para resolver este problema, puedes realizar una de las siguientes acciones:
- Espera a que se resuelva el problema de capacidad.
Comunicarte con tu equipo de ventas de Google Cloud para aumentar estos límites
Console
Cambia el contexto al proyecto de servicio
- En la consola de Google Cloud, ve a la página Panel.
- Haz clic en la lista Seleccionar de en la parte superior de la página. En la ventana Seleccionar una opción que aparece, selecciona el proyecto de servicio en el que deseas crear el balanceador de cargas.
Inicia tu configuración
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones (HTTP/HTTPS) y haz clic en Siguiente.
- En Orientado al público o interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
- En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Para el Nombre del balanceador de cargas, ingresa
l7-xlb-shared-vpc
. - Para la Región, selecciona us-west1.
En Red, selecciona lb-network (de Proyecto: HOST_PROJECT_ID).
Si ves una advertencia sobre la subred de solo proxy que se requiere en la red de VPC compartida, confirma que el administrador del proyecto host haya creado
proxy-only-subnet
en la regiónus-west1
en la red de VPC compartidalb-network
. La creación del balanceador de cargas tendrá éxito incluso si no tienes permiso para ver la subred de solo proxy en esta página.Mantén la página abierta para continuar.
Configura el frontend
Para HTTP:
- Haz clic en Configuración de frontend.
- Haz clic en Agregar IP y puerto de frontend.
- Establece el campo Nombre como
l7-xlb-forwarding-rule
. - Configura el Protocolo en
HTTP
. - Configura el Puerto en
80
. Para la dirección IP que creaste en Reserva la dirección IP del balanceador de cargas.
Haz clic en Listo.
Para HTTPS:
Si usas HTTPS entre el cliente y el balanceador de cargas, necesitas uno o más recursos de certificado SSL para configurar el proxy. Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Por el momento, los certificados administrados por Google no son compatibles con los balanceadores de cargas de aplicaciones externos regionales.
- Haz clic en Configuración de frontend.
- Haz clic en Agregar IP y puerto de frontend.
- En el campo Nombre, ingresa
l7-xlb-forwarding-rule
. - En el campo Protocolo, selecciona
HTTPS (includes HTTP/2)
. - Asegúrate de que el Puerto esté establecido en
443
para permitir el tráfico HTTPS. - Selecciona la dirección IP que creaste en Reserva la dirección IP del balanceador de cargas.
- Haz clic en la lista Certificado.
- Si ya tienes un recurso de certificado SSL autoadministrado que deseas usar como certificado SSL principal, selecciónalo en el menú.
- De lo contrario, selecciona Crear un nuevo certificado.
- En Nombre, ingresa
l7-xlb-cert
. - En los campos correspondientes, sube los archivos con formato PEM:
- Certificado de clave pública
- Cadena de certificado
- Clave privada
- Haz clic en Crear.
- En Nombre, ingresa
- Para agregar otros recursos de certificado, además del recurso de certificado SSL principal, haz lo siguiente:
- Haz clic en Agregar certificado.
- Selecciona un certificado de la lista Certificados o haz clic en Crear un certificado nuevo y sigue las instrucciones anteriores.
- Haz clic en Listo.
Configure el backend
- Haga clic en Configuración de backend.
- En el menú Crear o seleccionar servicios de backend, selecciona Crear un servicio de backend.
- Otorga el Nombre
l7-xlb-backend-service
para el servicio de backend. - Configura el Tipo de backend como grupos de instancias.
- En la sección Nuevo backend, sigue estos pasos:
- Establece el Grupo de instancias en
l7-xlb-backend-example
. - Establece el campo Números de puerto en
80
. - Establece el campo Modo de balanceo en Uso.
- Haz clic en Listo.
- Establece el Grupo de instancias en
- En la sección Verificación de estado, elige Crear una verificación de estado con los parámetros siguientes:
- Nombre:
l7-xlb-basic-check
- Protocolo:
HTTP
- Puerto:
80
- Nombre:
- Haz clic en Guardar y continuar.
- Haz clic en Crear.
Configura las reglas de enrutamiento
- Haga clic en Reglas de enrutamiento. Asegúrate de que
l7-xlb-backend-service
sea el único servicio de backend para los hosts y rutas de acceso no coincidentes.
Para obtener información sobre la administración del tráfico, consulta Configura la administración del tráfico.
Revise y finalice la configuración
- Haz clic en Crear.
gcloud
Define la verificación de estado de HTTP con el comando
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-xlb-basic-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_ID
Define el servicio de backend con el comando
gcloud compute backend-services create
.gcloud compute backend-services create l7-xlb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-xlb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Agrega backends al servicio de backend con el comando
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend l7-xlb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-xlb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crea el mapa de URL con el comando
gcloud compute url-maps create
.gcloud compute url-maps create l7-xlb-map \ --default-service=l7-xlb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crea el proxy de destino.
Para HTTP:
Para un balanceador de cargas de HTTP, crea el proxy de destino con el comando
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Para HTTPS:
Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Por el momento, los certificados administrados por Google no son compatibles con los balanceadores de cargas de aplicaciones externos regionales.
Asigna tus rutas de archivos a nombres de variables.
export LB_CERT=path to PEM-formatted file
export LB_PRIVATE_KEY=path to PEM-formatted file
Crea un certificado SSL regional con el comando
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create l7-xlb-cert \ --certificate=$LB_CERT \ --private-key=$LB_PRIVATE_KEY \ --region=us-west1
Usa el certificado SSL regional para crear un proxy de destino con el comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --region=us-west1 \ --ssl-certificates=l7-xlb-cert \ --project=SERVICE_PROJECT_ID
Crea la regla de reenvío.
Para redes personalizadas, debes hacer referencia a la subred en la regla de reenvío.
Para la dirección IP de la regla de reenvío, usa
lb-frontend-and-backend-subnet
. Si intentas usar la subred de solo proxy, la creación de la regla de reenvío fallará.Para HTTP:
Usa el comando
gcloud compute forwarding-rules create
con las marcas correctas.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-xlb-proxy \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Para HTTPS:
Crea la regla de reenvío con el comando
gcloud compute forwarding-rules create
con las marcas correctas.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-xlb-proxy \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Prueba el balanceador de cargas
Cuando el servicio de balanceo de cargas se esté ejecutando, puedes enviar tráfico a la regla de reenvío y ver cómo este se dispersa a las diferentes instancias.
Console
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en el balanceador de cargas que acabas de crear.
- Toma nota de la dirección IP del balanceador de cargas. Esta dirección IP se denomina
LB_IP_ADDRESS
en los siguientes pasos. - En la sección Backend, confirma que las VM estén en buen estado. La columna En buen estado debe propagarse, lo que indica que ambas VM están en buen estado (
2/2
). Si ves lo contrario, primero vuelve a cargar la página. Puede tomar unos minutos que la consola de Google Cloud indique que las VM están en buen estado. Si los backends no se muestran con buen estado después de unos minutos, revisa la configuración del firewall y la etiqueta de red asignada a tus VM de backend. - Después de que la consola de Google Cloud muestre que las instancias de backend están en buen estado, puedes probar tu balanceador de cargas con un navegador web en
https://LB_IP_ADDRESS
(ohttp://LB_IP_ADDRESS
). ReemplazaLB_IP_ADDRESS
por la dirección IP del balanceador de cargas. - Si usaste un certificado autofirmado para las pruebas de HTTPS, el navegador mostrará una advertencia. Debes indicar de manera explícita a tu navegador que acepte un certificado autofirmado.
- El navegador debe procesar una página con contenido que muestre el nombre de la instancia que entregó la página, junto con su zona (por ejemplo,
Page served from: lb-backend-example-xxxx
). Si el navegador no procesa esta página, revisa las opciones de configuración que aparecen en esta guía.
gcloud
Toma nota de la dirección IP que estaba reservada:
gcloud compute addresses describe IP_ADDRESS_NAME \ --format="get(address)" \ --region=us-west1
Puedes probar tu balanceador de cargas con un navegador web en https://IP_ADDRESS_NAME
(o http://IP_ADDRESS_NAME
). Reemplaza IP_ADDRESS_NAME
por la dirección IP del balanceador de cargas.
Si usaste un certificado autofirmado para las pruebas de HTTPS, el navegador mostrará una advertencia. Debes indicar de manera explícita a tu navegador que acepte un certificado autofirmado.
Tu navegador debe renderizar una página con información mínima sobre la instancia de backend. Si el navegador no renderiza esta página, revisa las opciones de configuración que aparecen en esta guía.
Configura un balanceador de cargas con un servicio de backend entre proyectos
En el ejemplo anterior de esta página, se muestra cómo configurar una implementación de VPC compartida en la que todos los componentes del balanceador de cargas y sus backends se crean en el proyecto de servicio.
Los balanceadores de cargas de aplicaciones externos regionales también te permiten configurar implementaciones de VPC compartida en las que un mapa de URL de un proyecto host o de servicio puede hacer referencia a servicios de backend (y backends) ubicados en varios proyectos de servicio en entornos de VPC compartida. Esto se conoce como referencia de servicio entre proyectos.
Puedes usar los pasos en esta sección como referencia para configurar cualquiera de las combinaciones compatibles que se enumeran aquí:
- Regla de reenvío, proxy de destino y mapa de URL en el proyecto host, y servicio de backend en un proyecto de servicio
- Regla de reenvío, mapa de URL y proxy de destino en un proyecto de servicio, y backend de servicio en otro proyecto de servicio
La referencia del servicio entre proyectos se puede usar con grupos de instancias, NEG sin servidores o cualquier otro tipo de backend compatible. Si usas NEG sin servidores, debes crear una VM en la red de VPC en la que desees crear el frontend del balanceador de cargas. Para ver un ejemplo, consulta Crea una instancia de VM en una subred específica en Configura un balanceador de cargas de aplicaciones externo regional con Cloud Run.
Requisitos de configuración
En este ejemplo se configura un balanceador de cargas de muestra con su frontend y backend en dos proyectos de servicio diferentes.
Si aún no lo hiciste, debes completar todos los pasos de requisitos previos para configurar la VPC compartida y configurar la red, las subredes y las reglas firewall necesarias para este ejemplo. Para obtener instrucciones, consulta las siguientes secciones al comienzo de esta página:
Reserva la dirección IP del balanceador de cargas en el proyecto de servicio A
Reserva una dirección IP externa estática regional para el balanceador de cargas en el proyecto de servicio A.
Todos los pasos de esta sección deben realizarse en el proyecto de servicio A.
Console
En la consola de Google Cloud, ve a la página Reserva una dirección estática.
Para el nombre de la dirección nueva, ingresa
cross-ref-ip-address
.En Nivel de servicio de red, selecciona Estándar.
Para Versión de la IP, selecciona IPv4. Las direcciones IPv6 solo pueden ser globales y solo se pueden usar con balanceadores de cargas globales.
En Tipo, selecciona Regional.
En Región, selecciona
us-west1
.Deja la opción Conectado a configurada en Ninguna. Después de crear el balanceador de cargas, esta dirección IP se adjunta a la regla de reenvío del balanceador de cargas.
Para reservar la dirección IP, haz clic en Reservar.
gcloud
Para reservar una dirección IP externa estática, usa el comando compute addresses create
.
gcloud compute addresses create IP_ADDRESS_CROSS_REF \ --region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
IP_ADDRESS_CROSS_REF
: El nombre que quieres asignar a esta dirección IP.SERVICE_PROJECT_A_ID
: es el ID del proyecto del servicio A, en el que se crea el frontend del balanceador de cargas.
Crea los backends y el servicio de backend en el proyecto de servicio B
Todos los pasos de esta sección deben realizarse en el proyecto de servicio B.
Console
Crea una plantilla de instancias. En la consola de Google Cloud, ve a la página Plantillas de instancia.
- Haga clic en Crear plantilla de instancias.
- Ingresa un Nombre para la plantilla de instancias:
cross-ref-backend-template
. - Asegúrate de que el disco de arranque esté configurado como
una imagen de Debian, como
Debian GNU/Linux 12 (bookworm). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como
apt-get
. Si necesitas cambiar el Disco de arranque, haz clic en Cambiar.- En Sistema operativo, selecciona Debian.
- En Versión, selecciona una de las imágenes de Debian disponibles, como Debian GNU/Linux 12 (bookworm).
- Haz clic en Seleccionar.
- Haz clic en Opciones avanzadas y, luego, en Herramientas de redes.
- Ingresa las siguientes Etiquetas de red:
load-balanced-backend
. - En Interfaces de red, selecciona Redes compartidas conmigo (del proyecto host: HOST_PROJECT_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. Haz clic en Administración. En Administración, inserta la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio:
#! /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 Crear.
Cree un grupo de instancias administrado. En la consola de Google Cloud, ve a la página Grupos de instancias.
- Haga clic en Crear grupo de instancias.
- Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG con o sin estado.
- Ingresa un Nombre para el grupo de instancias:
cross-ref-ig-backend
. - En Ubicación, selecciona Zona única.
- En Región, selecciona us-west1.
- En Zona, selecciona us-west1-a.
- En Plantilla de instancias, selecciona cross-ref-backend-template.
Especifica la cantidad de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones en Ajuste de escala automático:
- En Modo de ajuste de escala automático, selecciona
Off:do not autoscale
. - En Cantidad máxima de instancias, ingresa
2
.
De manera opcional, en la sección de Ajuste de escala automático, puedes configurar el grupo de instancias para que agregue o quite instancias de forma automática en función del uso de CPU de la instancia.
- En Modo de ajuste de escala automático, selecciona
Haz clic en Crear.
Crea un servicio de backend regional. Como parte de este paso, también creamos la verificación de estado y agregamos backends al servicio de backend. En la consola de Google Cloud, ve a la página Backends.
- Haz clic en Crear servicio de backend regional.
- Ingresa un Nombre para el servicio de backend:
cross-ref-backend-service
. - En Región, selecciona us-west1.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones regional externo (EXTERNAL_MANAGED).
- Configura el Tipo de backend como grupos de instancias.
- En la sección Backends, configura Red como lb-network.
- Haz clic en Agregar backend y configura los siguientes campos:
- Configura el Grupo de instancias como cross-ref-ig-backend.
- Establece Números de puerto en
80
. - Establece el campo Modo de balanceo en Uso.
- Haz clic en Listo.
- En la sección Verificación de estado, elige Crear una verificación de estado con los parámetros siguientes:
- Nombre:
cross-ref-http-health-check
- Protocolo:
HTTP
- Puerto:
80
- Haz clic en Guardar.
- Nombre:
Opcional: En la sección Agregar permisos, ingresa las principales de IAM (por lo general, una dirección de correo electrónico) de los administradores del balanceador de cargas de otros proyectos para que puedan usar este servicio de backend en los balanceadores de cargas de sus propios proyectos. Sin este permiso, no puedes usar la referencia de servicios entre proyectos.
Si no tienes permiso para configurar políticas de control de acceso en los servicios de backend de este proyecto, aún puedes crear el servicio de backend, y un usuario autorizado puede realizar este paso más adelante, como se describe en la sección Otorga permisos al administrador del balanceador de cargas para usar el servicio de backend. En esa sección, también se describe cómo otorgar acceso a todos los servicios de backend de este proyecto para que no tengas que otorgar acceso cada vez que crees un servicio de backend nuevo.
Haz clic en Crear.
gcloud
Crea una plantilla de instancias de VM con el servidor de HTTP con el comando
gcloud compute instance-templates create
.gcloud compute instance-templates create BACKEND_IG_TEMPLATE \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-12 \ --image-project=debian-cloud \ --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' \ --project=SERVICE_PROJECT_B_ID
Reemplaza lo siguiente:
BACKEND_IG_TEMPLATE
: es el nombre de la plantilla de grupo de instancias.SERVICE_PROJECT_B_ID
: es el ID del proyecto del servicio B, en el que se crean los backends del balanceador de cargas y el servicio de backend.HOST_PROJECT_ID
: es el ID del proyecto host de la VPC compartida.
Crea un grupo de instancias administrado en la zona con el comando
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create BACKEND_MIG \ --zone=us-west1-a \ --size=2 \ --template=BACKEND_IG_TEMPLATE \ --project=SERVICE_PROJECT_B_ID
Reemplaza lo siguiente:
BACKEND_MIG
: es el nombre del grupo de instancias de backend.
Define la verificación de estado de HTTP con el comando
gcloud compute health-checks create http
.gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
Reemplaza lo siguiente:
HTTP_HEALTH_CHECK_NAME
: es el nombre de la verificación de estado de HTTP.
Define el servicio de backend con el comando
gcloud compute backend-services create
.gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Reemplaza lo siguiente:
BACKEND_SERVICE_NAME
: es el nombre del servicio de backend creado en el proyecto de servicio B.
Agrega backends al servicio de backend con el comando
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --balancing-mode=UTILIZATION \ --instance-group=BACKEND_MIG \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Crea el frontend del balanceador de cargas y el mapa de URL en el proyecto de servicio A
Todos los pasos de esta sección deben realizarse en el proyecto de servicio A.
Console
Inicia la configuración
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones (HTTP/HTTPS) y haz clic en Siguiente.
- En Orientado al público o interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
- En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Prepara el balanceador de cargas
- Ingresa el nombre del balanceador de cargas:
cross-ref-l7-xlb-shared-vpc
. - Para la Región, selecciona us-west1.
En Red, selecciona lb-network (de Proyecto: HOST_PROJECT_ID).
Si ves una advertencia sobre la subred de solo proxy que se requiere en la red de VPC compartida, confirma que el administrador del proyecto host haya creado
proxy-only-subnet
en la regiónus-west1
en la red de VPC compartidalb-network
. La creación del balanceador de cargas tendrá éxito incluso si no tienes permiso para ver la subred de solo proxy en esta página.Mantén la página abierta para continuar.
Configura el frontend
Para que el servicio entre proyectos funcione, el frontend debe usar la misma red (lb-network
) del proyecto host de VPC compartida que se usó para crear el servicio de backend.
Para HTTP:
- Haga clic en Configuración de frontend.
- Ingresa un nombre para la regla de reenvío:
cross-ref-http-forwarding-rule
. - Configura el Protocolo en
HTTP
. Establece Subred en
lb-frontend-and-backend-subnet
.No selecciones la subred de solo proxy para el frontend, incluso si es una opción en la lista.
Selecciona la dirección IP que creaste en Reserva la dirección IP del balanceador de cargas, llamada cross-ref-ip-address.
Configura el Puerto en
80
.Haz clic en Listo.
Para HTTPS:
Si usas HTTPS entre el cliente y el balanceador de cargas, necesitas uno o más recursos de certificado SSL para configurar el proxy. Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Por el momento, los certificados administrados por Google no son compatibles con los balanceadores de cargas de aplicaciones externos regionales.
- Haz clic en Configuración de frontend.
- Ingresa un nombre para la regla de reenvío:
cross-ref-https-forwarding-rule
. - En el campo Protocolo, selecciona
HTTPS (includes HTTP/2)
. Establece Subred en
lb-frontend-and-backend-subnet
.No selecciones la subred de solo proxy para el frontend, incluso si es una opción en la lista.
Selecciona la dirección IP que creaste en Reserva la dirección IP del balanceador de cargas, llamada cross-ref-ip-address.
Asegúrate de que el Puerto esté establecido en
443
para permitir el tráfico HTTPS.Haz clic en la lista Certificado.
- Si ya tienes un recurso de certificado SSL autoadministrado que deseas usar como certificado SSL principal, selecciónalo en el menú.
- De lo contrario, selecciona Crear un nuevo certificado.
- Ingresa un Nombre para el certificado SSL.
- En los campos correspondientes, sube los archivos con formato PEM:
- Certificado de clave pública
- Cadena de certificado
- Clave privada
- Haz clic en Crear.
Para agregar otros recursos de certificado además del recurso de certificado SSL principal, haz lo siguiente:
- Haz clic en Agregar certificado.
- Selecciona un certificado de la lista Certificados o haz clic en Crear un certificado nuevo y sigue las instrucciones anteriores.
Haz clic en Listo.
Configure el backend
- Haga clic en Configuración de backend.
- Haz clic en Servicios de backend entre proyectos.
- En ID del proyecto, ingresa el ID del proyecto para el proyecto de servicio B.
- En Nombre del servicio de backend, ingresa el nombre del servicio de backend del proyecto de servicio B que deseas usar. Para este ejemplo, debes ingresar
cross-ref-backend-service
. - Haz clic en Agregar servicio de backend.
Configura las reglas de enrutamiento
- Haga clic en Reglas de enrutamiento. Asegúrate de que cross-ref-backend-service sea el único servicio de backend para cualquier host y ruta de acceso no coincidentes.
Para obtener información sobre la administración del tráfico, consulta Configura la administración del tráfico.
Revise y finalice la configuración
- Haz clic en Crear.
Prueba el balanceador de cargas
Después de crear el balanceador de cargas, pruébalo con los pasos descritos en Prueba el balanceador de cargas.
gcloud
Opcional: Antes de crear un balanceador de cargas con servicios de backend de referencia cruzada, descubre si se puede hacer referencia a los servicios de backend a los que deseas hacer referencia mediante un mapa de URL:
gcloud compute backend-services list-usable \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Crea el mapa de URL y configura el servicio predeterminado como el servicio de backend creado en el proyecto de servicio B.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/SERVICE_PROJECT_B_ID/regions/us-west1/backendServices/BACKEND_SERVICE_NAME \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
URL_MAP_NAME
: es el nombre del mapa de URL.BACKEND_SERVICE_NAME
: es el nombre del servicio de backend creado en el proyecto de servicio B.SERVICE_PROJECT_B_ID
: es el ID del proyecto del servicio B, en el que se crean los backends del balanceador de cargas y el servicio de backend.SERVICE_PROJECT_A_ID
: es el ID del proyecto del servicio A, en el que se crea el frontend del balanceador de cargas.
La creación del mapa de URL falla si no tienes el permiso
compute.backendServices.use
para el servicio de backend en el proyecto de servicio B.Crea el proxy de destino.
Para HTTP:
gcloud compute target-http-proxies create HTTP_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
HTTP_TARGET_PROXY_NAME
: es el nombre del proxy HTTP de destino.
Para HTTPS:
Crea un certificado SSL regional con el comando
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate=PATH_TO_CERTIFICATE \ --private-key=PATH_TO_PRIVATE_KEY \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
SSL_CERTIFICATE_NAME
: el nombre del recurso de certificado SSL.PATH_TO_CERTIFICATE
: es la ruta al archivo del certificado SSL local en formato PEM.PATH_TO_PRIVATE_KEY
: es la ruta a la clave privada del certificado SSL local en formato PEM.
Usa el certificado SSL regional para crear un proxy de destino con el comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create HTTPS_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-west1 \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
HTTPS_TARGET_PROXY_NAME
: un nombre para el proxy HTTPS de destino.
Crea la regla de reenvío. Para que el servicio entre proyectos haga referencia al trabajo, la regla de reenvío debe usar la misma red (
lb-network
) del proyecto host de VPC compartida que se usó para crear el servicio de backend.Para HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
HTTP_FORWARDING_RULE_NAME
: es el nombre de la regla de reenvío que se usa para controlar el tráfico HTTP.
Para HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Reemplaza lo siguiente:
HTTPS_FORWARDING_RULE_NAME
: es el nombre de la regla de reenvío que se usa para controlar el tráfico HTTPS.
Para probar el balanceador de cargas, sigue los pasos descritos en Prueba el balanceador de cargas.
Otorga permisos al administrador del balanceador de cargas para usar el servicio de backend
Si quieres que los balanceadores de cargas hagan referencia a los servicios de backend en otros proyectos de servicio, el administrador del balanceador de cargas debe tener el permiso compute.backendServices.use
. Para otorgar este permiso, puedes usar el rol predefinido de IAM llamado Usuario de servicios del balanceador de cargas de Compute (roles/compute.loadBalancerServiceUser
). El administrador del proyecto de servicio debe otorgar este rol, que puede aplicarse a nivel del proyecto o a nivel del servicio de backend individual.
Este paso no es necesario si ya otorgaste los permisos necesarios a nivel de servicio de backend mientras creas el servicio de backend. Puedes omitir esta sección o continuar leyendo para obtener información sobre cómo otorgar acceso a todos los servicios de backend en este proyecto, de modo que no tengas que otorgar acceso cada vez que crees un servicio de backend nuevo.
En este ejemplo, un administrador del proyecto de servicio B debe ejecutar uno de los siguientes comandos para otorgar el permiso compute.backendServices.use
a un administrador del balanceador de cargas del proyecto de servicio A. Esto se puede hacer a nivel de proyecto (para todos los servicios de backend del proyecto) o por servicio de backend.
Console
Permisos a nivel del proyecto
Sigue estos pasos para otorgar permisos a todos los servicios de backend del proyecto.
Necesitas los permisos compute.regionBackendServices.setIamPolicy
y resourcemanager.projects.setIamPolicy
para completar este paso.
En la consola de Google, ve a la página Servicios de balanceo de cargas compartidos.
En la sección Todos los permisos del servicio de backend (permisos a nivel de proyecto), selecciona tu proyecto.
Si el panel de permisos no es visible, haz clic en Mostrar panel de permisos. El panel Permisos a nivel de proyecto se abrirá a la derecha.
Haz clic en
Agregar principal.En Nuevas principales, ingresa la dirección de correo electrónico del principal o algún otro identificador.
En Función, selecciona el rol Usuario de servicios de balanceador de cargas de Compute en la lista desplegable.
Opcional: Agrega una condición a la función.
Haz clic en Guardar.
Permisos a nivel de recurso para servicios de backend individuales
Usa los siguientes pasos para otorgar permisos a servicios de backend individuales en tu proyecto.
Necesitas el permiso compute.regionBackendServices.setIamPolicy
para completar este paso.
En la consola de Google, ve a la página Servicios de balanceo de cargas compartidos.
En la sección Permisos de servicio de backend individuales (permisos a nivel de recurso), selecciona el servicio de backend al que deseas otorgar acceso.
Haz clic en
Agregar principal.En Nuevas principales, ingresa la dirección de correo electrónico del principal o algún otro identificador.
En Función, selecciona el rol Usuario de servicios de balanceador de cargas de Compute en la lista desplegable.
Haz clic en Guardar.
gcloud
Permisos a nivel del proyecto
Sigue estos pasos para otorgar permisos a todos los servicios de backend del proyecto.
Necesitas los permisos compute.regionBackendServices.setIamPolicy
y resourcemanager.projects.setIamPolicy
para completar este paso.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser"
Permisos a nivel de recurso para servicios de backend individuales
A nivel de servicio de backend, los Administradores de proyectos de servicio pueden usar cualquiera de los siguientes comandos para otorgar el rol Usuario de servicios del balanceador de cargas de Compute (roles/compute.loadBalancerServiceUser
).
Necesitas el permiso compute.regionBackendServices.setIamPolicy
para completar este paso.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'
o
gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --project=SERVICE_PROJECT_B_ID \ --region=us-west1
Para usar estos comandos, reemplaza LOAD_BALANCER_ADMIN
por la principal del usuario, por ejemplo, test-user@gmail.com
.
También puedes configurar los permisos de IAM para que solo se apliquen a un subconjunto de servicios de backend regionales mediante condiciones y la especificación de atributos de condición.
Consulta mapas de URL que hacen referencia a un servicio de backend de VPC compartida
Para ver mapas de URL que hacen referencia a un servicio de backend de VPC compartida en particular, sigue estos pasos:
gcloud
Para ver los recursos que hacen referencia a un servicio de backend de VPC compartida regional, ejecuta el siguiente comando:
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION
Reemplaza lo siguiente:
BACKEND_SERVICE_NAME
: Es el nombre del servicio de backend del balanceador de cargasREGION
es la región del balanceador de cargas
En el resultado del comando, revisa el campo usedBy
, que muestra las recursos que hacen referencia al servicio de backend, como se muestra en el siguiente ejemplo:
id: '123456789' kind: compute#backendService loadBalancingScheme: INTERNAL_MANAGED ... usedBy: - reference: https://www.googleapis.com/compute/v1/projects/my-project/region/us-central1/urlMaps/my-url-map
¿Qué sigue?
- Puedes restringir cómo se usan las funciones de VPC compartida, como las referencias de servicios entre proyectos, en tu proyecto mediante restricciones de las políticas de la organización. A fin de obtener más información, consulta Restricciones de la política de la organización para Cloud Load Balancing.
- Si deseas administrar el recurso de subred de solo proxy que requieren los balanceadores de cargas de aplicaciones externos regionales, consulta Subred de solo proxy para balanceadores de cargas de aplicaciones externos regionales.
- Para obtener información sobre cómo solucionar problemas con un balanceador de cargas de aplicaciones externo regional, consulta Soluciona problemas con balanceadores de cargas de aplicaciones externos.
- Limpia la configuración del balanceador de cargas.