En este documento, se muestran dos opciones de configuración de muestra para configurar un balanceador de cargas de aplicaciones interno entre regiones en un entorno de VPC compartida con buckets de Cloud Storage:
- 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 bucket de backend y los buckets de Cloud Storage del balanceador de cargas se crean en un proyecto de servicio diferente.
Ambos ejemplos requieren la misma configuración inicial para otorgar los roles necesarios y configurar una VPC compartida antes de que puedas comenzar a crear balanceadores de cargas.
Además de las configuraciones de ejemplo mencionadas en este documento, también puedes configurar una implementación de VPC compartida en la que el frontend y el mapa de URL del balanceador de cargas se creen en el proyecto host, y los buckets de backend, junto con los buckets de Cloud Storage, se creen en un proyecto de servicio. 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 interno entre regiones con buckets de Cloud Storage.
Antes de comenzar
Asegúrate de que tu configuración cumpla con los requisitos.
Crear proyectos de Google Cloud
Crea Google Cloud proyectos para un host y dos proyectos de servicio.
Roles obligatorios
Para obtener los permisos que necesitas para configurar un balanceador de cargas de aplicaciones externo regional en un entorno de VPC compartida con buckets de Cloud Storage, pídele a tu administrador que te otorgue los siguientes roles de IAM :
-
Para configurar la VPC compartida, haz lo siguiente:
Administrador de VPC compartida de Compute (
roles/compute.xpnAdmin) en el proyecto host -
Para proporcionar acceso a un administrador del proyecto de servicio para usar la red de VPC compartida, haz lo siguiente:
Usuario de red de Compute (
roles/compute.networkUser) en el proyecto host -
Para crear buckets de Cloud Storage:
Administrador de objetos de Storage (
roles/storage.objectAdmin) en el proyecto de servicio -
Para crear los recursos de balanceo de cargas, ve a:
Administrador de red de Compute (
roles/compute.networkAdmin) en el proyecto de servicio -
Para crear instancias de Compute Engine, ve a:
Administrador de instancias de Compute (
roles/compute.instanceAdmin.v1) en el proyecto de servicio -
Para crear y modificar certificados SSL del Administrador de certificados, debes tener el rol de Propietario del Administrador de certificados (
roles/certificatemanager.owner) en el proyecto de servicio. -
Para hacer referencia a buckets de backend en otros proyectos de servicio, haz lo siguiente:
Usuario de servicios del balanceador de cargas de Compute (
roles/compute.loadBalancerServiceUser) en el proyecto de servicio
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Configura un entorno de VPC compartida
Completa los siguientes pasos en el proyecto host para configurar un entorno de VPC compartida:
- Configura las subredes para las reglas de reenvío del balanceador de cargas.
- Configura las subredes de solo proxy.
- Configura una regla de firewall.
- Configura una 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.
El proyecto host usa la siguiente red de VPC, región y subredes:
Red. Es una red de VPC de modo personalizado con el nombre
lb-network.Subredes para el balanceador de cargas. Una subred llamada
subnet-usen la regiónus-east1usa10.1.2.0/24para su rango de IP principal. Una subred llamadasubnet-asiaen la regiónasia-east1usa10.1.3.0/24para su rango de IP principal.Subred para proxies de Envoy. Una subred llamada
proxy-only-subnet-us-east1en la regiónus-east1usa10.129.0.0/23para su rango de IP principal. Una subred llamadaproxy-only-subnet-asia-east1en la regiónasia-east1usa10.130.0.0/23para su rango de IP principal.
Configura las subredes para las reglas de reenvío del balanceador de cargas
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, selecciona Personalizado en Modo de creación de subred.
En la sección Subred nueva, ingresa la siguiente información:
- Nombre:
subnet-us - Selecciona una Región:
us-east1 - Rangos de direcciones IP:
10.1.2.0/24
- Nombre:
Haz clic en Listo.
Haz clic en Agregar subred.
Crea otra subred para la regla de reenvío del balanceador de cargas en una región diferente. En la sección Subred nueva, ingresa la siguiente información:
- Nombre:
subnet-asia - Región:
asia-east1 - Rangos de direcciones IP:
10.1.3.0/24
- Nombre:
Haz clic en Listo.
Haz clic en Crear.
gcloud
Crea una red de VPC personalizada, llamada
lb-network, con el comandogcloud compute networks create.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=HOST_PROJECT_IDCrea una subred, llamada
subnet-us, en la red de VPClb-networken la regiónus-east1con el comandogcloud compute networks subnets create.gcloud compute networks subnets create subnet-us \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-east1 \ --project=HOST_PROJECT_IDCrea una subred, llamada
subnet-asia, en la red de VPClb-networken la regiónasia-east1con el comandogcloud compute networks subnets create.gcloud compute networks subnets create subnet-asia \ --network=lb-network \ --range=10.1.3.0/24 \ --region=asia-east1 \ --project=HOST_PROJECT_IDReemplaza
HOST_PROJECT_IDpor elGoogle Cloud ID del proyecto asignado al proyecto que está habilitado como proyecto host en un entorno de VPC compartida.
Configura las subredes de solo proxy
Una subred de solo proxy proporciona un conjunto de direcciones IP que Google Cloud usa para ejecutar proxies de Envoy en tu nombre. Los proxies finalizan las conexiones del cliente y crean conexiones nuevas a los backends.
Todos los balanceadores de cargas regionales basados en Envoy usan esta subred de solo proxy en la misma región de la red de VPC. Solo puede haber una subred de solo proxy activa para un propósito determinado, por región y por red. En este ejemplo, creamos dos subredes de solo proxy: una en la región us-east1 y la otra en la región asia-east1.
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 que creaste.
En la pestaña Subred, haz clic en Agregar subred.
Ingresa la siguiente información:
- En Nombre, ingresa
proxy-only-subnet-us. - En Región, ingresa
us-east1. - En Propósito, selecciona Proxy administrado entre regiones.
- En Rango de direcciones IP, ingresa
10.129.0.0/23.
- En Nombre, ingresa
Haz clic en Agregar.
Crea otra subred de solo proxy en la región
asia-east1. En la pestaña Subred, haz clic en Agregar subred.Ingresa la siguiente información:
- En Nombre, ingresa
proxy-only-subnet-asia. - En Región, ingresa
asia-east1. - En Propósito, selecciona Proxy administrado entre regiones.
- En Rango de direcciones IP, ingresa
10.130.0.0/23.
- En Nombre, ingresa
Haz clic en Agregar.
gcloud
Crea una subred de solo proxy en la región
us-east1con el comandogcloud compute networks subnets create.En este ejemplo, la subred de solo proxy se llama
proxy-only-subnet-us.gcloud compute networks subnets create proxy-only-subnet-us \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-east1 \ --network=lb-network \ --range=10.129.0.0/23 \ --project=HOST_PROJECT_IDCrea una subred de solo proxy en la región
asia-east1con el comandogcloud compute networks subnets create.En este ejemplo, la subred de solo proxy se llama
proxy-only-subnet-asia.gcloud compute networks subnets create proxy-only-subnet-asia \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=asia-east1 \ --network=lb-network \ --range=10.130.0.0/23 \ --project=HOST_PROJECT_IDReemplaza
HOST_PROJECT_IDpor elGoogle Cloud ID del proyecto asignado al proyecto host.
Configura una regla de firewall
En este ejemplo, se usa una regla de firewall de entrada que permite el acceso SSH en el puerto 22 a la VM del cliente. En este ejemplo, la regla de firewall se llama fw-allow-ssh.
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 permite conexiones SSH entrantes en la VM del cliente:
- Nombre:
fw-allow-ssh - Red:
lb-network - Dirección del tráfico: Entrada
- Acción en caso de coincidencia: Permitir
- Destinos: Etiquetas de destino especificadas
- Etiquetas de destino:
allow-ssh - Filtro de fuente: Rangos de IPv4
- Rangos de IPv4 de origen:
0.0.0.0/0 - Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Selecciona la casilla de verificación TCP y, luego, ingresa
22para el número de puerto.
- Nombre:
Haz clic en Crear.
gcloud
Crea una regla de firewall para permitir la conectividad SSH a las VMs con la etiqueta de red
allow-ssh. Cuando omites--source-ranges,Google Cloud interpreta que la regla significa cualquier fuente.En este ejemplo, la regla de firewall se llama
fw-allow-ssh.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22 \ --project=HOST_PROJECT_IDReemplaza
HOST_PROJECT_IDpor elGoogle Cloud ID del proyecto asignado al proyecto host.
Configura una VPC compartida en el proyecto host
Puedes 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:
Después de completar los pasos anteriores, puedes realizar una de las siguientes configuraciones:
- Configura un balanceador de cargas en el proyecto de servicio
- Configura un balanceador de cargas con una configuración entre proyectos
Configura un balanceador de cargas en el proyecto de servicio
En este ejemplo, se crea un balanceador de cargas de aplicaciones interno entre regiones en el que todos los componentes de balanceo de cargas (regla de reenvío, proxy de destino, mapa de URL y bucket de backend) y los buckets de Cloud Storage se crean en el proyecto de servicio.
Los recursos de redes del balanceador de cargas, como la subred de VPC, la subred de solo proxy y la regla de firewall, se crean en el proyecto host.
En esta sección, se muestra cómo configurar el balanceador de cargas y los backends.
En los ejemplos de configuración 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, en lugar de permitir que se asigne una dirección IP efímera. Recomendamos reservar direcciones IP para las reglas de reenvío.
Configura tus buckets de Cloud Storage
El proceso para configurar tus buckets de Cloud Storage es el siguiente:
- Crea los buckets de Cloud Storage.
- Copia contenido en los buckets de Cloud Storage.
- Haz que los buckets de Cloud Storage sean de acceso público.
Crea los buckets de Cloud Storage
En este ejemplo, crearás dos buckets de Cloud Storage, uno en la región us-east1 y otro en la región asia-east1. Para las implementaciones de producción, te recomendamos que elijas un bucket multirregión, que replica de manera automática los objetos en varias regiones de Google Cloud . Esto puede mejorar la disponibilidad de tu contenido y la tolerancia a errores en tu aplicación.
Console
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
Haga clic en Crear.
En la sección Primeros pasos, ingresa un nombre global único que siga los lineamientos de nomenclatura.
Haz clic en Elige dónde almacenar tus datos.
Configura Tipo de ubicación como Región.
En la lista de regiones, selecciona us-east1.
Haz clic en Crear.
Haz clic en Buckets para volver a la página Buckets de Cloud Storage. Usa estas instrucciones para crear un segundo bucket, pero establece la Ubicación en asia-east1.
gcloud
Crea el primer bucket en la región
us-east1con el comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET1_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_IDCrea el segundo bucket en la región
asia-east1con el comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=asia-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_IDReemplaza lo siguiente:
BUCKET1_NAMEyBUCKET2_NAME: Nombres de bucket de Cloud StorageSERVICE_PROJECT_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio
Copia contenido a los buckets de Cloud Storage
Para completar los buckets de Cloud Storage, copia un archivo gráfico de un bucket público de Cloud Storage en tus propios buckets de Cloud Storage.
Ejecuta los siguientes comandos en Cloud Shell y reemplaza las variables de nombre del bucket por los nombres únicos de tus bucket de Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
Reemplaza BUCKET1_NAME y BUCKET2_NAME por los nombres de bucket de Cloud Storage.
Haz que los buckets de Cloud Storage sean de acceso público
Para que todos los objetos de un bucket sean legibles para todos en la Internet pública,
otorga a la principal allUsers el rol de visualizador de objetos de Storage
(roles/storage.objectViewer).
Console
A fin de otorgar a todos los usuarios acceso para ver objetos en tus buckets, repite el siguiente procedimiento para cada bucket:
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket que deseas hacer público.
Selecciona la pestaña Permisos.
En la sección Permisos, haz clic en el botón Otorgar acceso. Aparecerá el cuadro de diálogo Otorgar acceso.
En el campo Principales nuevas, ingresa
allUsers.En el campo Seleccionar un rol, ingresa
Storage Object Vieweren el cuadro de filtro y selecciona Visualizador de objetos de Storage a partir de los resultados filtrados.Haz clic en Guardar.
Haz clic en Permitir acceso público.
gcloud
Para otorgar a todos los usuarios acceso para ver objetos en tus buckets, ejecuta el comando gcloud storage buckets add-iam-policy-binding.
gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer
Reemplaza BUCKET1_NAME y BUCKET2_NAME por los nombres de bucket de Cloud Storage.
Reserva la dirección IP del balanceador de cargas
Reserva una dirección IP interna estática para lo siguiente:
- Regla de reenvío en la región
us-east1 Regla de reenvío en la región
asia-east1
Console
En la consola de Google Cloud , ve a la página Direcciones IP.
Haz clic en Reservar interno.
En Nombre, ingresa un nombre para la dirección nueva.
En Versión de IP, selecciona IPv4.
Haz clic en Reservar si deseas reservar la dirección IP.
Vuelve a seguir estos pasos para reservar una dirección IP en la región
asia-east1.
gcloud
Para reservar una dirección IP interna estática en la región
us-east1, usa el comandogcloud compute addresses create.gcloud compute addresses create ADDRESS1_NAME \ --region=us-east1 \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --project=SERVICE_PROJECT_ID
Reemplaza lo siguiente:
ADDRESS1_NAME: El nombre que quieres asignar a esta dirección IPHOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostSERVICE_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto de servicio
Para reservar una dirección IP interna estática en la región
asia-east1, usa el comandogcloud compute addresses create.gcloud compute addresses create ADDRESS2_NAME \ --region=asia-east1 \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --project=SERVICE_PROJECT_ID
Reemplaza lo siguiente:
ADDRESS2_NAME: El nombre que deseas asignar a esta dirección IPHOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostSERVICE_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto de servicio
Usa el comando
gcloud compute addresses describepara ver el resultado:gcloud compute addresses describe ADDRESS1_NAME \ --project=SERVICE_PROJECT_ID
gcloud compute addresses describe ADDRESS2_NAME \ --project=SERVICE_PROJECT_ID
Reemplaza lo siguiente:
ADDRESS1_NAMEyADDRESS2_NAME: El nombre que asignaste a las direcciones IPSERVICE_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto de servicio
La dirección IP que se devuelve se denomina
RESERVED_IP_ADDRESSen las siguientes secciones.
Configura un recurso de certificado SSL
Para un balanceador de cargas de aplicaciones interno entre regiones que usa HTTPS como el protocolo de solicitud y respuesta, crea un recurso de certificado SSL con Certificate Manager como se describe en uno de los siguientes documentos:
- Implementa un certificado administrado por Google en varias regiones emitido por tu instancia de CA Service
- Implementa un certificado administrado por Google en varias regiones con autorización de DNS
- Implementa un certificado autoadministrado en varias regiones
Después de crear el certificado, puedes adjuntarlo al proxy HTTPS de destino.
Recomendamos que uses un certificado administrado por Google.
Configura el balanceador de cargas con buckets de backend
En esta sección, se muestra cómo crear los siguientes recursos para un balanceador de cargas de aplicaciones interno entre regiones:
- Dos buckets de backend Los buckets de backend actúan como wrapper para los buckets de Cloud Storage que creaste anteriormente.
- Mapa de URL
- Proxy de destino
- Dos reglas de reenvío global con direcciones IP regionales. A las reglas de reenvío se les asignan direcciones IP de las subredes creadas para las reglas de reenvío del balanceador de cargas. Si intentas asignar una dirección IP a la regla de reenvío desde la subred de solo proxy, la creación de la regla de reenvío fallará.
En este ejemplo, puedes usar HTTP o HTTPS como el protocolo de solicitud y respuesta entre el cliente y el balanceador de cargas. Si quieres crear un balanceador de cargas de HTTPS, debes agregar un recurso de certificado SSL al frontend del balanceador de cargas.
Para crear los componentes de balanceo de cargas mencionados anteriormente con gcloud CLI, sigue estos pasos:
Crea dos buckets de backend, uno para cada bucket de Cloud Storage, con el comando
gcloud compute backend-buckets create. Los buckets de backend tienen un esquema de balanceo de cargas deINTERNAL_MANAGED.En este ejemplo, los buckets de backend se llaman
backend-bucket-catsybackend-bucket-dogs, lo que indica el contenido de los buckets de Cloud Storage.gcloud compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_IDgcloud compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_IDReemplaza lo siguiente:
BUCKET1_NAMEyBUCKET2_NAME: Nombres de bucket de Cloud StorageSERVICE_PROJECT_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio
Crea un mapa de URL para enrutar las solicitudes entrantes al bucket de backend con el comando
gcloud compute url-maps create.En este ejemplo, el mapa de URL se llama
lb-map.gcloud compute url-maps create lb-map \ --default-backend-bucket=backend-bucket-cats \ --global \ --project=SERVICE_PROJECT_IDReemplaza
SERVICE_PROJECT_IDpor el ID del proyectoGoogle Cloud asignado al proyecto de servicio.Configura las reglas de host y ruta de acceso del mapa de URL con el comando
gcloud compute url-maps add-path-matcher.En este ejemplo, el bucket de backend predeterminado es
backend-bucket-cats, que controla todas las rutas de acceso que existen dentro de él. Sin embargo, cualquier solicitud dirigida ahttp://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpgusa el backend debackend-bucket-dogs. Por ejemplo, si la carpeta/love-to-fetch/también existe en tu backend predeterminado (backend-bucket-cats), el balanceador de cargas prioriza el backendbackend-bucket-dogsporque hay una regla de ruta específica para/love-to-fetch/*.gcloud compute url-maps add-path-matcher lb-map \ --path-matcher-name=path-matcher-pets \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=backend-bucket-dogs" \ --default-backend-bucket=backend-bucket-cats --project=SERVICE_PROJECT_IDReemplaza
SERVICE_PROJECT_IDpor el ID del proyectoGoogle Cloud asignado al proyecto de servicio.Crea un proxy de destino con el comando
gcloud compute target-http-proxies create.Para el tráfico HTTP, crea un proxy HTTP de destino, llamado
http-proxy, para enrutar las solicitudes al mapa de URL:gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_IDReemplaza
SERVICE_PROJECT_IDpor el ID del proyectoGoogle Cloud asignado al proyecto de servicio.Para el tráfico HTTPS, crea un proxy HTTPS de destino llamado
https-proxypara enrutar las solicitudes al mapa de URL. El proxy es la parte del balanceador de cargas que contiene el certificado SSL para el balanceo de cargas de HTTPS. Después de crear el certificado, puedes adjuntarlo al proxy HTTPS de destino.gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --certificate-manager-certificates=CERTIFICATE_NAME \ --global \ --project=SERVICE_PROJECT_IDReemplaza lo siguiente:
CERTIFICATE_NAME: Es el nombre del certificado SSL que creaste con el Administrador de certificados.SERVICE_PROJECT_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio
Crea dos reglas de reenvío globales, una con una dirección IP en la región
us-east1y otra con una dirección IP en la regiónasia-east1con el comandogcloud compute forwarding-rules create.Para el tráfico HTTP, crea las reglas de reenvío globales (
http-fw-rule-1yhttp-fw-rule-2) para enrutar las solicitudes entrantes al proxy HTTP de destino:gcloud compute forwarding-rules create http-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_IDgcloud compute forwarding-rules create http-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_IDReemplaza lo siguiente:
HOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostRESERVED_IP_ADDRESS: La dirección IP que reservasteSERVICE_PROJECT_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio
Para el tráfico HTTPS, crea las reglas de reenvío globales (
https-fw-rule-1yhttps-fw-rule-2) para enrutar las solicitudes entrantes al proxy de destino HTTPS:gcloud compute forwarding-rules create https-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_IDgcloud compute forwarding-rules create https-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_IDReemplaza lo siguiente:
HOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostRESERVED_IP_ADDRESS: La dirección IP que reservasteSERVICE_PROJECT_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio
Envía una solicitud HTTP al balanceador de cargas
Envía una solicitud desde una VM de cliente interna a la regla de reenvío del balanceador de cargas.
Obtén la dirección IP de la regla de reenvío del balanceador de cargas
Para obtener la dirección IP de la regla de reenvío del balanceador de cargas, completa los siguientes pasos:
Obtén la dirección IP de la regla de reenvío del balanceador de cargas (
http-fw-rule-1), que se encuentra en la regiónus-east1.gcloud compute forwarding-rules describe http-fw-rule-1 \ --global \ --project=SERVICE_PROJECT_IDObtén la dirección IP de la regla de reenvío del balanceador de cargas (
http-fw-rule-2), que se encuentra en la regiónasia-east1.gcloud compute forwarding-rules describe http-fw-rule-2 \ --global \ --project=SERVICE_PROJECT_IDReemplaza
SERVICE_PROJECT_IDpor el ID del proyectoGoogle Cloud asignado al proyecto de servicio.Copia la dirección IP que se devolvió para usarla como
FORWARDING_RULE_IP_ADDRESSen los pasos posteriores.
Crea una VM cliente para probar la conectividad
Para crear una VM de cliente y probar la conectividad, completa los siguientes pasos:
Crea una VM de cliente llamada
client-aen la regiónus-east1.gcloud compute instances create client-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --zone=us-east1-c \ --tags=allow-ssh \ --project=SERVICE_PROJECT_IDReemplaza lo siguiente:
HOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostSERVICE_PROJECT_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio
Establece una conexión SSH a la VM del cliente.
gcloud compute ssh client-a \ --zone=us-east1-c \ --project=SERVICE_PROJECT_IDReemplaza
SERVICE_PROJECT_IDpor el ID del proyectoGoogle Cloud asignado al proyecto de servicio.En este ejemplo, el balanceador de cargas de aplicaciones interno entre regiones tiene direcciones IP virtuales (VIP) de frontend en las regiones
us-east1yasia-east1de la red de VPC. Realiza una solicitud HTTP a la VIP en cualquiera de las regiones con curl.curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
Reemplaza
FORWARDING_RULE_IP_ADDRESSpor la dirección IP de la regla de reenvío del balanceador de cargas.
Prueba la alta disponibilidad
Para probar la alta disponibilidad, completa los siguientes pasos:
Borra la regla de reenvío (
http-fw-rule-1) en la regiónus-east1para simular una interrupción regional y verifica si el cliente en la regiónus-eastaún puede acceder a los datos del bucket de backend.gcloud compute forwarding-rules delete http-fw-rule-1 \ --global \ --project=SERVICE_PROJECT_IDReemplaza
SERVICE_PROJECT_IDpor el ID del proyectoGoogle Cloud asignado al proyecto de servicio.Realiza una solicitud HTTP a la VIP de la regla de reenvío en cualquiera de las regiones con curl.
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
Reemplaza
FORWARDING_RULE_IP_ADDRESSpor la dirección IP de la regla de reenvío.Si realizas una solicitud HTTP a la VIP en la región
us-east1, las políticas de enrutamiento de DNS detectan que esta VIP no responde y muestran la siguiente VIP más óptima al cliente (en este ejemplo,asia-east1). Este comportamiento ayuda a garantizar que tu aplicación siga funcionando incluso durante las interrupciones regionales.
Configura un balanceador de cargas con una configuración 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 internos entre regiones 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 buckets de backend ubicados en varios proyectos de servicio en entornos de VPC compartida.
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 bucket de backend en un proyecto de servicio
- Regla de reenvío, proxy de destino y mapa de URL en un proyecto de servicio, y bucket de backend en otro proyecto de servicio
En esta sección, se describe la última configuración como ejemplo.
Descripción general de la configuración
En este ejemplo, se configura un balanceador de cargas 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:
Configura los buckets de Cloud Storage y los buckets de backend en el proyecto de servicio B
Todos los pasos de esta sección deben realizarse en el proyecto de servicio B
Para crear el bucket de backend, debes hacer lo siguiente:
- Crea los buckets de Cloud Storage.
- Copia contenido en los buckets de Cloud Storage.
- Haz que los buckets de Cloud Storage sean de acceso público.
- Crea los buckets de backend y dirígelos a los buckets de Cloud Storage.
Crea los buckets de Cloud Storage
En este ejemplo, crearás dos buckets de Cloud Storage, uno en la región us-east1 y otro en la región asia-east1. Para las implementaciones de producción, te recomendamos que elijas un bucket multirregión, que replica de manera automática los objetos en varias regiones de Google Cloud . Esto puede mejorar la disponibilidad de tu contenido y la tolerancia a errores en tu aplicación.
Console
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
Haga clic en Crear.
En la sección Primeros pasos, ingresa un nombre global único que siga los lineamientos de nomenclatura.
Haz clic en Elige dónde almacenar tus datos.
Configura Tipo de ubicación como Región.
En la lista de regiones, selecciona us-east1.
Haz clic en Crear.
Haz clic en Buckets para volver a la página Buckets de Cloud Storage. Usa estas instrucciones para crear un segundo bucket, pero establece la Ubicación en asia-east1.
gcloud
Crea el primer bucket en la región
us-east1con el comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET1_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_B_IDCrea el segundo bucket en la región
asia-east1con el comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=asia-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_B_ID
Reemplaza lo siguiente:
BUCKET1_NAMEyBUCKET2_NAME: Nombres de bucket de Cloud StorageSERVICE_PROJECT_B_ID: Es el Google Cloud ID del proyecto asignado al proyecto de servicio B.
Copia contenido en los buckets de Cloud Storage
Para completar los buckets de Cloud Storage, copia un archivo gráfico de un bucket público de Cloud Storage en tus propios buckets de Cloud Storage.
Ejecuta los siguientes comandos en Cloud Shell y reemplaza las variables de nombre del bucket por los nombres únicos de tus bucket de Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
Reemplaza BUCKET1_NAME y BUCKET2_NAME por nombres de bucket de Cloud Storage.
Haz que los buckets de Cloud Storage sean de acceso público
Para que todos los objetos de un bucket sean legibles para todos en la Internet pública,
otorga a la principal allUsers el rol de visualizador de objetos de Storage
(roles/storage.objectViewer).
Console
A fin de otorgar a todos los usuarios acceso para ver objetos en tus buckets, repite el siguiente procedimiento para cada bucket:
- En la consola de Google Cloud , ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket que deseas hacer público.
Selecciona la pestaña Permisos.
En la sección Permisos, haz clic en el botón Otorgar acceso. Aparecerá el cuadro de diálogo Otorgar acceso.
En el campo Principales nuevas, ingresa
allUsers.En el campo Seleccionar un rol, ingresa
Storage Object Vieweren el cuadro de filtro y selecciona Visualizador de objetos de Storage a partir de los resultados filtrados.Haz clic en Guardar.
Haz clic en Permitir acceso público.
gcloud
Ejecuta el comando gcloud storage buckets add-iam-policy-binding para otorgar a todos los usuarios acceso para ver objetos en tus buckets.
gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer
Reemplaza BUCKET1_NAME y BUCKET2_NAME con los nombres de bucket de Cloud Storage.
Configura el balanceador de cargas con buckets de backend
Para crear los buckets de backend, sigue estos pasos:
Crea dos buckets de backend, uno para cada bucket de Cloud Storage, con el comando
gcloud compute backend-buckets create. Los buckets de backend tienen un esquema de balanceo de cargas deINTERNAL_MANAGED.En este ejemplo, los buckets de backend se llaman
backend-bucket-catsybackend-bucket-dogs, lo que indica el contenido de los buckets de Cloud Storage.gcloud compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_B_IDgcloud compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_B_IDReemplaza lo siguiente:
BUCKET1_NAMEyBUCKET2_NAME: Nombres de bucket de Cloud StorageSERVICE_PROJECT_B_ID: Es el Google Cloud ID del proyecto asignado al proyecto de servicio B.
Configura los componentes de frontend del balanceador de cargas en el proyecto de servicio A
Todos los pasos de esta sección deben realizarse en el proyecto de servicio A
En el proyecto de servicio A, debes crear los siguientes componentes de balanceo de cargas de frontend:
- Es el recurso del certificado SSL que se adjunta al proxy de destino. Puedes seguir los pasos que se describen en la sección anterior para crear el certificado SSL.
- Dos direcciones IP para las dos reglas de reenvío del balanceador de cargas. Puedes seguir los pasos que se describen en la sección anterior para crear las direcciones IP de las reglas de reenvío.
- Mapa de URL que hace referencia a los buckets de backend en el proyecto de servicio B
- Proxy de destino
- Dos reglas de reenvío, cada una con una dirección IP regional.
Para crear los componentes de frontend, haz lo siguiente:
Crea un mapa de URL para enrutar las solicitudes entrantes al bucket de backend con el comando
gcloud compute url-maps create.En este ejemplo, el mapa de URL se llama
lb-map.gcloud compute url-maps create lb-map \ --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \ --global \ --project=SERVICE_PROJECT_A_IDReemplaza lo siguiente:
SERVICE_PROJECT_B_ID: Es el Google Cloud ID del proyecto asignado al proyecto de servicio B.SERVICE_PROJECT_A_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio A
Configura las reglas de host y ruta de acceso del mapa de URL con el comando
gcloud compute url-maps add-path-matcher.En este ejemplo, el bucket de backend predeterminado es
backend-bucket-cats, que controla todas las rutas de acceso que existen dentro de él. Sin embargo, cualquier solicitud dirigida ahttp://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpgusa el backend debackend-bucket-dogs. Por ejemplo, si la carpeta/love-to-fetch/también existe en tu backend predeterminado (backend-bucket-cats), el balanceador de cargas prioriza el backendbackend-bucket-dogsporque hay una regla de ruta específica para/love-to-fetch/*.gcloud compute url-maps add-path-matcher lb-map \ --path-matcher-name=path-matcher-pets \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-dogs" \ --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \ --project=SERVICE_PROJECT_A_IDReemplaza lo siguiente:
SERVICE_PROJECT_B_ID: Es el Google Cloud ID del proyecto asignado al proyecto de servicio B.SERVICE_PROJECT_A_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio A
Crea un proxy de destino con el comando
gcloud compute target-http-proxies create.Para el tráfico HTTP, crea un proxy HTTP de destino, llamado
http-proxy, para enrutar las solicitudes al mapa de URL:gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_A_IDReemplaza
SERVICE_PROJECT_A_IDpor elGoogle Cloud ID del proyecto asignado al proyecto de servicio A.Para el tráfico HTTPS, crea un proxy HTTPS de destino, llamado
https-proxy, para enrutar las solicitudes al mapa de URL. El proxy es la parte del balanceador de cargas que contiene el certificado SSL para el balanceo de cargas de HTTPS. Después de crear el certificado, puedes adjuntarlo al proxy HTTPS de destino.gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --certificate-manager-certificates=CERTIFICATE_NAME \ --global \ --project=SERVICE_PROJECT_A_IDReemplaza lo siguiente:
CERTIFICATE_NAME: Es el nombre del certificado SSL que creaste con el Administrador de certificados.SERVICE_PROJECT_A_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio A
Crea dos reglas de reenvío globales, una con una dirección IP en la región
us-east1y otra con una dirección IP en la regiónasia-east1con el comandogcloud compute forwarding-rules create.Para el tráfico HTTP, crea las reglas de reenvío globales (
http-fw-rule-1yhttp-fw-rule-2) para enrutar las solicitudes entrantes al proxy HTTP de destino:gcloud compute forwarding-rules create http-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_A_IDgcloud compute forwarding-rules create http-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_A_IDReemplaza lo siguiente:
HOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostRESERVED_IP_ADDRESS: La dirección IP que reservasteSERVICE_PROJECT_A_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio A
Para el tráfico HTTPS, crea las reglas de reenvío globales (
https-fw-rule-1yhttps-fw-rule-2) para enrutar las solicitudes entrantes al proxy de destino HTTPS:gcloud compute forwarding-rules create https-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_A_IDgcloud compute forwarding-rules create https-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_A_IDReemplaza lo siguiente:
HOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostRESERVED_IP_ADDRESS: La dirección IP que reservasteSERVICE_PROJECT_A_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio A
Otorga permisos al administrador del balanceador de cargas para usar el bucket de backend
Si quieres que los balanceadores de cargas hagan referencia a los buckets de backend en otros proyectos de servicio, el administrador del balanceador de cargas debe tener el permiso compute.backendBuckets.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 de servicio o a nivel del bucket de backend individual.
En este ejemplo, un administrador del proyecto de servicio B debe ejecutar uno de los siguientes comandos para otorgar el permiso compute.backendBuckets.use a un administrador del balanceador de cargas del proyecto de servicio A. Esto se puede hacer a nivel de proyecto (para todos los buckets de backend del proyecto) o por bucket de backend.
Console
Permisos a nivel del proyecto
Sigue estos pasos para otorgar permisos a todos los buckets de backend de tu proyecto.
Necesitas los permisos compute.backendBuckets.setIamPolicy y resourcemanager.projects.setIamPolicy para completar este paso.
En la consola de Google Cloud , dirígete a la página IAM.
Elige tu proyecto.
Haz clic en Otorgar acceso.
En el campo Principales nuevas, ingresa la dirección de correo electrónico de la principal o algún otro identificador.
En la sección Asignar roles, haz clic en Agregar roles.
En el diálogo Seleccionar roles, ingresa
Compute Load Balancer Services Useren el campo Buscar roles.Selecciona la casilla de verificación Usuario de servicios del balanceador de cargas de Compute.
Haz clic en Aplicar.
Opcional: Agrega una condición a la función.
Haz clic en Guardar.
Permisos a nivel de recurso para buckets de backend individuales
Sigue estos pasos para otorgar permisos a buckets de backend individuales en tu proyecto.
Necesitas el permiso compute.backendBuckets.setIamPolicy para completar este paso.
En la consola de Google Cloud , ve a la página Backends.
En la lista de backends, selecciona el bucket de backend al que deseas otorgar acceso y haz clic en Permisos.
Haz clic en Agregar principal.
En el campo Principales nuevas, ingresa la dirección de correo electrónico de la principal o algún otro identificador.
En la lista Seleccionar un rol, selecciona Usuario de servicios de balanceador de cargas de Compute.
Haz clic en Guardar.
gcloud
Permisos a nivel del proyecto
Sigue estos pasos para otorgar permisos a todos los buckets de backend de tu proyecto.
Necesitas los permisos compute.backendBuckets.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"
Reemplaza lo siguiente:
SERVICE_PROJECT_B_ID: ID del proyecto Google Cloudasignado al proyecto de servicio BLOAD_BALANCER_ADMIN: Es el principal al que se agregará la vinculación.
Permisos a nivel de recurso para buckets de backend individuales
A nivel del bucket 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):
- Comando
gcloud projects add-iam-policy-binding - Comando
gcloud compute backend-buckets add-iam-policy-binding
Usa el comando gcloud projects add-iam-policy-binding para otorgar el rol de usuario de servicios de balanceador de cargas de Compute.
Necesitas el permiso compute.backendBuckets.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/global/backendBuckets/BACKEND_BUCKET_NAME",title=Shared VPC condition'
SERVICE_PROJECT_B_ID: ID del proyecto Google Cloudasignado al proyecto de servicio BLOAD_BALANCER_ADMIN: Es el principal al que se agregará la vinculación.BACKEND_BUCKET_NAME: Es el nombre del bucket de backend.
gcloud compute backend-buckets add-iam-policy-binding para otorgar el rol de usuario de servicios de balanceador de cargas de Compute.
gcloud compute backend-buckets add-iam-policy-binding BACKEND_BUCKET_NAME \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser" \
--project=SERVICE_PROJECT_B_ID \
Envía una solicitud HTTP al balanceador de cargas
Envía una solicitud desde una VM de cliente interna a la regla de reenvío del balanceador de cargas.
Obtén la dirección IP de la regla de reenvío del balanceador de cargas
Para obtener la dirección IP de la regla de reenvío del balanceador de cargas, completa los siguientes pasos:
Obtén la dirección IP de la regla de reenvío del balanceador de cargas (
http-fw-rule-1), que se encuentra en la regiónus-east1.gcloud compute forwarding-rules describe http-fw-rule-1 \ --global \ --project=SERVICE_PROJECT_A_IDObtén la dirección IP de la regla de reenvío del balanceador de cargas (
http-fw-rule-2), que se encuentra en la regiónasia-east1.gcloud compute forwarding-rules describe http-fw-rule-2 \ --global \ --project=SERVICE_PROJECT_A_IDReemplaza
SERVICE_PROJECT_A_IDpor elGoogle Cloud ID del proyecto asignado al proyecto de servicio A.Copia la dirección IP que se devolvió para usarla como
FORWARDING_RULE_IP_ADDRESSen los pasos posteriores.
Crea una VM cliente para probar la conectividad
Para crear una VM de cliente y probar la conectividad, completa los siguientes pasos:
Crea una VM de cliente llamada
client-aen la regiónus-east1.gcloud compute instances create client-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --zone=us-east1-c \ --tags=allow-ssh \ --project=SERVICE_PROJECT_A_IDReemplaza lo siguiente:
HOST_PROJECT_ID: ID del proyecto Google Cloud asignado al proyecto hostSERVICE_PROJECT_A_ID: ID del proyecto de Google Cloud asignado al proyecto de servicio A
Establece una conexión SSH a la VM del cliente.
gcloud compute ssh client-a \ --zone=us-east1-c \ --project=SERVICE_PROJECT_A_IDReemplaza
SERVICE_PROJECT_A_IDpor elGoogle Cloud ID del proyecto asignado al proyecto de servicio A.En este ejemplo, el balanceador de cargas de aplicaciones interno entre regiones tiene direcciones IP virtuales (VIP) de frontend en las regiones
us-east1yasia-east1de la red de VPC. Realiza una solicitud HTTP a la VIP en cualquiera de las regiones con curl.curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
Reemplaza
FORWARDING_RULE_IP_ADDRESSpor la dirección IP de la regla de reenvío del balanceador de cargas.
Para probar la alta disponibilidad, consulta la sección Cómo probar la alta disponibilidad en este documento.
¿Qué sigue?
- Descripción general de la VPC compartida
- Descripción general del balanceador de cargas de aplicaciones interno
- Subredes de solo proxy para balanceadores de cargas basados en Envoy
- Administrar certificados
- Limpia una configuración de balanceo de cargas