En este instructivo, se muestra cómo configurar una aplicación global de App Hub para varios proyectos y, luego, ver los recursos de la aplicación. Con varios proyectos de servicio, configuras un balanceador de cargas de aplicaciones interno en un entorno de VPC compartida. Luego, en una aplicación global en el proyecto host de App Hub, registras y supervisas todos los recursos de infraestructura de los proyectos de servicios como servicios y cargas de trabajo de App Hub.
Este instructivo está dirigido a las personas que configuran y administran App Hub. Debes tener cierta experiencia con Cloud Load Balancing.
Objetivos
- Configura una aplicación de Global App Hub que contenga recursos de varios proyectos.
- Supervisa los recursos a través de las métricas del sistema de la aplicación.
Costos
Para obtener una estimación del costo de los recursos de Google Cloud que usa la solución de VM administrada con balanceo de cargas, consulta la estimación calculada previamente en la calculadora de precios deGoogle Cloud .
Usa la estimación como punto de partida para calcular el costo de la implementación. Puedes cambiar la estimación para que refleje cualquier cambio de configuración que planeas hacer para los recursos que se usan en la solución.
La estimación calculada previamente se basa en suposiciones para ciertos factores, incluidos los siguientes:
- Las ubicaciones de Google Cloud en las que se implementan los recursos.
- La cantidad de tiempo que se usan los recursos.
Para obtener más información sobre los costos de App Hub, consulta la página Precios.
Antes de comenzar
Antes de configurar este instructivo, decide los roles y permisos de tus proyectos y, luego, crea cuatro proyectos de Google Cloud . Uno de estos proyectos es el proyecto host de App Hub y los otros tres son proyectos de servicio de App Hub.Roles y permisos requeridos
Si eres el creador del proyecto, se te otorga el
rol de propietario básico
(roles/owner
). De forma predeterminada, este rol de Identity and Access Management (IAM)
incluye los permisos necesarios para obtener acceso completo a la mayoría de los recursos de Google Cloud.
Si no eres el creador del proyecto, se deben otorgar los permisos necesarios en el proyecto a la principal correspondiente. Por ejemplo, una principal puede ser una Cuenta de Google (para usuarios finales) o una cuenta de servicio (para aplicaciones y cargas de trabajo).
Para obtener los permisos que necesitas a fin de administrar el acceso a un proyecto, organización o carpeta, pídele a tu administrador que te otorgue las siguientes roles de IAM en el recurso para el que deseas administrar el acceso (proyecto , carpeta u organización):
-
Para administrar el acceso a un proyecto, sigue estos pasos:
-
Administrador de App Hub (
roles/apphub.admin
) -
Administrador de Cloud Infrastructure Manager (
roles/config.admin
) -
Rol de administrador de VPC compartida de Compute (
roles/compute.xpnAdmin
) -
Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin
) -
Administrador de Service Usage (
roles/serviceusage.services.enable
) -
Administrador de cuenta de servicio (
roles/iam.serviceAccounts.create
)
-
Administrador de App Hub (
-
Para administrar el acceso a una carpeta: Rol de administrador de VPC compartida de Compute (
roles/compute.xpnAdmin
)
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 mediante roles personalizados o cualquier otro rol predefinido.
Crea proyectos de host y de servicio de App Hub
Console
En la consola de Google Cloud , ve a la página del selector de proyectos.
Selecciona o crea un proyecto de Google Cloud para que sea tu proyecto de host de App Hub.
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
En la misma carpeta que el proyecto host de App Hub, crea tres proyectos nuevos de Google Cloud . Estos son los proyectos de servicio de App Hub para el proyecto host de App Hub.
Asegúrate de que la facturación esté habilitada para todos tus proyectos de Google Cloud .
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Asegúrate de que esté instalada la versión más reciente de Google Cloud CLI. Ejecuta el siguiente comando desde Cloud Shell:
gcloud components update
Crea o selecciona un proyecto nuevo,
HOST_PROJECT_ID
, para que sea el proyecto host de App Hub.Crea un proyecto de Google Cloud :
gcloud projects create HOST_PROJECT_ID
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project HOST_PROJECT_ID
Asegúrate de que la facturación esté habilitada para todos tus proyectos de Google Cloud .
Habilita las APIs de App Hub, Compute Engine, Service Management y Service Usage:
gcloud services enable apphub.googleapis.com \ compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Crea tres proyectos nuevos de Google Cloud que serán los proyectos de servicio de App Hub para el proyecto host de App Hub.
Crea un proyecto de servicio:
gcloud projects create SERVICE_PROJECT_1_ID
Reemplaza
SERVICE_PROJECT_1_ID
por el ID del proyecto de servicio 1.Selecciona el proyecto de servicio que creaste:
gcloud config set project SERVICE_PROJECT_1_ID
Habilita las APIs de Compute Engine, Service Management y Service Usage:
gcloud services enable compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Establece la variable de configuración que se usa en este instructivo:
export SERVICE_PROJECT_1_NUMBER= $(gcloud projects describe $(gcloud config get-value project) --format='value(projectNumber)')
Repite los pasos anteriores para crear SERVICE_PROJECT_2_ID y SERVICE_PROJECT_3_ID, habilitar las APIs y establecer la variable de configuración.
Prepare el entorno
Si ya tienes un balanceador de cargas de aplicaciones interno en un entorno de VPC compartida configurado en varios proyectos, ve a la sección Otorga permisos de IAM en este documento.
De lo contrario, para configurar un balanceador de cargas de aplicaciones interno en un entorno de VPC compartida, sigue estos pasos:
- En el proyecto de servicio 1, configura una red de VPC compartida y dos subredes.
- En el proyecto de servicio 2, crea el servicio de backend del balanceador de cargas con dos grupos de instancias administrados como backends.
- En el proyecto de servicio 3, crea otro servicio de backend del balanceador de cargas con dos grupos de instancias administrados como backends.
- En el proyecto de servicio 1, crea los componentes de frontend y el mapa de URL del balanceador de cargas.
A continuación, se muestra el flujo de procesamiento de solicitudes de la topología que implementa la solución de VM administradas con balanceo de cargas.
Desde la red de VPC compartida, la VM cliente realiza una solicitud HTTP al balanceador de cargas de aplicaciones interno en el proyecto de servicio 1.
El balanceador de cargas usa la información del mapa de URL y los servicios de backend para enrutar la solicitud a los backends de su grupo de instancias administrado.
Configura la red y las subredes en el proyecto host de VPC compartida
Necesitas una red de VPC compartida con dos subredes: una para el frontend y los backends del balanceador de cargas una para los proxies del balanceador de cargas.
En este ejemplo, se usan las siguientes subredes, red y región:
Red. La red se llama
lb-network
.Subred para el frontend y los backends del balanceador de cargas. Una subred llamada
lb-frontend-and-backend-subnet
en la regiónus-west1
usa10.1.2.0/24
para su rango de IP principal.Subred para proxies. Una subred llamada
proxy-only-subnet
en la regiónus-west1
usa10.129.0.0/23
en su rango de IP principal.
En este instructivo, designa el proyecto de servicio 1 como el proyecto de host de la VPC compartida. Todos los pasos de esta sección deben realizarse en el proyecto de servicio 1.
Configura la subred para el frontend y los backends del balanceador de cargas
No es necesario realizar este paso cada vez que quieras crear un balanceador de cargas nuevo. Solo debes asegurarte de que los proyectos de servicio tengan acceso a una subred en la red de VPC compartida (además de la subred de solo proxy).
Console
- En la consola de Google Cloud , ve a la página Redes de VPC.
- Haga clic en Crear red de VPC.
- En el campo Nombre, ingresa
lb-network
. - Establece Modo de creación de subred en Personalizado.
En la sección Subred nueva, ingresa la siguiente información:
Nombre:
lb-frontend-and-backend-subnet
Región:
us-west1
Rangos de direcciones IP:
10.1.2.0/24
Haz clic en Listo.
Haz clic en Crear.
gcloud
Configura el proyecto como Servicio de proyecto 1:
gcloud config set project SERVICE_PROJECT_1_ID
Crea una red de VPC con el comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crea una subred en la red
lb-network
en la regiónus-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Configura la subred de solo proxy
Todos los balanceadores de cargas regionales basados en Envoy usan la subred de solo proxy en la región us-west1
, en la red de VPC lb-network
. Solo puede haber una subred de solo proxy activa por región y por red.
No realices este paso si ya hay una subred de solo proxy reservada en la región us-west1
de esta red.
Console
- En la consola de Google Cloud , ve a la página Redes de VPC.
- Haz clic en el nombre de la red de VPC compartida:
lb-network
. - Haz clic en la pestaña Subredes y, luego, en Agregar subred.
- En el panel Agregar una subred, en el campo Nombre, ingresa
proxy-only-subnet
. - En la lista Región, selecciona
us-west1
. - Configura Propósito como Proxy administrado regional.
- En el campo Rango de direcciones IP, ingresa
10.129.0.0/23
. - Haz clic en Agregar.
gcloud
Crea la subred de solo proxy con el comando gcloud compute networks subnets
create
:
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Otorga a los administradores de proyectos de servicio acceso a la subred de backend
Los administradores de proyectos de servicio requieren acceso a la subred lb-frontend-and-backend-subnet
para poder aprovisionar los backends del balanceador de cargas.
Un administrador de VPC compartida debe otorgar acceso a la subred de backend a los administradores del proyecto de servicio (o desarrolladores que implementan recursos y backends que usan la subred). Si deseas obtener instrucciones, consulta Administradores de proyectos de servicio para algunas subredes.
Configura reglas de firewall en el proyecto de servicio 1
En este ejemplo, se usan las siguientes reglas de firewall:
fw-allow-health-check
. Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite todo el tráfico de TCP de los sistemas de verificación de estado de Google Clouden130.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
. Es una regla de entrada, aplicable a las instancias con balanceo de cargas, que permite el tráfico de TCP en los puertos80
,443
y8080
desde los proxies administrados del balanceador de cargas. En este ejemplo, se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que se debe aplicar.fw-allow-ssh
. Es una regla de entrada, aplicable a las instancias con balanceo de cargas, y que permite la conectividad SSH entrante en el puerto TCP22
desde cualquier dirección. Puedes elegir un rango de IP de origen más restrictivo para esta regla. Por ejemplo, puedes especificar solo los rangos de IP del sistema desde el que inicias sesiones SSH. En este ejemplo, se usa la etiqueta de destinoallow-ssh
para identificar las máquinas virtuales (VM) a las que se aplica la regla de firewall.
Sin estas reglas de firewall, la regla predeterminada de denegación de entrada bloquea el tráfico entrante a las instancias de backend.
Console
En la consola de Google Cloud , ve a la página Políticas de firewall.
- Haz clic en Crear regla de firewall para crear la regla que permitirá las verificaciones de estado de Google Cloud :
- Nombre:
fw-allow-health-check
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción si hay coincidencia: permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de fuente: Rangos de IPv4
- Rangos de IPv4 de origen:
130.211.0.0/22
y35.191.0.0/16
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Selecciona la casilla de verificación TCP y, luego, ingresa
80
para el número de puerto.
Como práctica recomendada, limita esta regla solo a los protocolos y puertos que coincidan con los que usa tu verificación de estado. Si usas
tcp:80
para el protocolo y el puerto, Google Cloud puede usar HTTP en el puerto80
para comunicarse con tus VMs, pero no puede usar HTTPS en el puerto443
para comunicarse con ellas. - Haz clic en Crear.
- Haz clic en Crear regla de firewall para crear la regla que permitirá las verificaciones de estado de Google Cloud :
- Nombre:
fw-allow-proxies
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción si hay coincidencia: permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de fuente: Rangos de IPv4
- Rangos de IPv4 de origen:
10.129.0.0/23
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Selecciona la casilla de verificación TCP y, luego, ingresa
80, 443, 8080
para los números de puerto.
- Haz clic en Crear.
- Haz clic en Crear regla de firewall para crear la regla que permitirá las verificaciones de estado de Google Cloud :
- Nombre:
fw-allow-ssh
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción si hay coincidencia: permitir
- Objetivos: 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
22
para el número de puerto.
- Haz clic en Crear.
gcloud
Crea la regla de firewall
fw-allow-health-check
para permitir las verificaciones de estado deGoogle Cloud . Este ejemplo permite todo el tráfico de TCP proveniente de la verificación de estado. Sin embargo, puedes configurar un conjunto más limitado de puertos para satisfacer tus necesidades.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp
Crea la regla de firewall
fw-allow-proxies
para permitir que el tráfico de la subred de solo proxy de Envoy llegue a tus backends:gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Crea la regla de firewall
fw-allow-ssh
para permitir la conectividad SSH a las VMs con la etiqueta de redallow-ssh
:gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Reserva una dirección IPv4 interna estática
Los administradores de proyectos de servicio pueden reservar una dirección IPv4 o IPv6 interna en una subred de una red de VPC compartida. El objeto de configuración de dirección IP se crea en el proyecto de servicio, mientras que su valor proviene del rango de direcciones IPv4 disponibles en la subred compartida que elegiste.
Para reservar una dirección IP interna independiente en el proyecto de servicio, completa los siguientes pasos.
Console
- Configura la VPC compartida.
En la consola de Google Cloud , ve a la página VPC compartida.
Accede como un administrador de VPC compartida.
Selecciona el proyecto de servicio del selector de proyectos.
Ve a Red de VPC > Direcciones IP.
En la página Direcciones IP, haz clic en Reservar dirección IP estática interna.
En el campo Nombre, ingresa
l7-ilb-ip-address
como el nombre de la dirección IP.En la lista Versión de IP, selecciona IPv4.
En Red, selecciona
lb-network
.En las listas Subred, selecciona
lb-frontend-and-backend-subnet
.Haz clic en Reservar.
gcloud
Si aún no lo hiciste, autentícate en Google Cloud CLI como administrador del proyecto de servicio de VPC compartida.
gcloud auth login SERVICE_PROJECT_ADMIN
Reemplaza
SERVICE_PROJECT_ADMIN
por el nombre del administrador del proyecto de servicio de VPC compartida. Estos valores deben tener el formato nombredeusuario@tudominio, por ejemplo, 222larabrown@gmail.com.Usa el comando
compute addresses create
para reservar una dirección IP:gcloud compute addresses create l7-ilb-ip-address \ --project SERVICE_PROJECT_1_ID \ --subnet=lb-frontend-and-backend-subnet \ --region=us-west1 \ --ip-version=IPV4
Los detalles adicionales para crear direcciones IP se encuentran en la documentación del SDK.
Configura la VPC compartida en el proyecto de servicio 1
Para configurar la VPC compartida en el proyecto de servicio 1, designas el proyecto de servicio 1 como el proyecto host de la VPC compartida y los proyectos de servicio 2 y 3 como los proyectos de servicio de la VPC compartida. Más adelante en este instructivo, cuando crees los backends de MIG en los proyectos de servicio 2 y 3, podrás usar la misma red de VPC y las subredes que se crearon anteriormente en el proyecto de servicio 1.
- Habilita un proyecto host.
- Conecta un proyecto de servicio.
Otorga el rol de usuario de red de Compute (
roles/compute.networkUser
) a los proyectos de servicio 2 y 3:Console
En la consola de Google Cloud , ve a la página IAM.
Haz clic en
Otorgar acceso. Se abrirá el panel Otorgar acceso.En el campo Principales nuevas, ingresa
SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com
.Ten en cuenta que puedes obtener los números de proyecto de servicio en el panel del proyecto:
Haz clic en Seleccionar un rol y, en el campo Filtro, ingresa
Compute Network User
.Selecciona el rol de Usuario de la red de Compute y haz clic en Guardar.
Repite los pasos anteriores para otorgar el rol
Compute Network User
al proyecto de servicio 3 (SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com
).
gcloud
En el proyecto de servicio 1, otorga el rol de usuario de la red de Compute al proyecto de servicio 2.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \ --member='serviceAccount:SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com' \ --role='roles/compute.networkUser'
Reemplaza
SERVICE_PROJECT_2_NUMBER
por el número de proyecto del proyecto de servicio 2.En el proyecto de servicio 1, otorga el rol de usuario de la red de Compute al proyecto de servicio 3.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \ --member='serviceAccount::SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com' \ --role='roles/compute.networkUser'
Reemplaza
SERVICE_PROJECT_3_NUMBER
por el número del proyecto de servicio 3.
Crea un servicio de backend y MIG en el proyecto de servicio 2
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 2.
Console
Crea una plantilla de instancias. En la consola de Google Cloud , ve a la página Plantillas de instancia.
- Haga clic en Crear plantilla de instancias.
- Ingresa un Nombre para la plantilla de instancias:
tutorial-ig-template-sp2
. - En la sección Ubicación, selecciona Regional (recomendado) y us-west1(Oregon) como la Región.
- En la sección Configuración de la máquina, selecciona N2 como la serie.
- Asegúrate de que el disco de arranque esté configurado como
una imagen de Debian, como
Debian GNU/Linux 12 (bookworm). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como
apt-get
. Si necesitas cambiar el Disco de arranque, haz clic en Cambiar.- En Sistema operativo, selecciona Debian.
- En Versión, selecciona una de las imágenes de Debian disponibles, como Debian GNU/Linux 12 (bookworm).
- Haz clic en Seleccionar.
- Haz clic en Opciones avanzadas y, luego, en Herramientas de redes.
- Ingresa las siguientes Etiquetas de red:
allow-ssh
,load-balanced-backend
. - En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto host: SERVICE_PROJECT_1_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. - Haz clic en Administración. En Administración, inserta la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | tee /var/www/html/index.html systemctl restart apache2
- Haz clic en Crear.
Crea un grupo de instancias administrado. En la consola de Google Cloud , ve a la página Grupos de instancias.
- Haga clic en Crear grupo de instancias.
- Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG con o sin estado.
- Ingresa un Nombre para el grupo de instancias:
tutorial-sp2-mig-a
. - En Plantilla de instancias, selecciona tutorial-ig-template-sp2.
- En Ubicación, selecciona Zona única.
- En Región, selecciona
us-west1
. Especifica la cantidad de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones en Ajuste de escala automático:
- En Modo de ajuste de escala automático, selecciona
Off:do not autoscale
. - En Cantidad máxima de instancias, ingresa
2
.
- En Modo de ajuste de escala automático, selecciona
Haz clic en Crear.
Crea un servicio de backend regional. Como parte de este paso, también crearemos la verificación de estado y agregaremos backends al servicio de backend. En la consola de Google Cloud , ve a la página Backends.
- Haz clic en Crear servicio de backend.
- En el diálogo Crear servicio de backend, haz clic en Crear junto a Servicio de backend regional.
- Ingresa un Nombre para el servicio de backend:
tutorial-backend-service-sp2
. - En Región, selecciona us-west1.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones interno regional (INTERNAL_MANAGED).
- Configura el Tipo de backend como grupo de instancias.
- En la sección Backends, configura los siguientes campos:
- Establece Grupo de instancias en tutorial-sp2-mig-a.
- Ingresa los Números de puerto:
80
. - Establece el campo Modo de balanceo en Uso.
- Haz clic en Listo.
- En la sección Verificación de estado, haz clic en Crear una verificación de estado
y establece los siguientes campos:
- Nombre:
tutorial-regional-health-check
- Protocolo:
HTTP
- Puerto:
80
- Haz clic en Guardar.
- Nombre:
- Haga clic en Continuar.
- Haz clic en Crear.
Repite los pasos anteriores y crea un grupo de instancias administrado,
tutorial-sp2-mig-b
, y agrégalo al servicio de backend,tutorial-backend-service-sp2
.
gcloud
- Selecciona el proyecto de servicio que creaste:
gcloud config set project SERVICE_PROJECT_2_ID
Crea una plantilla de instancias de VM,
tutorial-ig-template-sp2
, con un servidor HTTP:gcloud compute instance-templates create tutorial-ig-template-sp2 \ --region=us-west1 \ --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \ --subnet=projects/SERVICE_PROJECT_1_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_2_ID
Reemplaza lo siguiente:
SERVICE_PROJECT_1_ID
: es el ID del proyecto host de la VPC compartida.SERVICE_PROJECT_2_ID
: es el ID del proyecto de servicio, en el que se crean los backends del balanceador de cargas y el servicio de backend.
Crea un grupo de instancias administrado,
tutorial-sp2-mig-a
, en la región:gcloud compute instance-groups managed create tutorial-sp2-mig-a \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp2 \ --project=SERVICE_PROJECT_2_ID
Define la verificación de estado de HTTP,
tutorial-regional-health-check
:gcloud compute health-checks create http tutorial-regional-health-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_2_ID
Define el servicio de backend,
tutorial-backend-service-sp2
:gcloud compute backend-services create tutorial-backend-service-sp2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=tutorial-regional-health-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_2_ID
Agrega backends al servicio de backend con el comando
gcloud compute backend-services add-backend
:gcloud compute backend-services add-backend tutorial-backend-service-sp2 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp2-mig-a \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_2_ID
Crea otro grupo de instancias administrado,
tutorial-sp2-mig-b
, en la región:gcloud compute instance-groups managed create tutorial-sp2-mig-b \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp2 \ --project=SERVICE_PROJECT_2_ID
Agrega backends al servicio de backend:
gcloud compute backend-services add-backend tutorial-backend-service-sp2 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp2-mig-b \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_2_ID
Crea un servicio de backend y MIG en el proyecto de servicio 3
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 3.
Console
Crea una plantilla de instancias. En la consola de Google Cloud , ve a la página Plantillas de instancia.
- Haga clic en Crear plantilla de instancias.
- Ingresa un Nombre para la plantilla de instancias:
tutorial-ig-template-sp3
. - En la sección Ubicación, selecciona Regional (recomendado) y us-west1(Oregon) como la Región.
- En la sección Configuración de la máquina, selecciona N2 como la serie.
- Asegúrate de que el disco de arranque esté configurado como
una imagen de Debian, como
Debian GNU/Linux 12 (bookworm). En estas instrucciones, se usan comandos que solo están disponibles en Debian, como
apt-get
. Si necesitas cambiar el Disco de arranque, haz clic en Cambiar.- En Sistema operativo, selecciona Debian.
- En Versión, selecciona una de las imágenes de Debian disponibles, como Debian GNU/Linux 12 (bookworm).
- Haz clic en Seleccionar.
- Haz clic en Opciones avanzadas y, luego, en Herramientas de redes.
- Ingresa las siguientes Etiquetas de red:
allow-ssh
,load-balanced-backend
. - En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto host: SERVICE_PROJECT_1_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. - Haz clic en Administración. En Administración, inserta la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | tee /var/www/html/index.html systemctl restart apache2
- Haz clic en Crear.
Crea un grupo de instancias administrado. En la consola de Google Cloud , ve a la página Grupos de instancias.
- Haga clic en Crear grupo de instancias.
- Selecciona Nuevo grupo de instancias administrado (sin estado). Para obtener más información, consulta MIG con o sin estado.
- Ingresa un Nombre para el grupo de instancias:
tutorial-sp3-mig-a
. - En Plantilla de instancias, selecciona tutorial-ig-template-sp3.
- En Ubicación, selecciona Zona única.
- En Región, selecciona
us-west1
. Especifica la cantidad de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones en Ajuste de escala automático:
- En Modo de ajuste de escala automático, selecciona
Off:do not autoscale
. - En Cantidad máxima de instancias, ingresa
2
.
- En Modo de ajuste de escala automático, selecciona
Haz clic en Crear.
Crea un servicio de backend regional. Como parte de este paso, también crearemos la verificación de estado y agregaremos backends al servicio de backend. En la consola de Google Cloud , ve a la página Backends.
- Haz clic en Crear servicio de backend.
- En el diálogo Crear servicio de backend, haz clic en Crear junto a Servicio de backend regional.
- Ingresa un Nombre para el servicio de backend:
tutorial-backend-service-sp3
. - En Región, selecciona us-west1.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones interno regional (INTERNAL_MANAGED).
- Configura el Tipo de backend como grupo de instancias.
- En la sección Backends, configura los siguientes campos:
- Establece Grupo de instancias en tutorial-sp3-mig-a.
- Ingresa los Números de puerto:
80
. - Establece el campo Modo de balanceo en Uso.
- Haz clic en Listo.
- En la sección Verificación de estado, haz clic en Crear una verificación de estado
y establece los siguientes campos:
- Nombre:
tutorial-regional-health-check
- Protocolo:
HTTP
- Puerto:
80
- Haz clic en Guardar.
- Nombre:
- Haga clic en Continuar.
- Haz clic en Crear.
Repite los pasos anteriores y crea un grupo de instancias administrado,
tutorial-sp3-mig-b
, y agrégalo al servicio de backend,tutorial-backend-service-sp3
.
gcloud
- Selecciona el proyecto de servicio que creaste:
gcloud config set project SERVICE_PROJECT_3_ID
Crea una plantilla de instancias de VM,
tutorial-ig-template-sp3
, con un servidor HTTP:gcloud compute instance-templates create tutorial-ig-template-sp3 \ --region=us-west1 \ --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \ --subnet=projects/SERVICE_PROJECT_1_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_3_ID
Reemplaza lo siguiente:
SERVICE_PROJECT_1_ID
: es el ID del proyecto host de la VPC compartida.SERVICE_PROJECT_3_ID
: es el ID del proyecto de servicio, en el que se crean los backends del balanceador de cargas y el servicio de backend.
Crea un grupo de instancias administrado,
tutorial-sp3-mig-a
, en la región:gcloud compute instance-groups managed create tutorial-sp3-mig-a \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp3 \ --project=SERVICE_PROJECT_3_ID
Define la verificación de estado de HTTP,
tutorial-regional-health-check
:gcloud compute health-checks create http tutorial-regional-health-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_3_ID
Define el servicio de backend,
tutorial-backend-service-sp3
:gcloud compute backend-services create tutorial-backend-service-sp3 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=tutorial-regional-health-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_3_ID
Agrega backends al servicio de backend con el comando
gcloud compute backend-services add-backend
:gcloud compute backend-services add-backend tutorial-backend-service-sp3 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp3-mig-a \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_3_ID
Crea otro grupo de instancias administrado,
tutorial-sp3-mig-b
, en la región:gcloud compute instance-groups managed create tutorial-sp3-mig-b \ --region=us-west1 \ --size=2 \ --template=tutorial-ig-template-sp3 \ --project=SERVICE_PROJECT_3_ID
Agrega backends al servicio de backend:
gcloud compute backend-services add-backend tutorial-backend-service-sp3 \ --balancing-mode=UTILIZATION \ --instance-group=tutorial-sp3-mig-b \ --instance-group-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_3_ID
Crea el mapa de URL y la regla de reenvío en el proyecto de servicio 1
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 1.
Console
Inicia tu configuración
En la consola de Google Cloud , ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de aplicaciones (HTTP/HTTPS) y haz clic en Siguiente.
- En Orientado al público o interno, selecciona Interno y haz clic en Siguiente.
- En Implementación entre regiones o de una sola región, selecciona Ideal para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Ingresa un Nombre para el balanceador de cargas,
tutorial-url-maps
. - En la lista Región, selecciona
us-west1
. En la lista Red, selecciona lb-network (de Proyecto: SERVICE_PROJECT_1_ID).
Si ves una advertencia sobre la subred de solo proxy que se requiere en la red de VPC compartida, confirma que el administrador del proyecto host haya creado
proxy-only-subnet
en la regiónus-west1
en la red de VPC compartidalb-network
. La creación del balanceador de cargas tendrá éxito incluso si no tienes permiso para ver la subred de solo proxy en esta página.Mantén la ventana abierta para continuar.
Configure el backend
- Haga clic en Configuración de backend.
- Haz clic en Servicios de backend entre proyectos.
- En el campo ID del proyecto, ingresa el ID del proyecto para el proyecto de servicio 2.
- En el campo Nombre del servicio de backend, ingresa el nombre del servicio de backend del proyecto de servicio 2 que deseas usar. En este ejemplo, es
tutorial-backend-service-sp2
. - Haz clic en Agregar servicio de backend.
- En el campo Project ID, ingresa el ID del proyecto para el proyecto de servicio 3.
- En el campo Nombre del servicio de backend, ingresa el nombre del servicio de backend del proyecto de servicio 3 que deseas usar. En este ejemplo, es
tutorial-backend-service-sp3
. - Haz clic en Agregar servicio de backend.
Configura las reglas de enrutamiento
- Haz clic en Reglas de enrutamiento.
- En la sección Reglas de host y ruta de acceso, en el campo Host 2,
ingresa
*
. - En el campo Rutas de acceso 2, ingresa
/*
. - En la lista desplegable Backend 2, selecciona
tutorial-backend-service-sp2
. - Haz clic en Agrega la regla de host y de ruta.
- En el campo Host 3, ingresa
tutorial-host
. - En el campo Paths 3, ingresa
/*
. En la lista desplegable Backend 3, selecciona
tutorial-backend-service-sp3
.Revisa que aparezca una marca de verificación azul a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
Para obtener información sobre la administración del tráfico, consulta Configura la administración del tráfico.
Configura el frontend
Para que el servicio entre proyectos funcione, el frontend debe usar la misma red (lb-network
) del proyecto host de VPC compartida que se usó para crear el servicio de backend.
- Haga clic en Configuración de frontend.
- Ingresa un nombre para la regla de reenvío:
l7-ilb-forwarding-rule
. - Configura el Protocolo en
HTTP
. - Establece Subred en
lb-frontend-and-backend-subnet
. No selecciones la subred de solo proxy para el frontend, incluso si es una opción en la lista. - Configura el Puerto en
80
. - En el campo Dirección IP, conserva la opción predeterminada, Efímera (automática).
- Haz clic en Listo.
Revise y finalice la configuración
- Haz clic en Crear.
gcloud
Selecciona el proyecto de servicio que creaste:
gcloud config set project SERVICE_PROJECT_1_ID
Crea el mapa de URL,
tutorial-url-maps
, y configura el servicio predeterminado como el servicio de backend creado en el proyecto de servicio 1:gcloud compute url-maps create tutorial-url-maps \ --default-service=projects/SERVICE_PROJECT_2_ID/regions/us-west1/backendServices/tutorial-backend-service-sp2 \ --region=us-west1 \ --project=SERVICE_PROJECT_1_ID
Reemplaza lo siguiente:
SERVICE_PROJECT_2_ID
: Es el ID del proyecto de servicio 2, en el que se crean los backends del balanceador de cargas y el servicio de backend.SERVICE_PROJECT_1_ID
: Es el ID del proyecto de servicio 1, en el que se crea el frontend del balanceador de cargas.
Crea el proxy de destino,
tutorial-http-proxy
:gcloud compute target-http-proxies create tutorial-http-proxy \ --url-map=tutorial-url-maps \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_1_ID
Crea la regla de reenvío
l7-ilb-forwarding-rule
para controlar el tráfico HTTP. Para que el servicio entre proyectos funcione, la regla de reenvío debe usar la misma red (lb-network
) del proyecto host de VPC compartida que se usó para crear el servicio de backend.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/SERVICE_PROJECT_1_ID/global/networks/lb-network \ --subnet=projects/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=l7-ilb-ip-address \ --ports=80 \ --region=us-west1 \ --target-http-proxy=tutorial-http-proxy \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_1_ID
Para enviar tráfico al servicio de backend, vincula el mapa de URL con el servicio de backend. Para obtener más información, consulta Usa mapas de URL.
Vincula el servicio de backend
tutorial-backend-service-sp2
en el proyecto de servicio 2 con el mapa de URL,tutorial-url-maps
, y el nombre del comparador de rutas de acceso,tutorial-path-matcher-sp2
:gcloud compute url-maps add-path-matcher tutorial-url-maps \ --path-matcher-name=tutorial-path-matcher-sp2 \ --default-service=projects/SERVICE_PROJECT_2_ID/regions/us-west1/backendServices/tutorial-backend-service-sp2 \ --region=us-west1
Vincula el servicio de backend,
tutorial-backend-service-sp3
, en el proyecto de servicio 3 con el mapa de URL,tutorial-url-maps
, y el nombre del comparador de rutas,tutorial-path-matcher-sp3
. Agrega una regla de host nueva,tutorial-host
, con los hosts determinados para que el comparador de rutas de acceso esté vinculado a la regla de host nueva.gcloud compute url-maps add-path-matcher tutorial-url-maps \ --path-matcher-name=tutorial-path-matcher-sp3 \ --default-service=projects/SERVICE_PROJECT_3_ID/regions/us-west1/backendServices/tutorial-backend-service-sp3 \ --region=us-west1 \ --new-hosts=tutorial-host
Prueba el balanceador de cargas
Para probar el balanceador de cargas, primero debes crear una VM de cliente de muestra. Luego, establece una sesión SSH con la VM y envía tráfico desde esta VM al balanceador de cargas.
Crea una instancia de VM de prueba
Los clientes pueden estar ubicados en el proyecto host de la VPC compartida o en cualquier proyecto de servicio conectado. En este ejemplo, probarás que el balanceador de cargas funcione mediante la implementación de una VM de cliente en el proyecto de servicio 1 que se designa como el proyecto host de VPC compartida. El cliente debe usar la misma red de VPC compartida y estar en la misma región que el balanceador de cargas.
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 2.
Console
En la consola de Google Cloud , ve a la página Instancias de VM:
Haz clic en Crear instancia.
En el campo Nombre, ingresa
client-vm
.Establece la Zona en us-west1-b.
Haz clic en Opciones avanzadas y, luego, en Herramientas de redes.
Ingresa las siguientes etiquetas de red:
allow-ssh
,load-balanced-backend
.En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto host: SERVICE_PROJECT_1_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/SERVICE_PROJECT_1_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --zone=us-west1-b \ --tags=allow-ssh \ --project=SERVICE_PROJECT_2_ID
Envía tráfico al balanceador de cargas
Usa SSH para conectarte a la instancia que acabas de crear y probar que los servicios HTTP(S) en los backends sean accesibles a través de la dirección IP de la regla de reenvío del balanceador de cargas de aplicaciones interno y que las cargas del tráfico se balanceen entre las instancias de backend.
Recupera el valor de la dirección IP del balanceador de cargas:
gcloud compute addresses list --filter="name=( 'l7-ilb-ip-address')"
Verás un resultado similar al siguiente:
NAME: l7-ilb-ip-address ADDRESS/RANGE: 10.1.2.2 TYPE: INTERNAL PURPOSE: GCE_ENDPOINT NETWORK: REGION: us-west1 SUBNET: lb-frontend-and-backend-subnet STATUS: IN_USE
Copia el
ADDRESS/RANGE
del servicio, por ejemplo,10.1.2.2
, del resultado para usarlo en los siguientes pasos.Conéctate a la instancia de cliente con SSH:
gcloud compute ssh client-vm \ --zone=us-west1-b \ --project=SERVICE_PROJECT_2_ID
Verifica que la dirección IP del balanceador de cargas entregue su nombre de host:
Verifica que la dirección IP entregue su nombre de host en el proyecto de servicio 2:
curl 10.1.2.2
Verás un resultado similar al siguiente:
Page served from: tutorial-sp2-mig-a-10xk
Verifica que la dirección IP entregue su nombre de host en el proyecto de servicio 3:
curl -H "Host: tutorial-host" 10.1.2.2
Verás un resultado similar al siguiente:
Page served from: tutorial-sp3-mig-a-3d5h
Otorga permisos de IAM
Proporciona los roles y permisos de IAM adecuados al host y los proyectos de servicio de App Hub.
Console
En la consola de Google Cloud , ve a la página del selector de proyectos.
En la consola de Google Cloud , ve a la página IAM.
Haz clic en
Otorgar acceso. Se abrirá el panel Otorgar acceso.En el campo Principales nuevas, ingresa la dirección de correo electrónico de la persona que administrará App Hub, el rol de Administrador de App Hub en el proyecto de host de App Hub.
Haz clic en Seleccionar un rol y, en el campo Filtro, ingresa
App Hub
.Selecciona el rol Administrador de App Hub y haz clic en Guardar.
En cada uno de los proyectos de servicio de App Hub, otorga el rol de administrador de App Hub al mismo usuario.
gcloud
Para otorgar los roles a las personas que usarán App Hub, repite el siguiente comando y reemplaza los roles de IAM según sea necesario. Para obtener más información, consulta Roles y permisos de App Hub.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Reemplaza
HOST_PROJECT_ADMIN
por el usuario que tiene el rol de administrador de App Hub en el proyecto host de App Hub. Este valor tiene el formatousername@yourdomain
, por ejemplo,222larabrown@gmail.com
.Otorga el rol de administrador de App Hub en el proyecto de servicio a las personas que administran App Hub. Debe tener el rol de administrador de App Hub para agregar proyectos de servicio al proyecto host. Necesitas al menos una persona con este rol para cada proyecto de servicio.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Reemplaza
SERVICE_PROJECT_ID
por el ID de los proyectos de servicio.
Cómo adjuntar los proyectos de servicio
Los proyectos de servicio son proyectos de Google Cloud que contienen recursos de infraestructura que puedes registrar en una aplicación de App Hub. Para obtener más información, consulta Servicios de proyectos. Adjunta los proyectos de servicio en los que implementaste los recursos al proyecto host de App Hub.
Console
En la consola de Google Cloud , ve a la página Configuración de App Hub.
En la página Configuración, haz clic en Vincular proyectos.
En el panel que se abre, busca proyectos en la lista que se muestra y selecciona las casillas de verificación de los proyectos que deseas agregar como proyectos de servicio.
Haz clic en Seleccionar. En la tabla Proyectos de servicio adjuntos, se muestran los proyectos de servicio seleccionados.
Haz clic en Cerrar.
gcloud
Vincula los proyectos de servicio 1, 2 y 3 a tu proyecto host de App Hub.
gcloud apphub service-projects add SERVICE_PROJECT_1_ID \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_2_ID \ --project=HOST_PROJECT_ID
gcloud apphub service-projects add SERVICE_PROJECT_3_ID \ --project=HOST_PROJECT_ID
Confirma que adjuntaste los proyectos de servicio de App Hub al proyecto host de App Hub:
gcloud apphub service-projects list --project=HOST_PROJECT_ID
Después de conectar el proyecto de servicio al proyecto host de App Hub, puedes ver todos los recursos de Google Cloud del proyecto de servicio conectado como servicios y cargas de trabajo descubiertos de App Hub. Para obtener más información sobre cómo ver estos servicios y cargas de trabajo descubiertos, consulta Cómo ver aplicaciones, servicios y cargas de trabajo existentes.
Crea una aplicación
Crea una aplicación que sea el contenedor de tus servicios y cargas de trabajo. Cuando creas una aplicación, puedes asignar propiedades inmutables, como un tipo de alcance o una ubicación desde la que deseas registrar recursos y atributos variables, como importancia y entorno. Puedes usar los atributos de variable para filtrar las aplicaciones. Para obtener más información, consulta Propiedades y atributos.
En este instructivo, crearás una aplicación global para ayudarte a administrar recursos globales y regionales en una sola aplicación. Si deseas agrupar tus recursos de una región específica, puedes crear una aplicación regional y registrar estos recursos. Para obtener más información sobre cómo crear una aplicación regional, consulta Cómo configurar App Hub.
Console
- Asegúrate de que estás en el proyecto host de App Hub.
En la consola de Google Cloud , ve a la página Aplicaciones de App Hub.
Haz clic en Crear aplicación.
En la página Crear aplicación, en el panel Elige el nombre y la región de la aplicación, selecciona Global.
En el campo Nombre de la aplicación, ingresa
tutorial-application
. Este nombre es un identificador único y es inmutable después de crear la aplicación.Ingresa un Nombre visible,
Tutorial
, y haz clic en Continuar. Este es un nombre fácil de usar que puedes actualizar. Para obtener más información, consulta Actualiza una aplicación existente.En el panel Agregar atributos, en la lista Criticidad, selecciona Alta. La importancia indica qué tan importante es una aplicación, un servicio o una carga de trabajo para las operaciones de tu empresa.
En el campo Entorno, para indicar la etapa del ciclo de vida del software, selecciona Producción.
Haga clic en Continuar.
En el panel Agregar propietarios, agrega los siguientes detalles para los propietarios desarrolladores, los propietarios operadores y los propietarios de la empresa. Ten en cuenta que debes ingresar la dirección de correo electrónico del propietario si agregas un nombre visible.
- Ingresa el nombre visible de un propietario.
- Ingresa la dirección de correo electrónico del propietario. Este valor debe tener el formato
username@yourdomain
, por ejemplo,222larabrown@gmail.com
.
Repite estos pasos para cada desarrollador, operador y propietario de la empresa.
Haz clic en Crear.
Se creará la aplicación nueva y aparecerá en la página Aplicaciones. Ten en cuenta que solo la regla de reenvío, el mapa de URL, el servicio de backend y el grupo de instancias administrado (MIG) estarán disponibles como recursos descubiertos en la aplicación de App Hub. Para obtener más información, consulta conceptos y modelo de datos.
gcloud
Selecciona el proyecto host de App Hub que creaste:
gcloud config set project HOST_PROJECT_ID
Crea una aplicación nueva llamada
tutorial-application
en la regiónglobal
y asígnale un nombre visible,Tutorial
. Este nombre de aplicación,tutorial-application
, es un identificador único y es inmutable después de crear la aplicación. El nombre visible,Tutorial
, es un nombre fácil de usar que puedes actualizar. Para obtener más información, consulta Actualiza una aplicación existente.gcloud apphub applications create tutorial-application \ --display-name='Tutorial' \ --scope-type=GLOBAL \ --project=HOST_PROJECT_ID \ --location=global
Enumera las aplicaciones de tu proyecto host de App Hub:
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=global
Verás un resultado similar al siguiente:
ID DISPLAY_NAME CREATE_TIME tutorial-application Tutorial 2023-10-31T18:33:48
Actualiza tu aplicación con los atributos
criticality-type
,environment-type
y propietario:gcloud apphub applications update tutorial-application \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \ --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \ --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \ --project=HOST_PROJECT_ID \ --location=global
Reemplaza lo siguiente:
DISPLAY-NAME-DEVELOPER
,DISPLAY-NAME-OPERATOR
yDISPLAY-NAME-BUSINESS
: Son los nombres visibles del desarrollador, el operador y los propietarios de la empresa, respectivamente.EMAIL-NAME-DEVELOPER
,EMAIL-NAME-OPERATOR
yEMAIL-NAME-BUSINESS
: direcciones de correo electrónico del desarrollador, el operador y los propietarios de la empresa, respectivamente. Estos valores deben tener el formatousername@yourdomain
, por ejemplo,222larabrown@gmail.com
.
Notas:
criticality-type
: Indica qué tan importante es una aplicación, un servicio o una carga de trabajo para las operaciones de tu empresa.environment-type
: Indica las etapas del ciclo de vida del software.
Obtén detalles de la aplicación que creaste:
gcloud apphub applications describe tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
El comando muestra información en formato YAML, similar a la siguiente:
attributes: businessOwners: – displayName: [DISPLAY-NAME-BUSINESS] email: [EMAIL-BUSINESS] criticality: type: HIGH developerOwners: – displayName: [DISPLAY-NAME-DEVELOPER] email: [EMAIL-DEVELOPER] environment: type: PRODUCTION operatorOwners: – displayName: [DISPLAY-NAME-OPERATOR] email: [EMAIL-OPERATOR] createTime: '2023-10-31T18:33:48.199394108Z' displayName: Tutorial name: projects/HOST_PROJECT_ID/locations/global/applications/tutorial-application scope: type: REGIONAL state: ACTIVE uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73 updateTime: '2023-10-31T18:33:48.343303819Z'
Registra servicios y cargas de trabajo
Cuando registras servicios y cargas de trabajo, los agregas a una aplicación que te permite supervisar los recursos agregados.
Console
En la consola de Google Cloud , ve a la página Aplicaciones de App Hub.
Haz clic en el nombre de tu aplicación, Instructivo. La pestaña Servicios y cargas de trabajo se muestra con una lista de los servicios y las cargas de trabajo registrados que se encuentran en tus proyectos de App Hub.
Registra un servicio:
- En la pestaña Servicios y cargas de trabajo, haz clic en Registrar servicio o carga de trabajo.
- En la página Registrar servicio o carga de trabajo, en el panel Seleccionar recurso, haz clic en Explorar para seleccionar el servicio o la carga de trabajo como Recurso.
- En el panel Seleccionar recurso, elige el Nombre del servicio, tutorial-backend-service-sp2, y haz clic en Seleccionar.
- En el panel Seleccionar recurso, ingresa el Nombre del recurso,
tutorial-service-backend-sp2
. - Ingresa un Nombre visible,
Backend service (SP2)
, y haz clic en Continuar. - En el panel Agregar atributos, en la lista Criticidad, para indicar la importancia de la aplicación, selecciona Alta.
- En el campo Entorno, para indicar la etapa del ciclo de vida del software, selecciona Producción.
- Haga clic en Continuar.
- En el panel Agregar propietarios, agrega los siguientes detalles según sea necesario para los propietarios desarrolladores, los propietarios operadores y los propietarios de la empresa.
Ten en cuenta que debes ingresar la dirección de correo electrónico del propietario si agregas un nombre visible.
- Ingresa el nombre visible de un propietario.
- Ingresa la dirección de correo electrónico del propietario. Este valor debe tener el formato
username@yourdomain
, por ejemplo,222larabrown@gmail.com
.
- Repite estos pasos para cada desarrollador, operador y propietario de la empresa.
- Haz clic en Register.
En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, puedes ver el servicio nuevo que agregaste.
- Repite los pasos anteriores para registrar los otros servicios como tutorial-service-backend-sp3, tutorial-service-forwarding-rule y tutorial-service-url-map, respectivamente.
- Para registrar una carga de trabajo, repite los pasos anteriores para registrar un servicio
con las siguientes excepciones:
- En el panel Register service or workload, en la sección Choose service or workload, selecciona el Nombre de la carga de trabajo, tutorial-sp2-mig-a, y haz clic en Continue.
- En el panel Seleccionar recurso, ingresa el Nombre del recurso,
tutorial-workload-sp2-mig-a
. - Ingresa un Nombre visible,
Instance group - A (SP2)
, y haz clic en Continuar.
- Repite los pasos anteriores para registrar las otras cargas de trabajo como tutorial-workload-sp2-mig-a, tutorial-workload-sp2-mig-b, tutorial-workload-sp3-mig-a y tutorial-workload-sp3-mig-b, respectivamente.
gcloud
Agrega a una persona con permisos de editor de App Hub:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
Reemplaza
APP_HUB_EDITOR
por el usuario que tiene el rol de editor de App Hub en el proyecto de host de App Hub. Este valor tiene el formatousername@yourdomain
, por ejemplo,222larabrown@gmail.com
.Muestra una lista de todos los servicios descubiertos en el proyecto host de App Hub. Este comando muestra los servicios que están disponibles para registrarse en una aplicación.
gcloud apphub discovered-services list \ --project=HOST_PROJECT_ID \ --location=us-west1
Verás un resultado similar al siguiente:
ID SERVICE_REFERENCE SERVICE_PROPERTIES
BACKEND_SERVICE_SP2_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp2'} {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}BACKEND_SERVICE_SP3_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp3'} {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}FORWARDING_RULE_SERVICE_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule'} {'gcpProject': 'projects/SERVICE_PROJECT_1_ID', 'location': 'us-west1'}URL_MAP_SERVICE_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/urlMaps/tutorial-url-maps'} {'gcpProject': 'projects/SERVICE_PROJECT_1_ID', 'location': 'us-west1'}Copia los
ID
del servicio, por ejemplo,BACKEND_SERVICE_SP2_ID
, del resultado para usarlos en el siguiente paso.Registra los servicios del paso anterior en tu aplicación. Copia los IDs de servicio del campo de salida del paso anterior.
gcloud apphub applications services create tutorial-service-backend-sp2 \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_SP2_ID' \ --display-name='Backend service (SP2)' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications services create tutorial-service-backend-sp3 \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_SP3_ID' \ --display-name='Backend service (SP3)' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications services create tutorial-service-forwarding-rule \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \ --display-name='Forwarding rule' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications services create tutorial-service-url-map \ --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/URL_MAP_SERVICE_ID' \ --display-name='URL map' \ --criticality-type='HIGH' \ --environment-type='PRODUCTION' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Reemplaza lo siguiente:
BACKEND_SERVICE_SP2_ID
: Es el servicioID
del servicio de backend del proyecto de servicio 2 que deseas registrar.BACKEND_SERVICE_SP3_ID
: Es el servicioID
del servicio de backend del proyecto de servicio 3 que deseas registrar.FORWARDING_RULE_SERVICE_ID
: El servicioID
de la regla de reenvío del proyecto de servicio 1 que deseas registrar.URL_MAP_SERVICE_ID
: El servicioID
del mapa de URL del proyecto de servicio 1 que deseas registrar.
Enumera todos los servicios registrados en la aplicación:
gcloud apphub applications services list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Verás un resultado similar al siguiente:
Los servicios registrados, pero separados, se indican con un valor vacío en el campoID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME tutorial-service-backend-sp2 Backend service {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp2'} 2024-02-13T00:31:45 tutorial-service-backend-sp3 Backend service {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/regions/us-west1/backendServices/tutorial-backend-service-sp3'} 2024-02-13T00:31:45 tutorial-service-forwarding-rule Forwarding rule {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/forwardingRules/l7-ilb-forwarding-rule'} 2024-02-13T00:31:45 tutorial-service-url-map URL map {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_1_NUMBER]/regions/us-west1/urlMaps/tutorial-url-maps'} 2024-02-13T00:31:45
SERVICE_REFERENCE
. Para obtener más información sobre los estados de registro, consulta las propiedades y los atributos de App Hub.Enumera todas las cargas de trabajo descubiertas en el proyecto host de App Hub. Este comando muestra las cargas de trabajo disponibles para registrarse en una aplicación.
gcloud apphub discovered-workloads list \ --project=HOST_PROJECT_ID \ --location=global
Verás un resultado similar al siguiente:
Copia el ID de la carga de trabajo del resultado para usarlo en el proximo paso.ID WORKLOAD_REFERENCE WORKLOAD_PROPERTIES
INSTANCE_GROUP_SP3_A_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-a'} {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}INSTANCE_GROUP_SP3_B_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-b'} {'gcpProject': 'projects/SERVICE_PROJECT_3_ID', 'location': 'us-west1'}INSTANCE_GROUP_SP2_A_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-a'} {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}INSTANCE_GROUP_SP2_B_ID
{'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-b'} {'gcpProject': 'projects/SERVICE_PROJECT_2_ID', 'location': 'us-west1'}Registra las cargas de trabajo del paso anterior en tu aplicación. Copia el ID de la carga de trabajo del campo de salida del paso anterior.
gcloud apphub applications workloads create tutorial-workload-sp3-mig-a \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP3_A_ID' \ --display-name='Workload instance group (SP3-A)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications workloads create tutorial-workload-sp3-mig-b \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP3_B_ID' \ --display-name='Workload instance group (SP3-B)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications workloads create tutorial-workload-sp2-mig-a \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP2_A_ID' \ --display-name='Workload instance group (SP2-A)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
gcloud apphub applications workloads create tutorial-workload-sp2-mig-b \ --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/INSTANCE_GROUP_SP2_B_ID' \ --display-name='Workload instance group (SP2-B)' \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Reemplaza lo siguiente:
INSTANCE_GROUP_SP3_A_ID
,INSTANCE_GROUP_SP3_B_ID
: LosID
de la carga de trabajo de los grupos de instancias administradas del proyecto de servicio 3 que deseas registrar.INSTANCE_GROUP_SP2_A_ID
,INSTANCE_GROUP_SP2_B_ID
: LosID
de la carga de trabajo de los grupos de instancias administradas del proyecto de servicio 2 que deseas registrar.
Enumera todas las cargas de trabajo registradas en la aplicación:
gcloud apphub applications workloads list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Verás un resultado similar al siguiente:
Las cargas de trabajo registradas, pero separadas, se indican con un valor vacío en el campoID DISPLAY_NAME SERVICE_REFERENCE CREATE_TIME tutorial-workload-sp3-mig-a Workload instance group (SP3-A) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-a'} 2024-02-13T00:31:45 tutorial-workload-sp3-mig-b Workload instance group (SP3-B) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_3_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp3-mig-b'} 2024-02-13T00:31:45 tutorial-workload-sp2-mig-a Workload instance group (SP2-A) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-a'} 2024-02-13T00:31:45 tutorial-workload-sp2-mig-b Workload instance group (SP2-B) {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_2_NUMBER]/zones/us-west1-a/instanceGroups/tutorial-sp2-mig-b'} 2024-02-13T00:31:45
WORKLOAD_REFERENCE
. Para obtener más información sobre los estados de registro, consulta las propiedades y los atributos de App Hub.
Cómo ver todos los servicios y las cargas de trabajo
Puedes ver los detalles de los servicios y las cargas de trabajo desde los proyectos de servicio que están adjuntos al proyecto host de App Hub.
En la consola de Google Cloud , ve a la página Servicios y cargas de trabajo del App Hub.
En la lista Región, selecciona global. La carga de trabajo del grupo de instancias de la carga de trabajo se muestra con detalles como Tipo de App Hub, Importancia y Registrado en.
Para filtrar los servicios o las cargas de trabajo según su estado, sigue estos pasos:
- En el campo Filtro, selecciona filtros, como Estado de registro.
- Haz clic en Registered. Aparecerá una lista de servicios y cargas de trabajo registrados en la aplicación.
Consulta las métricas de las aplicaciones
Puedes ver las métricas del sistema de las aplicaciones creadas en tu proyecto de host de App Hub. Estas métricas corresponden a los indicadores de oro: tráfico, errores, latencia y saturación que ayudan a supervisar el rendimiento y el estado de la aplicación.
En la consola de Google Cloud , ve a la página Aplicaciones de App Hub.
Haz clic en el nombre de la aplicación,
Tutorial
.La pestaña Servicios y cargas de trabajo se muestra con los metadatos de los servicios y las cargas de trabajo registrados en tu aplicación.
Para ver las métricas del sistema de los servicios y las cargas de trabajo registrados, haz clic en Métricas.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra los recursos de App Hub
Console
En la consola de Google Cloud , ve a la página Aplicaciones de App Hub.
Haz clic en el nombre de una aplicación, Instructivo.
En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, haz clic en el nombre de un servicio.
En la página Servicios y cargas de trabajo, haz clic en Cancelar registro.
Una alerta notifica que el servicio no está registrado.
En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, haz clic en el nombre de una carga de trabajo.
En la pestaña Detalles, haz clic en Cancelar registro.
Una alerta notifica que la carga de trabajo no está registrada.
Ve a la página Aplicaciones de App Hub.
Haz clic en el nombre de una aplicación.
En la página tutorial-application, haz clic en Borrar.
En la consola de Google Cloud , ve a la página Configuración de App Hub.
En la página Configuración, selecciona la casilla de verificación del proyecto de servicio que deseas quitar del proyecto de host de App Hub.
Haz clic en Detach projects.
gcloud
Muestra una lista de los servicios registrados en la aplicación:
gcloud apphub applications services list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Cancela el registro de los servicios de la aplicación:
gcloud apphub applications services delete SERVICE_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
SERVICE_NAME
por el nombre del servicio Los servicios ahora son servicios descubiertos que se pueden registrar en la aplicación.Enumera las cargas de trabajo registradas en la aplicación:
gcloud apphub applications workloads list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Cancela el registro de la carga de trabajo de la aplicación:
gcloud apphub applications workloads delete WORKLOAD_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Reemplaza
WORKLOAD_NAME
por el nombre de tu carga de trabajo. La carga de trabajo ahora es una carga de trabajo descubierta que se puede registrar en la aplicación.Borra la aplicación:
gcloud apphub applications delete tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Quita los proyectos de servicio del proyecto host de App Hub:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
Reemplaza
SERVICE_PROJECT_ID
por los IDs de los proyectos de servicio 1, 2 y 3.
Borrar la implementación
Cuando ya no necesites la solución, borra todos los recursos que creaste para evitar que se sigan facturando.
Para obtener más información, consulta Cómo limpiar la configuración del balanceador de cargas.Borra el proyecto
Console
- En la consola de Google Cloud , ve a la página Administrar recursos.
- En la lista de proyectos, selecciona el proyecto que quieres borrar y haz clic en Borrar.
- En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.
gcloud
Borra un proyecto de Google Cloud :
gcloud projects delete PROJECT_ID
Reemplaza PROJECT_ID
por los IDs del proyecto de servicio o
host.