En este tutorial se explica cómo configurar una aplicación global de App Hub para varios proyectos y, a continuación, ver los recursos de la aplicación. Si utilizas varios proyectos de servicio, puedes configurar un balanceador de carga de aplicaciones interno en un entorno de VPC compartida. A continuación, en una aplicación global del proyecto host de App Hub, registra y monitoriza todos los recursos de infraestructura de los proyectos de servicio como servicios y cargas de trabajo de App Hub.
Este tutorial está dirigido a personas que configuran y administran el centro de aplicaciones. Debes tener cierta experiencia con Cloud Load Balancing.
Objetivos
- Configura una aplicación Global App Hub que contenga recursos de varios proyectos.
- Monitoriza los recursos mediante métricas del sistema de la aplicación.
Costes
Para obtener una estimación del coste de los Google Cloud recursos que utiliza la solución de máquinas virtuales gestionadas con balanceo de carga, consulta la estimación precalculada en la Google Cloud calculadora de precios.
Usa la estimación como punto de partida para calcular el coste de tu implementación. Puedes modificar la estimación para reflejar los cambios de configuración que tengas previsto hacer en los recursos que se usan en la solución.
La estimación precalculada se basa en suposiciones sobre determinados factores, como los siguientes:
- Las Google Cloud ubicaciones en las que se despliegan los recursos.
- Tiempo durante el que se usan los recursos.
Para obtener más información sobre los costes de App Hub, consulta la página Precios.
Antes de empezar
Antes de configurar este tutorial, decide los roles y permisos de tus proyectos y, a continuación, crea cuatro proyectos. 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 necesarios
Si eres el creador del proyecto, se te asignará el rol básico Propietario
(roles/owner
). De forma predeterminada, este rol de gestión de identidades y accesos (IAM) incluye los permisos necesarios para tener acceso completo a la mayoría de los recursos Google Cloud.
Si no eres el creador del proyecto, debes conceder los permisos necesarios al principal correspondiente. Por ejemplo, una entidad 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 para gestionar el acceso a un proyecto, una carpeta o una organización, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el recurso al que quieras gestionar el acceso (proyecto, carpeta u organización):
-
Para gestionar el acceso a un proyecto, sigue estos pasos:
-
Administrador de App Hub (
roles/apphub.admin
) -
Cloud Infrastructure Manager (
roles/config.admin
) -
Rol Administrador de VPC compartidas de Compute (
roles/compute.xpnAdmin
) -
Administrador de gestión de identidades y accesos del proyecto (
roles/resourcemanager.projectIamAdmin
) -
Administrador de Uso de Servicio (
roles/serviceusage.services.enable
) -
Administrador de cuentas de servicio (
roles/iam.serviceAccounts.create
)
-
Administrador de App Hub (
-
Para gestionar el acceso a una carpeta, sigue estos pasos:
Rol Administrador de VPC compartidas de Compute (
roles/compute.xpnAdmin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Crear proyectos de host y de servicio de App Hub
Consola
En la Google Cloud consola, ve a la página del selector de proyectos.
Selecciona o crea un Google Cloud proyecto que será tu proyecto host de App Hub.
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. En la misma carpeta que el proyecto host de App Hub, crea tres proyectos Google Cloud nuevos. Estos son los proyectos de servicio de App Hub del proyecto del host de App Hub.
Asegúrate de que la facturación esté habilitada en todos tus Google Cloud proyectos.
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
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,
HOST_PROJECT_ID
, que será el proyecto host de App Hub.Crea un Google Cloud proyecto:
gcloud projects create HOST_PROJECT_ID
Selecciona el Google Cloud proyecto que has creado:
gcloud config set project HOST_PROJECT_ID
Asegúrate de que la facturación esté habilitada en todos tus Google Cloud proyectos.
Habilita las APIs 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 Google Cloud nuevos 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
Sustituye
SERVICE_PROJECT_1_ID
por el ID del proyecto de servicio 1.Selecciona el proyecto de servicio que has creado:
gcloud config set project SERVICE_PROJECT_1_ID
Habilita las APIs Compute Engine, Service Management y Service Usage:
gcloud services enable compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Defina la variable de configuración que se usa en este tutorial:
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, habilita las APIs y define la variable de configuración.
Preparar el entorno
Si ya tienes un balanceador de carga de aplicaciones interno en un entorno de VPC compartida configurado en varios proyectos, ve a la sección Conceder permisos de IAM de este documento.
Si no es así, para configurar un balanceador de carga 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 carga con dos grupos de instancias gestionados como backends.
- En el proyecto de servicio 3, crea otro servicio de backend del balanceador de carga con dos grupos de instancias gestionados como backends.
- En el proyecto de servicio 1, crea los componentes de frontend y el mapa de URLs del balanceador de carga.
A continuación se muestra el flujo de procesamiento de solicitudes de la topología que despliega la solución de máquinas virtuales gestionadas con balanceo de carga.
Desde la red de VPC compartida, la VM cliente envía una solicitud HTTP al balanceador de carga de aplicaciones interno del proyecto de servicio 1.
El balanceador de carga usa la información del mapa de URLs y los servicios de backend para enrutar la solicitud a los backends de su grupo de instancias gestionado.
Configurar la red y las subredes en el proyecto host de la VPC compartida
Necesitas una red de VPC compartida con dos subredes: una para el frontend y los backends del balanceador de carga, y otra para los proxies del balanceador de carga.
En este ejemplo se usan la siguiente red, región y subredes:
Red. La red se llama
lb-network
.Subred para el frontend y los backends del balanceador de carga. Una subred llamada
lb-frontend-and-backend-subnet
en la regiónus-west1
usa10.1.2.0/24
para su intervalo de IP principal.Subred para proxies. Una subred llamada
proxy-only-subnet
en la regiónus-west1
usa10.129.0.0/23
para su intervalo de IP principal.
En este tutorial, designa el proyecto de servicio 1 como proyecto host de la VPC compartida. Todos los pasos de esta sección deben realizarse en el proyecto de servicio 1.
Configurar la subred para el frontend y los backends del balanceador de carga
No es necesario realizar este paso cada vez que quieras crear un balanceador de carga. Solo tienes que asegurarte de que los proyectos de servicio tengan acceso a una subred de la red de VPC compartida (además de la subred de solo proxy).
Consola
- En la Google Cloud consola, ve a la página Redes de VPC.
- Haz clic en Crear red VPC.
- En el campo Name (Nombre), introduce
lb-network
. - Elige Personalizado en Modo de creación de subred.
En la sección Nueva subred, introduce la siguiente información:
Nombre:
lb-frontend-and-backend-subnet
Región:
us-west1
Intervalo de direcciones IP:
10.1.2.0/24
Haz clic en Listo.
Haz clic en Crear.
gcloud
Define el proyecto como Proyecto de servicio 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
de la regiónus-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Configurar la subred de solo proxy
Todos los balanceadores de carga regionales basados en Envoy de la us-west1
región usan la subred de solo proxy en la red de VPC lb-network
. Solo puede haber una subred solo proxy activa por región y por red.
No realices este paso si ya hay una subred de solo proxy reservada en la región us-west1
de esta red.
Consola
- En la Google Cloud consola, ve a la página Redes de VPC.
- Haz clic en el nombre de la red de VPC compartida:
lb-network
. - Haz clic en la pestaña Subredes y, a continuación, en Añadir subred.
- En el panel Añadir una subred, en el campo Nombre, introduce
proxy-only-subnet
. - En la lista Región, selecciona
us-west1
. - En Propósito, selecciona Proxy gestionado regional.
- En el campo Intervalo de direcciones IP, introduce
10.129.0.0/23
. - Haz clic en Añadir.
gcloud
Crea la subred de solo proxy con el comando gcloud compute networks subnets
create
:
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Dar acceso a la subred backend a los administradores del proyecto de servicio
Los administradores del proyecto de servicio necesitan acceso a la subred lb-frontend-and-backend-subnet
para poder aprovisionar los back-ends del balanceador de carga.
Un administrador de VPC compartida debe conceder acceso a la subred de backend a los administradores de proyectos de servicio (o a los desarrolladores que implementen recursos y backends que utilicen la subred). Para obtener instrucciones, consulta Administradores de proyectos de servicio para algunas subredes.
Configurar reglas de cortafuegos en el proyecto de servicio 1
En este ejemplo se usan las siguientes reglas de cortafuegos:
fw-allow-health-check
. Una regla de entrada, aplicable a las instancias que se van a balancear, que permite todo el tráfico TCP de los sistemas de comprobación del estado de Google Cloud,130.211.0.0/22
y35.191.0.0/16
. En este ejemplo se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que se debe aplicar.fw-allow-proxies
. Una regla de entrada, aplicable a las instancias que se van a balancear, que permite el tráfico TCP en los puertos80
,443
y8080
desde los proxies gestionados del balanceador de carga. En este ejemplo se usa la etiqueta de destinoload-balanced-backend
para identificar las instancias a las que se debe aplicar.fw-allow-ssh
. Una regla de entrada aplicable a las instancias que se van a balancear de carga que permita la conectividad SSH entrante en el puerto TCP22
desde cualquier dirección. Puedes elegir un intervalo de IPs de origen más restrictivo para esta regla. Por ejemplo, puede especificar solo los intervalos de IP del sistema desde el que inicia sesiones SSH. En este ejemplo se usa la etiqueta de destinoallow-ssh
para identificar las máquinas virtuales a las que se aplica la regla de cortafuegos.
Sin estas reglas de cortafuegos, la regla denegar predeterminada de entrada bloquea el tráfico entrante a las instancias de backend.
Consola
En la Google Cloud consola, ve a la página Políticas de cortafuegos.
- Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
- Nombre:
fw-allow-health-check
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de origen: intervalos de IPv4
- Intervalos de IPv4 de origen:
130.211.0.0/22
y35.191.0.0/16
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Selecciona la casilla TCP e introduce
80
como número de puerto.
Como práctica recomendada, limita esta regla a los protocolos y puertos que coincidan con los que usa tu comprobación del estado. Si usas
tcp:80
para el protocolo y el puerto, Google Cloud puedes usar HTTP en el puerto80
para comunicarte con tus VMs, pero no puedes usar HTTPS en el puerto443
para comunicarte con ellas. - Haz clic en Crear.
- Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
- Nombre:
fw-allow-proxies
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
load-balanced-backend
- Filtro de origen: intervalos de IPv4
- Intervalos de IPv4 de origen:
10.129.0.0/23
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Seleccione la casilla TCP e introduzca
80, 443, 8080
en los números de puerto.
- Haz clic en Crear.
- Haz clic en Crear regla de cortafuegos para crear la regla que permita las comprobaciones del estado: Google Cloud
- Nombre:
fw-allow-ssh
- Red:
lb-network
- Dirección del tráfico: entrada
- Acción tras coincidencia: permitir
- Destinos: etiquetas de destino especificadas
- Etiquetas de destino:
allow-ssh
- Filtro de origen: intervalos de IPv4
- Intervalos de IPv4 de origen:
0.0.0.0/0
- Protocolos y puertos:
- Elige Protocolos y puertos especificados.
- Selecciona la casilla TCP e introduce
22
como número de puerto.
- Haz clic en Crear.
gcloud
Crea la regla de cortafuegos
fw-allow-health-check
para permitir las comprobaciones del estadoGoogle Cloud . En este ejemplo, se permite todo el tráfico TCP de los verificadores de comprobación del estado. Sin embargo, puedes configurar un conjunto de puertos más reducido para satisfacer tus necesidades.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp
Crea la regla de cortafuegos
fw-allow-proxies
para permitir que el tráfico de la subred de solo proxy de Envoy llegue a tus backends:gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Crea la regla de cortafuegos
fw-allow-ssh
para permitir la conectividad SSH a las VMs con la etiqueta de redallow-ssh
:gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Reservar 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 la dirección IP se crea en el proyecto de servicio, mientras que su valor procede del intervalo de direcciones IPv4 disponibles en la subred compartida elegida.
Para reservar una dirección IP interna independiente en el proyecto de servicio, sigue estos pasos.
Consola
- Configura VPC compartida.
En la Google Cloud consola, ve a la página VPC compartida.
Inicia sesión como administrador de VPC compartida.
Selecciona el proyecto de servicio en el 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, introduce
l7-ilb-ip-address
como 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 has hecho, autentícate en la CLI de Google Cloud como administrador del proyecto de servicio de VPC compartida.
gcloud auth login SERVICE_PROJECT_ADMIN
Sustituye
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
Puede consultar más detalles sobre cómo crear direcciones IP en la documentación del SDK.
Configurar VPC compartida en el proyecto de servicio 1
Para configurar la VPC compartida en el proyecto de servicio 1, designa el proyecto de servicio 1 como proyecto de host de la VPC compartida y los proyectos de servicio 2 y 3 como proyectos de servicio de la VPC compartida. Más adelante en este tutorial, cuando crees los back-ends de MIG en los proyectos de servicio 2 y 3, podrás usar la misma red VPC y las mismas subredes que creaste anteriormente en el proyecto de servicio 1.
- Habilita un proyecto del host.
- Vincula un proyecto de servicio.
Concede el rol de usuario de red de Compute (
roles/compute.networkUser
) a los proyectos de servicio 2 y 3:Consola
En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Haz clic en
Conceder acceso. Se abrirá el panel Dar acceso.En el campo Nuevos directores, introduce
SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com
.Ten en cuenta que puedes obtener los números de los proyectos de servicio desde el panel de control del proyecto:
Haz clic en Seleccionar un rol y, en el campo Filtro, introduce
Compute Network User
.Selecciona el rol Usuario de red de Compute y haz clic en Guardar.
Repite los pasos anteriores para conceder el rol
Compute Network User
al proyecto de servicio 3 (SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com
).
gcloud
En el proyecto de servicio 1, concede el rol Usuario de 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'
Sustituye
SERVICE_PROJECT_2_NUMBER
por el número de proyecto del proyecto de servicio 2.En el proyecto de servicio 1, concede el rol Usuario de 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'
Sustituye
SERVICE_PROJECT_3_NUMBER
por el número de proyecto del proyecto de servicio 3.
Crear un servicio de backend y MIGs en el proyecto de servicio 2
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 2.
Consola
Crea una plantilla de instancia. En la consola, ve a la página Plantillas de instancia. Google Cloud
- Haz clic en Crear plantilla de instancia.
- Introduce un nombre para la plantilla de instancia:
tutorial-ig-template-sp2
. - En la sección Ubicación, selecciona Regional (recomendado) y us-west1(Oregón) como Región.
- En la sección Configuración de la máquina, selecciona N2 como serie.
- Asegúrate de que el disco de arranque esté configurado con una imagen de Debian, como Debian GNU/Linux 12 (bookworm). En estas instrucciones se usan comandos
que solo están disponibles en Debian, como
apt-get
. Si necesitas cambiar el disco de arranque, haz clic en Cambiar.- En Sistema operativo, selecciona Debian.
- En Versión, selecciona una de las imágenes de Debian disponibles, como Debian GNU/Linux 12 (bookworm).
- Haz clic en Seleccionar.
- Haz clic en Opciones avanzadas y, a continuación, en Redes.
- Introduce las siguientes etiquetas de red:
allow-ssh
,load-balanced-backend
. - En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: SERVICE_PROJECT_1_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. - Haz clic en Gestión. En Management (Gestión), inserta la siguiente secuencia de comandos en el campo Startup script (Secuencia de comandos de inicio).
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | tee /var/www/html/index.html systemctl restart apache2
- Haz clic en Crear.
Crea un grupo de instancias gestionado. En la Google Cloud consola, ve a la página Grupos de instancias.
- Haz clic en Crear grupo de instancias.
- Elige Nuevo grupo de instancias gestionado (sin reconocimiento del estado). Para obtener más información, consulta Grupos de instancias gestionados con o sin reconocimiento del estado.
- Introduzca un nombre para el grupo de instancias:
tutorial-sp2-mig-a
. - En Plantilla de instancia, selecciona tutorial-ig-template-sp2.
- En Ubicación, selecciona Una sola zona.
- En Región, selecciona
us-west1
. Especifica el número de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones para Escalado automático:
- En Modo de autoescalado, selecciona
Off:do not autoscale
. - En Número máximo de instancias, introduce
2
.
- En Modo de autoescalado, selecciona
Haz clic en Crear.
Crea un servicio backend regional. Como parte de este paso, también crearemos la comprobación del estado y añadiremos back-ends al servicio de back-end. En la Google Cloud consola, ve a la página Backends.
- Haz clic en Crear servicio de backend.
- En el cuadro de diálogo Crear servicio de backend, haz clic en Crear junto a Servicio de backend regional.
- Introduce un nombre para el servicio de backend:
tutorial-backend-service-sp2
. - En Region (Región), selecciona us-west1.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación interno regional (INTERNAL_MANAGED).
- En Tipo de backend, seleccione Grupo de instancias.
- En la sección Backends, define los siguientes campos:
- Define Grupo de instancias como tutorial-sp2-mig-a.
- Introduce los números de puerto:
80
. - En Modo de balanceo, selecciona Utilización.
- Haz clic en Listo.
- En la sección Comprobación del estado, haga clic en Crear comprobación del estado
y defina los siguientes campos:
- Nombre:
tutorial-regional-health-check
- Protocolo:
HTTP
- Puerto:
80
- Haz clic en Guardar.
- Nombre:
- Haz clic en Continuar.
- Haz clic en Crear.
Repite los pasos anteriores y crea un grupo de instancias administrado,
tutorial-sp2-mig-b
y añádelo al servicio de backendtutorial-backend-service-sp2
.
gcloud
- Selecciona el proyecto de servicio que has creado:
gcloud config set project SERVICE_PROJECT_2_ID
Crea una plantilla de instancia 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
Haz los cambios siguientes:
SERVICE_PROJECT_1_ID
: el ID del proyecto host de la VPC compartida.SERVICE_PROJECT_2_ID
: el ID del proyecto de servicio en el que se están creando los backends y el servicio de backend del balanceador de carga.
Crea un grupo de instancias gestionado,
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 comprobación del 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
Añade 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 gestionado,
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
Añade 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
Crear un servicio de backend y MIGs en el proyecto de servicio 3
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 3.
Consola
Crea una plantilla de instancia. En la consola, ve a la página Plantillas de instancia. Google Cloud
- Haz clic en Crear plantilla de instancia.
- Introduce un nombre para la plantilla de instancia:
tutorial-ig-template-sp3
. - En la sección Ubicación, selecciona Regional (recomendado) y us-west1(Oregón) como Región.
- En la sección Configuración de la máquina, selecciona N2 como serie.
- Asegúrate de que el disco de arranque esté configurado con una imagen de Debian, como Debian GNU/Linux 12 (bookworm). En estas instrucciones se usan comandos
que solo están disponibles en Debian, como
apt-get
. Si necesitas cambiar el disco de arranque, haz clic en Cambiar.- En Sistema operativo, selecciona Debian.
- En Versión, selecciona una de las imágenes de Debian disponibles, como Debian GNU/Linux 12 (bookworm).
- Haz clic en Seleccionar.
- Haz clic en Opciones avanzadas y, a continuación, en Redes.
- Introduce las siguientes etiquetas de red:
allow-ssh
,load-balanced-backend
. - En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del host: SERVICE_PROJECT_1_ID).
- Selecciona la subred
lb-frontend-and-backend-subnet
de la redlb-network
. - Haz clic en Gestión. En Management (Gestión), inserta la siguiente secuencia de comandos en el campo Startup script (Secuencia de comandos de inicio).
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | tee /var/www/html/index.html systemctl restart apache2
- Haz clic en Crear.
Crea un grupo de instancias gestionado. En la Google Cloud consola, ve a la página Grupos de instancias.
- Haz clic en Crear grupo de instancias.
- Elige Nuevo grupo de instancias gestionado (sin reconocimiento del estado). Para obtener más información, consulta Grupos de instancias gestionados con o sin reconocimiento del estado.
- Introduzca un nombre para el grupo de instancias:
tutorial-sp3-mig-a
. - En Plantilla de instancia, selecciona tutorial-ig-template-sp3.
- En Ubicación, selecciona Una sola zona.
- En Región, selecciona
us-west1
. Especifica el número de instancias que quieres crear en el grupo.
En este ejemplo, especifica las siguientes opciones para Escalado automático:
- En Modo de autoescalado, selecciona
Off:do not autoscale
. - En Número máximo de instancias, introduce
2
.
- En Modo de autoescalado, selecciona
Haz clic en Crear.
Crea un servicio backend regional. Como parte de este paso, también crearemos la comprobación del estado y añadiremos back-ends al servicio de back-end. En la Google Cloud consola, ve a la página Backends.
- Haz clic en Crear servicio de backend.
- En el cuadro de diálogo Crear servicio de backend, haz clic en Crear junto a Servicio de backend regional.
- Introduce un nombre para el servicio de backend:
tutorial-backend-service-sp3
. - En Region (Región), selecciona us-west1.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación interno regional (INTERNAL_MANAGED).
- En Tipo de backend, seleccione Grupo de instancias.
- En la sección Backends, define los siguientes campos:
- Define Grupo de instancias como tutorial-sp3-mig-a.
- Introduce los números de puerto:
80
. - En Modo de balanceo, selecciona Utilización.
- Haz clic en Listo.
- En la sección Comprobación del estado, haga clic en Crear comprobación del estado
y defina los siguientes campos:
- Nombre:
tutorial-regional-health-check
- Protocolo:
HTTP
- Puerto:
80
- Haz clic en Guardar.
- Nombre:
- Haz clic en Continuar.
- Haz clic en Crear.
Repite los pasos anteriores y crea un grupo de instancias administrado,
tutorial-sp3-mig-b
y añádelo al servicio de backendtutorial-backend-service-sp3
.
gcloud
- Selecciona el proyecto de servicio que has creado:
gcloud config set project SERVICE_PROJECT_3_ID
Crea una plantilla de instancia 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
Haz los cambios siguientes:
SERVICE_PROJECT_1_ID
: el ID del proyecto host de la VPC compartida.SERVICE_PROJECT_3_ID
: el ID del proyecto de servicio en el que se están creando los backends y el servicio de backend del balanceador de carga.
Crea un grupo de instancias gestionado,
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 comprobación del 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
Añade 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 gestionado,
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
Añade 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
Crear el mapa de URLs 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.
Consola
Selecciona el tipo de balanceador de carga
En la Google Cloud consola, ve a la página Balanceo de carga.
- Haga clic en Crear balanceador de carga.
- En Tipo de balanceador de carga, selecciona Balanceador de carga de aplicación (HTTP/HTTPS) y haz clic en Siguiente.
- En Público o interno, selecciona Interno y haz clic en Siguiente.
- En Implementación en una sola región o en varias regiones, selecciona La mejor opción para cargas de trabajo regionales y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
- Introduce un nombre para el balanceador de carga
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 la advertencia La subred de solo proxy es obligatoria en la red VPC compartida, confirma que el administrador del proyecto host ha creado la
proxy-only-subnet
en la regiónus-west1
de la red VPC compartidalb-network
. La creación del balanceador de carga se realiza correctamente aunque no tengas permiso para ver la subred solo proxy en esta página.Mantén la ventana abierta para continuar.
Configurar el backend
- Haz clic en Configuración de backend.
- Haz clic en Servicios de backend entre proyectos.
- En el campo ID del proyecto, introduce el ID del proyecto de Service Project 2.
- En el campo Nombre del servicio backend, introduce el nombre del servicio backend del proyecto de servicio 2 que quieras usar. En este ejemplo, es
tutorial-backend-service-sp2
. - Haz clic en Añadir servicio backend.
- En el campo ID del proyecto, introduce el ID del proyecto del proyecto de servicio 3.
- En el campo Nombre del servicio backend, introduce el nombre del servicio backend del proyecto de servicio 3 que quieras usar. En este ejemplo, es
tutorial-backend-service-sp3
. - Haz clic en Añadir servicio backend.
Configurar las reglas de enrutamiento
- Haz clic en Reglas de enrutamiento.
- En la sección Reglas de host y ruta, en el campo Host 2, introduce
*
. - En el campo Rutas 2, introduce
/*
. - En la lista desplegable Backend 2, selecciona
tutorial-backend-service-sp2
. - Haz clic en Añadir regla de host y ruta.
- En el campo Host 3, introduce
tutorial-host
. - En el campo Rutas 3, introduce
/*
. En la lista desplegable Backend 3, selecciona
tutorial-backend-service-sp3
.Busca la marca de verificación azul situada a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
Para obtener información sobre la gestión del tráfico, consulta Configurar la gestión del tráfico.
Configurar el frontend
Para que la referencia de servicios entre proyectos funcione, el frontend debe usar la misma red (lb-network
) del proyecto del host de VPC compartida que se usó para crear el servicio backend.
- Haz clic en Configuración de frontend.
- Escribe un nombre para la regla de reenvío:
l7-ilb-forwarding-rule
. - Define Protocol (Protocolo) como
HTTP
. - Asigna el valor
lb-frontend-and-backend-subnet
a Subred. No selecciones la subred solo proxy para el frontend, aunque sea una opción de la lista. - Asigna el valor
80
a Port. - En el campo Dirección IP, mantén la opción predeterminada Efímera (automática).
- Haz clic en Listo.
Revisar y finalizar la configuración
- Haz clic en Crear.
gcloud
Selecciona el proyecto de servicio que has creado:
gcloud config set project SERVICE_PROJECT_1_ID
Crea el mapa de URLs,
tutorial-url-maps
, y define 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
Haz los cambios siguientes:
SERVICE_PROJECT_2_ID
: el ID del proyecto de servicio 2, donde se crean los backends del balanceador de carga y el servicio de backend.SERVICE_PROJECT_1_ID
: el ID del proyecto de servicio 1, donde se está creando el frontend del balanceador de carga.
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 gestionar el tráfico HTTP. Para que la referencia de servicios entre proyectos funcione, la regla de reenvío debe usar la misma red (lb-network
) del proyecto del host de VPC compartida que se usó para crear el servicio de backend.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 URLs con el servicio de backend. Para obtener más información, consulta Usar mapas de URLs.
Vincula el servicio de backend
tutorial-backend-service-sp2
del proyecto de servicio 2 con el mapa de URLstutorial-url-maps
y el nombre del comparador de rutastutorial-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
del proyecto de servicio 3 con el mapa de URLstutorial-url-maps
y el nombre del comparador de rutastutorial-path-matcher-sp3
. Añade una nueva regla de host,tutorial-host
, con los hosts indicados para que el comparador de rutas esté vinculado a la nueva regla de host.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
Probar el balanceador de carga
Para probar el balanceador de carga, primero crea una VM cliente de muestra. A continuación, establece una sesión SSH con la VM y envía tráfico desde esta VM al balanceador de carga.
Crear una instancia de VM de prueba
Los clientes pueden estar ubicados en el proyecto host de la VPC compartida o en cualquier proyecto de servicio conectado. En este ejemplo, comprobarás que el balanceador de carga funciona desplegando una VM cliente en el proyecto de servicio 1, que se ha designado como proyecto host de la VPC compartida. El cliente debe usar la misma red de VPC compartida y estar en la misma región que el balanceador de carga.
Todos los pasos de esta sección deben realizarse en el proyecto de servicio 2.
Consola
En la consola de Google Cloud , ve a la página Instancias de VM.
Haz clic en Crear instancia.
En el campo Name (Nombre), introduce
client-vm
.Define la zona como us-west1-b.
Haz clic en Opciones avanzadas y, a continuación, en Redes.
Introduce las siguientes etiquetas de red:
allow-ssh
yload-balanced-backend
.En la sección Interfaces de red, selecciona Redes compartidas conmigo (del proyecto del 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
Enviar tráfico al balanceador de carga
Usa SSH para conectarte a la instancia que acabas de crear y comprueba que se puede acceder a los servicios HTTP(S) de los backends a través de la dirección IP de la regla de reenvío del balanceador de carga de aplicaciones interno y que el tráfico se balancea entre las instancias de backend.
Recupera el valor de la dirección IP del balanceador de carga:
gcloud compute addresses list --filter="name=( 'l7-ilb-ip-address')"
Verá 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 servicio
ADDRESS/RANGE
, por ejemplo,10.1.2.2
de la salida para usarlo en los pasos siguientes.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 carga esté sirviendo su nombre de host:
Verifica que la dirección IP esté sirviendo su nombre de host en el proyecto de servicio 2:
curl 10.1.2.2
Verá un resultado similar al siguiente:
Page served from: tutorial-sp2-mig-a-10xk
Verifica que la dirección IP esté sirviendo su nombre de host en el proyecto de servicio 3:
curl -H "Host: tutorial-host" 10.1.2.2
Verá un resultado similar al siguiente:
Page served from: tutorial-sp3-mig-a-3d5h
Conceder permisos de gestión de identidades y accesos
Proporciona los roles y permisos de gestión de identidades y accesos adecuados a los proyectos de host y de servicio de App Hub.
Consola
En la Google Cloud consola, ve a la página del selector de proyectos.
En la consola, ve a la página Gestión de identidades y accesos. Google Cloud
Haz clic en
Conceder acceso. Se abrirá el panel Dar acceso.En el campo Nuevos principales, introduce la dirección de correo de la persona que administrará App Hub, es decir, el rol Administrador de App Hub en el proyecto host de App Hub.
Haz clic en Seleccionar un rol y, en el campo Filtro, introduce
App Hub
.Selecciona el rol Administrador del centro de aplicaciones y haz clic en Guardar.
En cada uno de los proyectos de servicio de App Hub, concede el rol de administrador de App Hub al mismo usuario.
gcloud
Para conceder los roles a las personas que vayan a usar App Hub, repite el siguiente comando y sustituye los roles de gestión de identidades y accesos 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'
Sustituye
HOST_PROJECT_ADMIN
por el usuario que tenga 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
.Concede el rol de administrador de App Hub en el proyecto de servicio a las personas que administren App Hub. Deben tener el rol de administrador de App Hub para añadir proyectos de servicio al proyecto host. Necesitas al menos una persona con este rol por cada proyecto de servicio.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Sustituye
SERVICE_PROJECT_ID
por el ID de los proyectos de servicio.
Vincular los proyectos de servicio
Los proyectos de servicio son Google Cloud proyectos que contienen recursos de infraestructura que puedes registrar en una aplicación de App Hub. Para obtener más información, consulta Proyectos de servicio. Vincula los proyectos de servicio en los que has implementado los recursos al proyecto del host de App Hub.
Consola
En la Google Cloud consola, ve a la página Configuración de App Hub.
En la página Configuración, haz clic en Asociar proyectos.
En el panel que se abre, busca proyectos en la lista que se muestra y marca las casillas de los proyectos que quieras añadir como proyectos de servicio.
Haz clic en Seleccionar. En la tabla Attached Service Project(s) (Proyectos de servicio vinculados) se muestran los proyectos de servicio seleccionados.
Haz clic en Cerrar.
gcloud
Vincula los proyectos de servicio 1, 2 y 3 a tu proyecto del 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 has asociado los proyectos de servicio de App Hub al proyecto host de App Hub:
gcloud apphub service-projects list --project=HOST_PROJECT_ID
Una vez que hayas vinculado el proyecto de servicio al proyecto del host de App Hub, podrás ver todos los recursos de Google Cloud del proyecto de servicio vinculado como servicios y cargas de trabajo detectados de App Hub. Para obtener más información sobre cómo ver estos servicios y cargas de trabajo detectados, consulta Ver aplicaciones, servicios y cargas de trabajo actuales.
Crear una aplicación
Crea una aplicación que sea el contenedor de tus servicios y cargas de trabajo. Cuando creas una aplicación, puedes asignarle propiedades inmutables, como un tipo de ámbito o una ubicación desde la que quieras registrar recursos, y atributos variables, como la importancia y el entorno. Puede usar los atributos de variable para filtrar las aplicaciones. Para obtener más información, consulta Propiedades y atributos.
En este tutorial, crearás una aplicación Global para gestionar recursos globales y regionales en una sola aplicación. Si quieres agrupar los recursos de una región específica, puedes crear una aplicación Regional y registrar esos recursos. Para obtener más información sobre cómo crear una aplicación regional, consulta Configurar App Hub.
Consola
- Asegúrate de que estás en el proyecto host de App Hub.
En la Google Cloud consola, ve a la página Aplicaciones del centro de aplicaciones.
Haz clic en Crear aplicación.
En la página Crear aplicación, en el panel Elegir región y nombre de la aplicación, selecciona Global.
En el campo Nombre de la aplicación, introduce
tutorial-application
. Este nombre es un identificador único y no se puede cambiar después de crear la aplicación.Introduce un Nombre visible,
Tutorial
y haz clic en Continuar. Es un nombre fácil de usar que puedes actualizar. Para obtener más información, consulta Actualizar una aplicación.En el panel Añadir atributos, en la lista Criticidad, selecciona Alta. Criticidad: indica la importancia de una aplicación, un servicio o una carga de trabajo para las operaciones de su empresa.
En el campo Entorno, seleccione Producción para indicar la fase del ciclo de vida del software.
Haz clic en Continuar.
En el panel Añadir propietarios, añade los siguientes detalles de los propietarios desarrolladores, los propietarios operadores y los propietarios de empresa. Ten en cuenta que debes introducir la dirección de correo del propietario si añades un nombre visible.
- Introduce el nombre visible del propietario.
- Introduce la dirección de correo del propietario. Este valor debe tener el formato
username@yourdomain
; por ejemplo,222larabrown@gmail.com
.
Repite estos pasos con cada desarrollador, operador y propietario de la empresa.
Haz clic en Crear.
La nueva aplicación se crea y aparece en la página Aplicaciones. Ten en cuenta que solo la regla de reenvío, el mapa de URLs, el servicio de backend y el grupo de instancias gestionado (MIG) estarán disponibles como recursos detectados en la aplicación App Hub. Para obtener más información, consulta los conceptos y el modelo de datos.
gcloud
Selecciona el proyecto host de App Hub que has creado:
gcloud config set project HOST_PROJECT_ID
Crea una aplicación 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 no se puede cambiar una vez que hayas creado la aplicación. El nombre visibleTutorial
es un nombre fácil de usar que puedes actualizar. Para obtener más información, consulta Actualizar una aplicación.gcloud apphub applications create tutorial-application \ --display-name='Tutorial' \ --scope-type=GLOBAL \ --project=HOST_PROJECT_ID \ --location=global
Lista las aplicaciones de tu proyecto host de App Hub:
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=global
Verá 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 owner: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
Haz los cambios siguientes:
DISPLAY-NAME-DEVELOPER
,DISPLAY-NAME-OPERATOR
yDISPLAY-NAME-BUSINESS
: 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 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 la importancia de una aplicación, un servicio o una carga de trabajo para las operaciones de tu empresa.environment-type
: indica las fases del ciclo de vida del software.
Obtén los detalles de la aplicación que has creado:
gcloud apphub applications describe tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
El comando devuelve 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'
Registrar servicios y cargas de trabajo
Al registrar servicios y cargas de trabajo, se añaden a una aplicación que te permite monitorizar los recursos añadidos.
Consola
En la Google Cloud consola, ve a la página Aplicaciones del centro de aplicaciones.
Haz clic en el nombre de tu aplicación, Tutorial. En la pestaña Servicios y cargas de trabajo se muestra una lista de los servicios y las cargas de trabajo registrados que se encuentran en tus proyectos de servicio de App Hub.
Registrar un servicio:
- En la pestaña Servicios y cargas de trabajo, haga clic en Registrar servicio o carga de trabajo.
- En la página Registrar servicio o carga de trabajo, en el panel Seleccionar recurso, haga clic en Buscar 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, introduce el Nombre del recurso.
tutorial-service-backend-sp2
. - Introduce un Nombre visible,
Backend service (SP2)
y haz clic en Continuar. - En el panel Añadir atributos, en la lista Criticidad, seleccione Alta para indicar la importancia de la aplicación.
- En el campo Entorno, seleccione Producción para indicar la fase del ciclo de vida del software.
- Haz clic en Continuar.
- En el panel Añadir propietarios, añade los detalles necesarios para los propietarios desarrolladores, los propietarios operadores y los propietarios de la empresa.
Ten en cuenta que debes introducir la dirección de correo del propietario si añades un nombre visible.
- Introduce el nombre visible del propietario.
- Introduce la dirección de correo del propietario. Este valor debe tener el formato
username@yourdomain
; por ejemplo,222larabrown@gmail.com
.
- Repite estos pasos con cada desarrollador, operador y propietario de la empresa.
- Haz clic en Registrarse.
En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, puedes ver el nuevo servicio que has añadido.
- Repite los pasos anteriores para registrar los demás 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 Registrar servicio o carga de trabajo, en la sección Elegir servicio o carga de trabajo, selecciona el Nombre de la carga de trabajo, tutorial-sp2-mig-a, y haz clic en Continuar.
- En el panel Seleccionar recurso, introduce el Nombre del recurso.
tutorial-workload-sp2-mig-a
. - Introduce 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
Para añadir a una persona con permisos de editor del centro de aplicaciones:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
Sustituye
APP_HUB_EDITOR
por el usuario que tenga el rol Editor de App Hub en el proyecto host de App Hub. Este valor tiene el formatousername@yourdomain
. Por ejemplo:222larabrown@gmail.com
.Lista de todos los servicios detectados en el proyecto host de App Hub. Este comando devuelve los servicios que se pueden registrar en una aplicación.
gcloud apphub discovered-services list \ --project=HOST_PROJECT_ID \ --location=us-west1
Verá 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
s de 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
Haz los cambios siguientes:
BACKEND_SERVICE_SP2_ID
: el servicioID
del servicio backend del proyecto de servicio 2 que quieras registrar.BACKEND_SERVICE_SP3_ID
: el servicioID
del servicio backend del proyecto de servicio 3 que quieras registrar.FORWARDING_RULE_SERVICE_ID
: el servicioID
de la regla de reenvío del proyecto de servicio 1 que quieres registrar.URL_MAP_SERVICE_ID
: el servicioID
de la asignación de URLs del proyecto de servicio 1 que quieras registrar.
Lista todos los servicios registrados en la aplicación:
gcloud apphub applications services list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Verá un resultado similar al siguiente:
Se ha registrado, pero los servicios independientes 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.Muestra todas las cargas de trabajo detectadas en el proyecto host de App Hub. Este comando devuelve las cargas de trabajo que se pueden registrar en una aplicación.
gcloud apphub discovered-workloads list \ --project=HOST_PROJECT_ID \ --location=global
Verá un resultado similar al siguiente:
Copia el ID de carga de trabajo del resultado para usarlo en el siguiente 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 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
Haz los cambios siguientes:
INSTANCE_GROUP_SP3_A_ID
,INSTANCE_GROUP_SP3_B_ID
: las cargas de trabajoID
s de los grupos de instancias gestionadas del proyecto de servicio 3 que quieras registrar.INSTANCE_GROUP_SP2_A_ID
yINSTANCE_GROUP_SP2_B_ID
: las cargas de trabajoID
de los grupos de instancias gestionadas del proyecto de servicio 2 que quieras registrar.
Lista de 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á un resultado similar al siguiente:
Las cargas de trabajo registradas, pero independientes, 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.
Ver todos los servicios y cargas de trabajo
Puedes ver los detalles de los servicios y las cargas de trabajo de los proyectos de servicio que están vinculados al proyecto del host de App Hub.
En la Google Cloud consola, ve a la página App Hub Servicios y cargas de trabajo.
En la lista Región, selecciona global. La carga de trabajo Grupo de instancias de carga de trabajo se muestra con detalles como Tipo de App Hub, Criticidad y Registrado en.
Para filtrar los servicios o las cargas de trabajo en función de su estado, sigue estos pasos:
- En el campo Filtro, selecciona filtros como Estado del registro.
- Haz clic en Registrado. Aparecerá una lista de los servicios y las cargas de trabajo registrados en la aplicación.
Monitorizar aplicaciones
Application Monitoring proporciona paneles de control preconfigurados para monitorizar los registros, las métricas y los incidentes de las aplicaciones de App Hub, así como sus servicios y cargas de trabajo registrados. Para obtener más información, consulta Monitorización de aplicaciones. Para ver estos paneles de control, siga estos pasos:
En la consola, ve a la página Aplicaciones del centro de aplicaciones. Google Cloud
Elige una de estas opciones:
- Para ver el panel de control OOTB de nivel superior que muestra información de resumen de una lista de aplicaciones registradas en tu proyecto host o en una carpeta habilitada para aplicaciones, haz clic en Ver en Observabilidad.
- Para ver el panel de control preconfigurado de una aplicación, sigue estos pasos:
- Haz clic en el nombre de la aplicación.
- Haz clic en Ver panel de Observabilidad.
- Para ver el panel de control preconfigurado de un servicio o una carga de trabajo específicos, sigue estos pasos:
- Haz clic en el nombre de la aplicación.
- En la fila que muestra el nombre del servicio o de la carga de trabajo, haga clic en
Ver panel de observabilidad.
Para obtener más información sobre cómo ver los paneles de control, consulta Ver telemetría de aplicaciones.
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.
Eliminar los recursos de App Hub
Consola
En la Google Cloud consola, ve a la página Centro de aplicaciones Aplicaciones.
Haz clic en el nombre de una aplicación, Tutorial.
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, haga clic en Anular 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 Anular registro.
Se muestra una alerta que indica que la carga de trabajo no está registrada.
Ve a la página Aplicaciones del centro de aplicaciones.
Haz clic en el nombre de una aplicación.
En la página tutorial-application, haz clic en Eliminar.
En la Google Cloud consola, ve a la página Configuración de App Hub.
En la página Configuración, marque la casilla del proyecto de servicio que quiera quitar del proyecto host de App Hub.
Haz clic en Desasociar proyectos.
gcloud
Muestra los servicios registrados en la aplicación:
gcloud apphub applications services list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Da de baja los servicios de la aplicación:
gcloud apphub applications services delete SERVICE_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Sustituye
SERVICE_NAME
por el nombre de tu servicio. Los servicios ahora son servicios detectados que se pueden registrar en la aplicación.Lista las cargas de trabajo registradas en la aplicación:
gcloud apphub applications workloads list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Da de baja la carga de trabajo de la aplicación:
gcloud apphub applications workloads delete WORKLOAD_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Sustituye
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.Elimina la aplicación:
gcloud apphub applications delete tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Elimina los proyectos de servicio del proyecto del host de App Hub:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
Sustituye
SERVICE_PROJECT_ID
por los IDs de los proyectos de servicio 1, 2 y 3.
Eliminar el despliegue
Cuando ya no necesites la solución, elimina todos los recursos para evitar que se te siga facturando por los recursos que hayas creado en ella.
Para obtener más información, consulta cómo limpiar la configuración del balanceador de carga.Eliminar el proyecto
Consola
- En la Google Cloud consola, ve a la página Gestionar recursos.
- En la lista de proyectos, selecciona el proyecto que quieras eliminar y haz clic en Eliminar.
- En el cuadro de diálogo, escribe el ID del proyecto y, a continuación, haz clic en Cerrar para eliminar el proyecto.
gcloud
Eliminar un Google Cloud proyecto:
gcloud projects delete PROJECT_ID
Sustituye PROJECT_ID
por los IDs de los proyectos del host o del servicio.