En este documento se muestran dos configuraciones de ejemplo para configurar un balanceador de carga de aplicaciones interno en un entorno de VPC compartida:
- En el primer ejemplo se crean todos los componentes del balanceador de carga y los backends en un proyecto de servicio.
- En el segundo ejemplo, se crean los componentes de frontend y el mapa de URLs del balanceador de carga en un proyecto de servicio, mientras que el servicio de backend y los backends del balanceador de carga se crean en otro proyecto de servicio. Este tipo de implementación, en el que el mapa de URLs hace referencia a un servicio de backend de otro proyecto, se denomina referencia de servicio entre proyectos.
En ambos ejemplos se requiere la misma configuración inicial para conceder permisos y configurar la VPC compartida antes de poder crear balanceadores de carga.
Estas no son las únicas configuraciones de VPC compartida compatibles con los balanceadores de carga de aplicaciones internos. Para ver otras arquitecturas de VPC compartida válidas, consulta Arquitecturas de VPC compartida.
Si no quieres usar una red de VPC compartida, consulta Configurar un balanceador de carga de aplicaciones interno.
Antes de empezar
- Consulta la descripción general de la VPC compartida.
- Consulta la información general sobre los balanceadores de carga de aplicación internos, incluida la sección Arquitecturas de VPC compartida.
Los permisos que requiere
Para configurar un balanceador de carga en una red de VPC compartida, un administrador debe llevar a cabo una configuración y un aprovisionamiento iniciales. Tras la configuración inicial, el propietario de un proyecto de servicio puede hacer lo siguiente:
- Despliega todos los componentes del balanceador de carga y sus backends en un proyecto de servicio.
- Implementa los componentes de backend del balanceador de carga (servicio de backend y backends) en proyectos de servicio a los que se pueda hacer referencia mediante un mapa de URLs en otro proyecto de servicio o de host.
En esta sección se resumen los permisos necesarios para seguir esta guía y configurar un balanceador de carga en una red de VPC compartida.
Configurar VPC compartida
Se necesitan los siguientes roles para llevar a cabo las tareas que se indican a continuación:
- Realizar tareas administrativas puntuales, como configurar la VPC compartida y habilitar un proyecto host.
- Realizar tareas administrativas que deben repetirse cada vez que quieras incorporar un nuevo proyecto de servicio. Esto incluye vincular el proyecto de servicio, aprovisionar y configurar recursos de red, y conceder acceso al administrador del proyecto de servicio.
Estas tareas deben realizarse en el proyecto host de la VPC compartida. Te recomendamos que el administrador de la VPC compartida también sea el propietario del proyecto host de la VPC compartida. De esta forma, se conceden automáticamente los roles Administrador de red y Administrador de seguridad.
Tarea | Rol necesario |
---|---|
Configurar la VPC compartida, habilitar el proyecto del host y dar acceso a los administradores del proyecto de servicio | Administrador de VPC compartida |
Crea subredes en el proyecto host de la VPC compartida y concede acceso a los administradores del proyecto de servicio | Administrador de red |
Añadir y eliminar reglas de cortafuegos | Administrador de seguridad |
Una vez que se hayan aprovisionado las subredes, el propietario del proyecto host debe conceder el rol Usuario de red en el proyecto host a cualquier persona (normalmente, administradores, desarrolladores o cuentas de servicio del proyecto de servicio) que necesite usar estos recursos.
Tarea | Rol necesario |
---|---|
Usar redes y subredes de VPC que pertenezcan al proyecto host | Usuario de red |
Este rol se puede asignar a nivel de proyecto o a subredes concretas. Te recomendamos que asignes el rol a subredes concretas. Si se asigna el rol en el proyecto, se concede acceso a todas las subredes actuales y futuras de la red VPC del proyecto host.
Desplegar un balanceador de carga y backends
Los administradores de proyectos de servicio necesitan los siguientes roles en el proyecto de servicio para crear recursos de balanceo de carga y backends. Estos permisos se conceden automáticamente al propietario o editor del proyecto de servicio.
Tarea | Rol necesario |
---|---|
Crear componentes de balanceador de carga | Administrador de red |
Crear instancias | Administrador de instancias |
Crear y modificar certificados SSL | Administrador de seguridad |
Requisitos previos
En esta sección, debes seguir estos pasos:
- Configura la red y las subredes en el proyecto del host.
- Configura la VPC compartida en el proyecto host.
No es necesario que sigas los pasos de esta sección cada vez que quieras crear un balanceador de carga. Sin embargo, debes asegurarte de que tienes acceso a los recursos que se describen aquí antes de crear el balanceador de carga.
Configurar la red y las subredes en el proyecto del host
Necesitas una red de VPC compartida con dos subredes: una para el frontend y los backends del balanceador de carga, y otra para los proxies del balanceador de carga.En este ejemplo se usan la siguiente red, región y subredes:
Red. La red se llama
lb-network
.Subred para el frontend y los backends del balanceador de carga. Una subred llamada
lb-frontend-and-backend-subnet
en la regiónus-west1
usa10.1.2.0/24
para su intervalo de IP principal.Subred para proxies. Una subred llamada
proxy-only-subnet
en la regiónus-west1
usa10.129.0.0/23
para su intervalo de IP principal.
Configurar la subred para el frontend y los backends del balanceador de carga
No es necesario realizar este paso cada vez que quieras crear un balanceador de carga. Solo tienes que asegurarte de que el proyecto de servicio tenga acceso a una subred de 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.
Consola
- En la Google Cloud consola, ve a la página Redes de VPC.
- Haz clic en Crear red VPC.
- En Nombre, escribe
lb-network
. En la sección Subredes:
- Elige Personalizado en Modo de creación de subred.
En la sección Nueva subred, introduce la siguiente información:
- Nombre:
lb-frontend-and-backend-subnet
Región:
us-west1
Intervalo 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
de 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
:
Configurar la subred de solo proxy
Todos los balanceadores de carga regionales basados en Envoy de la us-west1
región usan la subred de solo proxy en la red de VPC lb-network
. Solo puede haber una subred 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.
Consola
- En la Google Cloud consola, ve a la página Redes de VPC.
- Haz clic en el nombre de la red de VPC compartida:
lb-network
. - Haz clic en Añadir subred.
- En Nombre, escribe
proxy-only-subnet
. - En Región, selecciona
us-west1
. - En Propósito, selecciona Proxy gestionado regional.
- En Intervalo de direcciones IP, introduce
10.129.0.0/23
. - 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 \ --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:
Dar acceso a la subred backend a los administradores del proyecto de servicio
Los administradores del proyecto de servicio necesitan acceso a la subredlb-frontend-and-backend-subnet
para poder aprovisionar los back-ends del balanceador de carga.
Un administrador de VPC compartida debe conceder acceso a la subred de backend a los administradores de proyectos de servicio (o a los desarrolladores que implementen recursos y backends que utilicen la subred). Para obtener instrucciones, consulta Administradores de proyectos de servicio para algunas subredes.
Configurar reglas de cortafuegos en el proyecto host
En este ejemplo se usan las siguientes reglas de cortafuegos:fw-allow-health-check
. Una regla de entrada, aplicable a las instancias que se van a balancear, que permite todo el tráfico TCP de los sistemas de comprobación del estado de Google Cloud,130.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 se debe aplicar.
fw-allow-proxies
. Una regla de entrada, aplicable a las instancias que se van a balancear, que permite el tráfico TCP en los puertos80
,443
y8080
desde los proxies gestionados del balanceador de carga. En este ejemplo se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que se debe aplicar.
fw-allow-ssh
. Una regla de entrada aplicable a las instancias que se van a balancear de carga que permita la conectividad SSH entrante en el puerto TCP22
desde cualquier dirección. Puedes elegir un intervalo de IPs de origen más restrictivo para esta regla. Por ejemplo, puede especificar solo los intervalos de IP del sistema desde el que inicia sesiones SSH. En este ejemplo se usa la etiqueta de destinoallow-ssh
para identificar las máquinas virtuales a las que se aplica la regla de cortafuegos.
Todos los pasos de esta sección deben realizarse en el proyecto host.
Consola
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
- Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
- Nombre:
fw-allow-health-check
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de origen: intervalos de IPv4
- Intervalos 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 introduce
80
como número de puerto.
Como práctica recomendada, limita esta regla a los protocolos y puertos que coincidan con los que usa tu comprobación del estado. Si usas
tcp:80
para el protocolo y el puerto, Google Cloud puedes usar HTTP en el puerto80
para comunicarte con tus VMs, pero no puedes usar HTTPS en el puerto443
para comunicarte con ellas. - Haz clic en Crear.
- Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
- Nombre:
fw-allow-proxies
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de origen: intervalos de IPv4
- Intervalos de IPv4 de origen:
10.129.0.0/23
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Marca TCP e introduce
80, 443, 8080
en los números de puerto.
- Haz clic en Crear.
- Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
- Nombre:
fw-allow-ssh
- Red:
lb-network
- 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.
- Marca TCP e introduce
22
como número de puerto.
- Haz clic en Crear.
gcloud
Crea la regla de cortafuegos
fw-allow-health-check
para permitir las comprobaciones del estadoGoogle Cloud . En este ejemplo, se permite todo el tráfico TCP de los verificadores de comprobación del estado. Sin embargo, puedes configurar un conjunto de puertos más reducido 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 cortafuegos
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
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=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Terraform
Crea una regla de cortafuegos para permitir las comprobaciones del estado. Google Cloud
Crea una regla de cortafuegos para permitir que el tráfico de la subred de solo proxy de Envoy llegue a tus backends.
Crea una regla de cortafuegos para permitir la conectividad SSH a las VMs con la etiqueta de red
allow-ssh
.
Configurar la VPC compartida en el proyecto host
En este paso, se habilita un proyecto host de VPC compartida, se comparten subredes del proyecto host y se vinculan proyectos de servicio al proyecto host para que los proyectos de servicio puedan usar la red de VPC compartida. Para configurar la VPC compartida en el proyecto host, consulta las siguientes páginas:
En el resto de estas instrucciones se da por hecho que ya has configurado la VPC compartida. Esto incluye configurar políticas de gestión de identidades y accesos para tu organización y designar los proyectos host y de servicio.
No continúes hasta que hayas configurado la VPC compartida y habilitado los proyectos host y de servicio.
Una vez que hayas completado los pasos definidos en esta sección de requisitos previos, puedes llevar a cabo una de las siguientes configuraciones:
Configurar un balanceador de carga en un proyecto de servicio
Configurar un balanceador de carga con un servicio de backend entre proyectos
Configurar un balanceador de carga en el proyecto de servicio
En este ejemplo, se crea un balanceador de carga de aplicaciones interno en el que todos los componentes de balanceo de carga (regla de reenvío, proxy de destino, mapa de URLs y servicio de backend) y los backends se crean en el proyecto de servicio.
Los recursos de red del balanceador de carga de aplicaciones interno, como la subred de solo proxy y la subred de las instancias de backend, se crean en el proyecto host. Las reglas de cortafuegos de las instancias de backend también se crean en el proyecto host.
En esta sección se explica cómo configurar el balanceador de carga y los backends. El administrador del proyecto de servicio (o un desarrollador que trabaje en el proyecto de servicio) debe seguir estos pasos, que no requieren la participación del administrador del proyecto host. Los pasos de esta sección son muy similares a los pasos estándar para configurar un balanceador de carga de aplicaciones interno.
En el ejemplo de esta página se asigna explícitamente una dirección IP interna reservada a la regla de reenvío del balanceador de carga de aplicaciones interno, en lugar de permitir que se asigne una dirección IP interna efímera. Como práctica recomendada, te sugerimos que reserves direcciones IP para las reglas de reenvío.
Crea el backend del grupo de instancias gestionado
.En esta sección se muestra cómo crear una plantilla y un grupo de instancias gestionado. El grupo de instancias gestionado proporciona instancias de VM que ejecutan los servidores backend de un balanceador de carga de aplicaciones interno de ejemplo. El tráfico de los clientes se balancea entre estos servidores de backend. Para hacer demostraciones, los back-ends sirven sus propios nombres de host.
Consola
Crea una plantilla de instancia. En la consola, ve a la página Plantillas de instancia. Google Cloud
- Haz clic en Crear plantilla de instancia.
- En Nombre, escribe
l7-ilb-backend-template
. - Asegúrate de que el disco de arranque esté configurado con 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, a continuación, en Redes.
- Introduce las siguientes etiquetas de red:
allow-ssh
,load-balanced-backend
. - En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: HOST_PROJECT_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. - Haz clic en Gestión. En Management (Gestión), inserta la siguiente secuencia de comandos en el campo Startup script (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.
Crea un grupo de instancias gestionado. En la Google Cloud consola, ve a la página Grupos de instancias.
- Haz clic en Crear grupo de instancias.
- Elige Nuevo grupo de instancias gestionado (sin reconocimiento del estado). Para obtener más información, consulta Grupos de instancias gestionados con o sin reconocimiento del estado.
- En Nombre, escribe
l7-ilb-backend-example
. - En Ubicación, selecciona Una sola zona.
- En Región, selecciona
us-west1
. - En Zona, selecciona
us-west1-a
. - En Plantilla de instancia, selecciona
l7-ilb-backend-template
. Especifica el número de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones para Escalado automático:
- En Modo de autoescalado, selecciona
Off:do not autoscale
. - En Número máximo de instancias, introduce
2
.
Opcionalmente, en la sección Auto escalado de la interfaz de usuario, puede configurar el grupo de instancias para que añada o elimine instancias automáticamente en función del uso de la CPU de las instancias.
- En Modo de autoescalado, selecciona
Haz clic en Crear.
gcloud
En las gcloud
instrucciones de esta guía se presupone que usas Cloud Shell u otro entorno con bash instalado.
Crea una plantilla de instancia de VM con un servidor HTTP mediante el comando
gcloud compute instance-templates create
.gcloud compute instance-templates create l7-ilb-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=allow-ssh,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 gestionado en la zona con el comando
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create l7-ilb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-ilb-backend-template \ --project=SERVICE_PROJECT_ID
Terraform
Crea una plantilla de instancia de VM.
Crea un grupo de instancias gestionado.
En HTTP:
Para HTTPS:
Configurar el balanceador de carga
En esta sección se explica cómo crear los recursos del balanceador de carga de aplicaciones interno:
- Comprobación del estado de HTTP
- Servicio de backend con un grupo de instancias gestionado como backend
- Un mapa de URLs
- Certificado SSL (solo es obligatorio para HTTPS)
- Proxy de destino
- Regla de reenvío
Disponibilidad de proxy
En función del número de proyectos de servicio que utilicen la misma red de VPC compartida, es posible que alcances las cuotas o los límites más rápido que en el modelo de implementación de red en el que cada proyecto aloja su propia red. Google Cloud
Por ejemplo, a veces las Google Cloud regiones no tienen suficiente capacidad de proxy para un nuevo balanceador de carga de aplicación interno. Si esto ocurre, la Google Cloud consola proporciona un mensaje de advertencia de disponibilidad de proxy cuando creas tu balanceador de carga. Para solucionar este problema, puedes hacer lo siguiente:
- Espera a que se resuelva el problema de capacidad.
Ponte en contacto con tu Google Cloud equipo de Ventas para aumentar estos límites.
Consola
Cambiar el contexto al proyecto de servicio
- En la Google Cloud consola, ve a la página Panel de control.
- En la parte superior de la página, haz clic en la lista Seleccionar de. En la ventana Seleccionar de que aparece, selecciona el proyecto de servicio en el que quieres crear el balanceador de carga.
Selecciona el tipo de balanceador de carga
En la Google Cloud consola, ve a la página Balanceo de carga.
- Haga clic en Crear balanceador de carga.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
- En Público o interno, selecciona Interno y haz clic en Siguiente.
- En Implementación en una sola región o en varias regiones, selecciona La mejor opción para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- En Name (Nombre) del balanceador de carga, introduce
l7-ilb-shared-vpc
. - En Región, seleccione
us-west1
. En Red, selecciona lb-network (en Proyecto: HOST_PROJECT_ID).
Si ves la advertencia La subred de solo proxy es obligatoria en la red VPC compartida, confirma que el administrador del proyecto host ha creado la
proxy-only-subnet
en la regiónus-west1
de la red VPC compartidalb-network
. La creación del balanceador de carga se realiza correctamente aunque no tengas permiso para ver la subred de solo proxy en esta página.Mantén la ventana abierta para continuar.
Configurar el backend
- Haz clic en Configuración de backend.
- En el menú Crear o seleccionar servicios de backend, selecciona Crear un servicio de backend.
- Asigna el valor
l7-ilb-backend-service
al Nombre del servicio de backend. - En Tipo de backend, selecciona Grupos de instancias.
- En la sección Nuevo backend, haz lo siguiente:
- Asigna el valor
l7-ilb-backend-example
a Grupo de instancias. - Define Números de puerto en
80
. - En Modo de balanceo, seleccione Utilización.
- Haz clic en Listo.
- Asigna el valor
- En la sección Comprobación del estado, elige Crear comprobación del estado con los siguientes parámetros:
- Nombre:
l7-ilb-basic-check
- Protocolo:
HTTP
- Puerto:
80
- Nombre:
- Haz clic en Guardar y continuar.
- Haz clic en Crear.
Configurar las reglas de enrutamiento
- Haz clic en Reglas de enrutamiento. Asegúrate de que
l7-ilb-backend-service
sea el único servicio de backend para cualquier host o ruta sin coincidencia.
Para obtener información sobre la gestión del tráfico, consulta Configurar la gestión del tráfico.
Configurar el frontend
En HTTP:
- Haz clic en Configuración de frontend.
- Asigna el valor
l7-ilb-forwarding-rule
a Nombre. - Define Protocol (Protocolo) como
HTTP
. - Asigna el valor
lb-frontend-and-backend-subnet
a Subred. No selecciones la subred solo proxy para el frontend, aunque sea una opción de la lista. - Asigna el valor
80
a Port. - Haz clic en el menú Dirección IP y, a continuación, en Crear dirección IP.
- En el panel Reservar una dirección IP interna estática, proporciona los siguientes detalles:
- En Nombre, escribe
ip-address-shared-vpc
. - En Dirección IP estática, haz clic en Quiero elegir. En Dirección IP personalizada, introduce
10.1.2.99
. - (Opcional) Si quieres compartir esta dirección IP con diferentes frontends, define Propósito como Compartido.
- En Nombre, escribe
- Haz clic en Listo.
Para HTTPS:
Si usas HTTPS entre el cliente y el balanceador de carga, necesitas uno o varios recursos de certificado SSL para configurar el proxy. Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Actualmente, los certificados gestionados por Google no se admiten en los balanceadores de carga de aplicaciones internos.
- Haz clic en Configuración de frontend.
- En el campo Name (Nombre), introduce
l7-ilb-forwarding-rule
. - En el campo Protocol (Protocolo), selecciona
HTTPS (includes HTTP/2)
. - Asigna el valor
lb-frontend-and-backend-subnet
a Subred. No selecciones la subred solo proxy para el frontend, aunque sea una opción de la lista. - Asegúrate de que el Puerto esté configurado como
443
para permitir el tráfico HTTPS. - Haz clic en el menú Dirección IP y, a continuación, en Crear dirección IP.
- En el panel Reservar una dirección IP interna estática, proporciona los siguientes detalles:
- En Nombre, escribe
ip-address-shared-vpc
. - En Dirección IP estática, haz clic en Quiero elegir. En Dirección IP personalizada, introduce
10.1.2.99
. - (Opcional) Si quieres compartir esta dirección IP con diferentes frontends, define Propósito como Compartido.
- En Nombre, escribe
- Haz clic en la lista Certificado.
- Si ya tienes un recurso de certificado SSL autogestionado que quieres usar como certificado SSL principal, selecciónalo en el menú.
- De lo contrario, selecciona Crear un certificado.
- Escribe un nombre de
l7-ilb-cert
. - En los campos correspondientes, sube los archivos con formato PEM:
- Certificado de clave pública
- Cadena de certificados
- Clave privada
- Haz clic en Crear.
- Escribe un nombre de
- Para añadir recursos de certificado además del recurso de certificado SSL principal, sigue estos pasos:
- Haz clic en Añadir certificado.
- Selecciona un certificado de la lista Certificados o haz clic en Crear un certificado y sigue las instrucciones anteriores.
- Haz clic en Listo.
Revisar y finalizar la configuración
- Haz clic en Crear.
gcloud
Define la comprobación del estado de HTTP con el comando
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-ilb-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-ilb-backend-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Añade backends al servicio de backend con el comando
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend l7-ilb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crea el mapa de URLs con el comando
gcloud compute url-maps create
.gcloud compute url-maps create l7-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crea el proxy de destino.
En HTTP:
En el caso de un balanceador de carga HTTP interno, crea el proxy de destino con el comando
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-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. Actualmente, los certificados gestionados por Google no se admiten en los balanceadores de carga de aplicaciones internos.
Asigna las rutas de los 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-ilb-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-ilb-proxy \ --url-map=l7-ilb-map \ --region=us-west1 \ --ssl-certificates=l7-ilb-cert \ --project=SERVICE_PROJECT_ID
Crea la regla de reenvío.
En el caso de las redes personalizadas, debes hacer referencia a la subred en la regla de reenvío.
En la dirección IP de la regla de reenvío, usa
lb-frontend-and-backend-subnet
. Si intentas usar la subred de solo proxy, se producirá un error al crear la regla de reenvío.En HTTP:
Usa el comando
gcloud compute forwarding-rules create
con las marcas correctas.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_ID
Para HTTPS:
Usa el comando
gcloud compute forwarding-rules create
con las marcas correctas.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1 \ --project=SERVICE_PROJECT_ID
Terraform
Define la comprobación del estado de HTTP.
En HTTP:
Para HTTPS:
Define el servicio de backend.
Crea el mapa de URLs.
Crea el proxy de destino.
En HTTP:
Para HTTPS: Crea un certificado SSL regional.
Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Actualmente, los certificados gestionados por Google no se admiten en los balanceadores de carga de aplicaciones internos.
Usar el certificado SSL regional para crear un proxy de destino
Crea la regla de reenvío.
En el caso de las redes personalizadas, debes hacer referencia a la subred en la regla de reenvío.
En HTTP:
Para HTTPS:
Probar el balanceador de carga
Para probar el balanceador de carga, primero crea una VM cliente de muestra. A continuación, establece una sesión SSH con la VM y envía tráfico desde esta VM al balanceador de carga.
Crear una instancia de VM de prueba
Los clientes pueden estar ubicados en el proyecto del host o en cualquier proyecto de servicio conectado. En este ejemplo, comprobarás que el balanceador de carga funciona desplegando una VM cliente en un proyecto de servicio. El cliente debe usar la misma red de VPC compartida y estar en la misma región que el balanceador de carga.
Consola
En la consola de Google Cloud , ve a la página Instancias de VM.
Haz clic en Crear instancia.
Asigna el valor
client-vm
a Nombre.En Zona, selecciona us-west1-a.
Haz clic en Opciones avanzadas y, a continuación, en Redes.
Introduce las siguientes etiquetas de red:
allow-ssh
,load-balanced-backend
.En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: HOST_PROJECT_ID).
Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
.Haz clic en Crear.
gcloud
Crea una instancia de VM de prueba.
gcloud compute instances create client-vm \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh \ --project=SERVICE_PROJECT_ID
Terraform
Crea una instancia de VM de prueba.
Enviar tráfico al balanceador de carga
Usa SSH para conectarte a la instancia que acabas de crear y comprueba que se puede acceder a los servicios HTTP(S) de los backends a través de la dirección IP de la regla de reenvío del balanceador de carga de aplicaciones interno y que el tráfico se balancea entre las instancias de backend.
Conéctate a la instancia de cliente con SSH.
gcloud compute ssh client-vm \ --zone=us-west1-a
Verifica que la dirección IP esté sirviendo su nombre de host. Sustituye LB_IP_ADDRESS por la dirección IP del balanceador de carga.
curl LB_IP_ADDRESS
Para las pruebas de HTTPS, sustituye
curl
por lo siguiente:curl -k -s 'https://LB_IP_ADDRESS:443'
La marca
-k
hace que curl omita la validación del certificado.
Configurar un balanceador de carga 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 carga y sus backends se crean en el proyecto de servicio.
Los balanceadores de carga de aplicaciones internos también te permiten configurar implementaciones de VPC compartida en las que un mapa de URLs de un proyecto de host o de servicio puede hacer referencia a servicios backend (y backends) ubicados en varios proyectos de servicio en entornos de VPC compartida. Esto se conoce como referencia de servicios entre proyectos.
Puede usar los pasos de esta sección como referencia para configurar cualquiera de las combinaciones admitidas que se indican a continuación:
- Regla de reenvío, proxy de destino y mapa de URLs en el proyecto host, y servicio de backend en un proyecto de servicio
- Regla de reenvío, proxy de destino y mapa de URLs en un proyecto de servicio, y servicio de backend en otro proyecto de servicio
Se pueden usar referencias de servicios entre proyectos con grupos de instancias, NEGs sin servidor o cualquier otro tipo de backend admitido. Si usas NEGs sin servidor, debes crear una VM en la red de VPC en la que quieras crear el frontend del balanceador de carga. Para ver un ejemplo, consulta Crear una instancia de VM en una subred específica en Configurar un balanceador de carga de aplicaciones interno con Cloud Run.
Requisitos de configuración
En este ejemplo se configura un balanceador de carga de muestra con su frontend y su backend en dos proyectos de servicio diferentes.
Si aún no lo has hecho, debes completar todos los pasos previos para configurar la VPC compartida y configurar la red, las subredes y las reglas de firewall necesarias para este ejemplo. Para obtener instrucciones, consulta lo siguiente:
Crear 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.
Consola
Crea una plantilla de instancia. En la consola, ve a la página Plantillas de instancia. Google Cloud
- Haz clic en Crear plantilla de instancia.
- Introduce un nombre para la plantilla de instancia:
cross-ref-backend-template
. - Asegúrate de que el disco de arranque esté configurado con 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, a continuación, en Redes.
- Introduce las siguientes etiquetas de red:
allow-ssh
,load-balanced-backend
. - En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: HOST_PROJECT_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. - Haz clic en Gestión. En Management (Gestión), inserta la siguiente secuencia de comandos en el campo Startup script (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.
Crea un grupo de instancias gestionado. En la Google Cloud consola, ve a la página Grupos de instancias.
- Haz clic en Crear grupo de instancias.
- Elige Nuevo grupo de instancias gestionado (sin reconocimiento del estado). Para obtener más información, consulta Grupos de instancias gestionados con o sin reconocimiento del estado.
- Introduzca un nombre para el grupo de instancias:
cross-ref-ig-backend
. - En Ubicación, selecciona Una sola zona.
- En Región, selecciona
us-west1
. - En Zona, selecciona
us-west1-a
. - En Plantilla de instancia, selecciona cross-ref-backend-template.
Especifica el número de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones para Escalado automático:
- En Modo de autoescalado, selecciona
Off:do not autoscale
. - En Número máximo de instancias, introduce
2
.
Opcionalmente, en la sección Auto escalado de la interfaz de usuario, puede configurar el grupo de instancias para que añada o elimine instancias automáticamente en función del uso de la CPU de las instancias.
- En Modo de autoescalado, selecciona
Haz clic en Crear.
Crea un servicio backend regional. Como parte de este paso, también crearemos la comprobación del estado y añadiremos back-ends al servicio de back-end. En la Google Cloud consola, ve a la página Backends.
- Haz clic en Crear servicio backend regional.
- Introduce un nombre para el servicio de backend:
cross-ref-backend-service
. - En Region (Región), selecciona us-west1.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación interno regional (INTERNAL_MANAGED).
- En Tipo de backend, seleccione Grupos de instancias.
- En la sección Backends, defina Network como lb-network.
- Haz clic en Añadir backend y define los siguientes campos:
- Asigna el valor cross-ref-ig-backend al campo Grupo de instancias.
- Introduce los números de puerto:
80
. - En Modo de balanceo, selecciona Utilización.
- Haz clic en Listo.
- En la sección Comprobación del estado, elige Crear comprobación del estado con los siguientes parámetros:
- Nombre:
cross-ref-http-health-check
- Protocolo:
HTTP
- Puerto:
80
- Haz clic en Guardar.
- Nombre:
- Haz clic en Continuar.
Opcional: En la sección Añadir permisos, introduce las entidades de IAM (normalmente, una dirección de correo electrónico) de los administradores de balanceadores de carga de otros proyectos para que puedan usar este servicio de backend en los balanceadores de carga de sus propios proyectos. Sin este permiso, no puedes usar referencias de servicios entre proyectos.
Si no tienes permiso para definir políticas de control de acceso para los servicios de backend de este proyecto, puedes crear el servicio de backend ahora y un usuario autorizado puede realizar este paso más adelante, tal como se describe en la sección Conceder permisos al administrador del balanceador de carga para usar el servicio de backend. En esa sección también se describe cómo conceder acceso a todos los servicios de backend de este proyecto para que no tengas que hacerlo cada vez que crees un nuevo servicio de backend.
Haz clic en Crear.
gcloud
Crea una plantilla de instancia de VM con un servidor HTTP mediante 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=allow-ssh,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
Haz los cambios siguientes:
BACKEND_IG_TEMPLATE
: el nombre de la plantilla del grupo de instancias.SERVICE_PROJECT_B_ID
: el ID del proyecto de servicio B, donde se están creando los backends del balanceador de carga y el servicio de backend.HOST_PROJECT_ID
: el ID del proyecto host de la VPC compartida.
Crea un grupo de instancias gestionado 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
Haz los cambios siguientes:
BACKEND_MIG
: el nombre del grupo de instancias de backend.
Define la comprobación del 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
Haz los cambios siguientes:
HTTP_HEALTH_CHECK_NAME
: nombre de la comprobación de estado 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=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Haz los cambios siguientes:
BACKEND_SERVICE_NAME
: el nombre del servicio backend creado en el proyecto de servicio B.
Añade 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
Terraform
Crea una plantilla de instancia.
Crea un grupo de instancias gestionado.
Para HTTP
Para HTTPS
Crea una comprobación del estado del backend.
Para HTTP
Para HTTPS
Crea un servicio backend regional.
Crea el frontend del balanceador de carga y el mapa de URLs en el proyecto de servicio A
Todos los pasos de esta sección deben realizarse en el proyecto de servicio A.
Consola
Selecciona el tipo de balanceador de carga
En la Google Cloud consola, ve a la página Balanceo de carga.
- Haga clic en Crear balanceador de carga.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
- En Público o interno, selecciona Interno y haz clic en Siguiente.
- En Implementación en una sola región o en varias regiones, selecciona La mejor opción para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Introduce un nombre para el balanceador de carga.
- En Región, seleccione
us-west1
. En Red, selecciona lb-network (en Proyecto: HOST_PROJECT_NAME).
Si ves la advertencia La subred de solo proxy es obligatoria en la red VPC compartida, confirma que el administrador del proyecto host ha creado la
proxy-only-subnet
en la regiónus-west1
de la red VPC compartidalb-network
. La creación del balanceador de carga se realiza correctamente aunque no tengas permiso para ver la subred de solo proxy en esta página.Mantén la ventana abierta para continuar.
Configurar el backend
- Haz clic en Configuración de backend.
- Haz clic en Servicios de backend entre proyectos.
- En ID del proyecto, introduce el ID del proyecto del proyecto de servicio B.
- En la lista Seleccionar servicios backend, elige los servicios backend del proyecto de servicio B que quieras usar. En este ejemplo, escribe
cross-ref-backend-service
. - Haz clic en Aceptar.
Configurar las reglas de enrutamiento
- Haz clic en Reglas de enrutamiento. Asegúrate de que cross-ref-backend-service sea el único servicio de backend para cualquier host y ruta sin coincidencia.
Para obtener información sobre la gestión del tráfico, consulta Configurar la gestión del tráfico.
Configurar el frontend
Para que la referencia de servicios entre proyectos funcione, el frontend debe usar la misma red (lb-network
) del proyecto del host de VPC compartida que se usó para crear el servicio backend.
En HTTP:
- Haz clic en Configuración de frontend.
- Escribe un nombre para la regla de reenvío:
cross-ref-http-forwarding-rule
. - Define Protocol (Protocolo) como
HTTP
. - Asigna el valor
lb-frontend-and-backend-subnet
a Subred. No selecciones la subred solo proxy para el frontend, aunque sea una opción de la lista. - Asigna el valor
80
a Port. - Haz clic en el menú Dirección IP y, a continuación, en Crear dirección IP.
- En el panel Reservar una dirección IP interna estática, proporciona los siguientes detalles:
- En Nombre, escribe
cross-ref-ip-address
. - En Dirección IP estática, haz clic en Quiero elegir. En Dirección IP personalizada, introduce
10.1.2.98
. - (Opcional) Si quieres compartir esta dirección IP con diferentes frontends, define Propósito como Compartido.
- En Nombre, escribe
- Haz clic en Listo.
Para HTTPS:
Si usas HTTPS entre el cliente y el balanceador de carga, necesitas uno o varios recursos de certificado SSL para configurar el proxy. Para obtener información sobre cómo crear recursos de certificados SSL, consulta Certificados SSL. Actualmente, los certificados gestionados por Google no se admiten en los balanceadores de carga de aplicaciones internos.
- Haz clic en Configuración de frontend.
- Escribe un nombre para la regla de reenvío:
cross-ref-https-forwarding-rule
. - En el campo Protocol (Protocolo), selecciona
HTTPS (includes HTTP/2)
. - Asigna el valor
lb-frontend-and-backend-subnet
a Subred. No selecciones la subred solo proxy para el frontend, aunque sea una opción de la lista. - Asegúrate de que el Puerto esté configurado como
443
para permitir el tráfico HTTPS. - Haz clic en el menú Dirección IP y, a continuación, en Crear dirección IP.
- En el panel Reservar una dirección IP interna estática, proporciona los siguientes detalles:
- En Nombre, escribe
cross-ref-ip-address
. - En Dirección IP estática, haz clic en Quiero elegir. En Dirección IP personalizada, introduce
10.1.2.98
. - (Opcional) Si quieres compartir esta dirección IP con diferentes frontends, define Propósito como Compartido.
- En Nombre, escribe
- Haz clic en la lista Certificado.
- Si ya tienes un recurso de certificado SSL autogestionado que quieras usar como certificado SSL principal, selecciónalo en el menú.
- De lo contrario, selecciona Crear un certificado.
- Introduce un nombre para el certificado SSL.
- En los campos correspondientes, sube los archivos con formato PEM:
- Certificado de clave pública
- Cadena de certificados
- Clave privada
- Haz clic en Crear.
- Para añadir recursos de certificado además del recurso de certificado SSL principal, sigue estos pasos:
- Haz clic en Añadir certificado.
- Selecciona un certificado de la lista Certificados o haz clic en Crear un certificado y sigue las instrucciones anteriores.
- Haz clic en Listo.
Revisar y finalizar la configuración
- Haz clic en Crear.
Probar el balanceador de carga
Una vez creado el balanceador de carga, pruébalo siguiendo los pasos descritos en Probar el balanceador de carga.
gcloud
Opcional: Antes de crear un balanceador de carga con servicios de backend de referencia cruzada, averigua si los servicios de backend a los que quieres hacer referencia se pueden referenciar mediante un mapa de URLs:
gcloud compute backend-services list-usable \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Crea el mapa de URLs y define 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
Haz los cambios siguientes:
URL_MAP_NAME
: nombre del mapa de URLs.BACKEND_SERVICE_NAME
: el nombre del servicio backend creado en el proyecto de servicio B.SERVICE_PROJECT_B_ID
: el ID del proyecto de servicio B, donde se crean los backends del balanceador de carga y el servicio de backend.SERVICE_PROJECT_A_ID
: el ID del proyecto de servicio A, donde se está creando el frontend del balanceador de carga.
La creación del mapa de URLs falla si no tienes el permiso
compute.backendServices.use
para el servicio backend en el proyecto de servicio B.Crea el proxy de destino.
En 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
Haz los cambios siguientes:
HTTP_TARGET_PROXY_NAME
: 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
Haz los cambios siguientes:
SSL_CERTIFICATE_NAME
: nombre del recurso de certificado SSL.PATH_TO_CERTIFICATE
: ruta al archivo de certificado SSL local en formato PEM.PATH_TO_PRIVATE_KEY
: 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
Haz los cambios siguientes:
HTTPS_TARGET_PROXY_NAME
: nombre del proxy HTTPS de destino.
Crea la regla de reenvío. Para que funcione la referencia de servicios entre proyectos, la regla de reenvío debe usar la misma red (
lb-network
) del proyecto del host de VPC compartida que se usó para crear el servicio de backend.En HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Haz los cambios siguientes:
HTTP_FORWARDING_RULE_NAME
: el nombre de la regla de reenvío que se usa para gestionar el tráfico HTTP.
Para HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Haz los cambios siguientes:
HTTPS_FORWARDING_RULE_NAME
: el nombre de la regla de reenvío que se usa para gestionar el tráfico HTTPS.
Para probar el balanceador de carga, sigue los pasos que se describen en Probar el balanceador de carga.
Terraform
Crea el mapa de URLs.
Crea el proxy de destino.
Para HTTP
Para HTTPS
Crear un certificado SSL regional
Usar el certificado SSL regional para crear un proxy de destino
Crea la regla de reenvío.
Para HTTP
Para HTTPS
Para probar el balanceador de carga, sigue los pasos que se describen en Probar el balanceador de carga.
Concede permisos al administrador del balanceador de carga para usar el servicio de backend
Si quieres que los balanceadores de carga hagan referencia a servicios de backend de otros proyectos de servicio, el administrador del balanceador de carga debe tener el permiso compute.backendServices.use
. Para conceder este permiso, puedes usar el rol de gestión de identidades y accesos predefinido llamado Usuario de servicios de balanceador de carga de Compute (roles/compute.loadBalancerServiceUser
). El administrador del proyecto de servicio debe conceder este rol, que se puede aplicar a nivel de proyecto o a nivel de servicio de backend individual.
Este paso no es obligatorio si ya has concedido los permisos necesarios a nivel del servicio backend al crear el servicio backend. Puedes saltarte esta sección o seguir leyendo para saber cómo conceder acceso a todos los servicios de backend de este proyecto para que no tengas que conceder acceso cada vez que crees un nuevo servicio de backend.
En este ejemplo, un administrador del proyecto de servicio B debe ejecutar uno de los siguientes comandos para conceder el permiso compute.backendServices.use
a un administrador del balanceador de carga del proyecto de servicio A. Puedes hacerlo a nivel de proyecto (para todos los servicios de backend del proyecto) o por servicio de backend.
Consola
Permisos de nivel de proyecto
Sigue estos pasos para conceder permisos a todos los servicios backend de tu proyecto.
Para completar este paso, necesitas los permisos compute.regionBackendServices.setIamPolicy
y resourcemanager.projects.setIamPolicy
.
En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Selecciona el proyecto.
Haz clic en
Conceder acceso.En el campo Nuevos principales, introduce la dirección de correo u otro identificador del principal.
En la lista Seleccionar un rol, selecciona Usuario de servicios de balanceador de carga de Compute.
Opcional: Añade una condición al rol.
Haz clic en Guardar.
Permisos a nivel de recurso para servicios de backend concretos
Sigue estos pasos para conceder permisos a servicios backend concretos de tu proyecto.
Necesitas el permiso compute.regionBackendServices.setIamPolicy
para completar este paso.
En la Google Cloud consola, ve a la página Backends.
En la lista de back-ends, selecciona el servicio de back-end al que quieras dar acceso y haz clic en
Permisos.Haz clic en
Añadir principal.En el campo Nuevos principales, introduce la dirección de correo u otro identificador del principal.
En la lista Seleccionar un rol, selecciona Usuario de servicios de balanceador de carga de Compute.
Haz clic en Guardar.
gcloud
Permisos de nivel de proyecto
Sigue estos pasos para conceder permisos a todos los servicios backend de tu proyecto.
Para completar este paso, necesitas los permisos compute.regionBackendServices.setIamPolicy
y resourcemanager.projects.setIamPolicy
.
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 concretos
A nivel de servicio backend, los administradores del proyecto de servicio pueden usar cualquiera de los siguientes comandos para conceder el rol Usuario de servicios de balanceador de carga 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, sustituye LOAD_BALANCER_ADMIN
por el principal del usuario. Por ejemplo, test-user@gmail.com
.
También puedes configurar permisos de gestión de identidades y accesos para que solo se apliquen a un subconjunto de servicios backend regionales mediante condiciones y especificando atributos de condición.
Para ver los mapas de URLs que hacen referencia a un servicio de backend de VPC compartida concreto, 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
Haz los cambios siguientes:
BACKEND_SERVICE_NAME
: el nombre del servicio de backend del balanceador de cargaREGION
: la región del balanceador de carga
En el resultado del comando, consulta el campo usedBy
, que muestra los recursos que hacen referencia al servicio de backend, tal 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
Siguientes pasos
- Puedes restringir el uso de las funciones de VPC compartida, como la referencia de servicios entre proyectos, en tu proyecto mediante restricciones de la política de organización. Para obtener más información, consulta Restricciones de políticas de organización de Cloud Load Balancing.
- Para gestionar el recurso de subred de solo proxy que requieren los balanceadores de carga de aplicación internos, consulta Subred de solo proxy para balanceadores de carga de aplicación internos.
- Para saber cómo solucionar problemas con un balanceador de carga de aplicación interno, consulta el artículo Solucionar problemas de balanceadores de carga de aplicación internos.
- Limpiar la configuración del balanceador de carga.