Questo tutorial mostra come configurare un'applicazione App Hub globale per più progetti e poi visualizzare le risorse dell'applicazione. Utilizzando più progetti di servizio, configuri un bilanciatore del carico delle applicazioni interno in un ambiente VPC condiviso. Poi, in un'applicazione globale nel progetto host App Hub, registri e monitori tutte le risorse dell'infrastruttura dei progetti di servizio come servizi e workload App Hub.
Questo tutorial è rivolto alle persone che configurano e amministrano App Hub. Devi avere una certa esperienza con Cloud Load Balancing.
Obiettivi
- Configura un'applicazione App Hub globale che contenga risorse che si estendono su più progetti.
- Monitora le risorse tramite le metriche di sistema per l'applicazione.
Costi
Per una stima del costo delle risorse Google Cloud utilizzate dalla soluzione di VM gestite con bilanciamento del carico, consulta la stima precalcolata nel Google Cloud Calcolatore prezzi.
Utilizza la stima come punto di partenza per calcolare il costo del deployment. Puoi modificare la stima per riflettere eventuali modifiche alla configurazione che prevedi di apportare alle risorse utilizzate nella soluzione.
La stima precalcolata si basa su ipotesi per determinati fattori, tra cui:
- Le Google Cloud posizioni in cui vengono eseguito il deployment delle risorse.
- Il periodo di tempo in cui vengono utilizzate le risorse.
Per ulteriori informazioni sui costi di App Hub, consulta la pagina Prezzi.
Prima di iniziare
Prima di configurare questo tutorial, decidi i ruoli e le autorizzazioni per i tuoi progetti e poi crea quattro Google Cloud progetti. Uno di questi progetti è il progetto host App Hub e gli altri tre sono progetti di servizio App Hub.Ruoli e autorizzazioni richiesti
Se hai creato il progetto, ti viene concesso il ruolo di base Proprietario (roles/owner
). Per impostazione predefinita, questo ruolo Identity and Access Management (IAM) include le autorizzazioni necessarie per l'accesso completo alla maggior parte delle risorse Google Cloud.
Se non sei l'autore del progetto, le autorizzazioni richieste devono essere concesse al principal appropriato. Ad esempio, un'entità può essere un Account Google (per gli utenti finali) o un account di servizio (per applicazioni e carichi di lavoro).
Per ottenere le autorizzazioni necessarie per gestire l'accesso a un progetto, una cartella o un'organizzazione, chiedi all'amministratore di concederti i seguenti ruoli IAM per la risorsa per cui vuoi gestire l'accesso (progetto, cartella o organizzazione):
-
Per gestire l'accesso a un progetto:
-
Amministratore di App Hub (
roles/apphub.admin
) -
Cloud Infrastructure Manager (
roles/config.admin
) -
Ruolo Amministratore VPC condiviso Compute (
roles/compute.xpnAdmin
) -
Amministratore IAM progetto (
roles/resourcemanager.projectIamAdmin
) -
Amministratore utilizzo servizi (
roles/serviceusage.services.enable
) -
Amministratore account di servizio (
roles/iam.serviceAccounts.create
)
-
Amministratore di App Hub (
-
Per gestire l'accesso a una cartella:
Ruolo Amministratore VPC condiviso Compute (
roles/compute.xpnAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea progetti host e di servizio App Hub
Console
Nella console Google Cloud , vai alla pagina di selezione del progetto.
Seleziona o crea un Google Cloud progetto che diventerà il progetto host di App Hub.
-
Enable the App Hub, Compute Engine, Service Management, and Service Usage APIs.
Nella stessa cartella del progetto host di App Hub, crea tre nuovi progetti Google Cloud . Questi sono i progetti di servizio App Hub per il progetto host App Hub.
Assicurati che la fatturazione sia attivata per tutti i tuoi progetti 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.
Assicurati che sia installata la versione più recente di Google Cloud CLI. Esegui questo comando da Cloud Shell:
gcloud components update
Crea o seleziona un nuovo progetto,
HOST_PROJECT_ID
, che fungerà da progetto host per App Hub.Creare un progetto Google Cloud :
gcloud projects create HOST_PROJECT_ID
Seleziona il Google Cloud progetto che hai creato:
gcloud config set project HOST_PROJECT_ID
Assicurati che la fatturazione sia attivata per tutti i tuoi progetti Google Cloud .
Abilita le API App Hub, Compute Engine, Service Management e Service Usage:
gcloud services enable apphub.googleapis.com \ compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Crea tre nuovi Google Cloud progetti che saranno i progetti di servizio App Hub per il progetto host App Hub.
Crea un progetto di servizio:
gcloud projects create SERVICE_PROJECT_1_ID
Sostituisci
SERVICE_PROJECT_1_ID
con l'ID del progetto di servizio 1.Seleziona il progetto di servizio che hai creato:
gcloud config set project SERVICE_PROJECT_1_ID
Abilita le API Compute Engine, Service Management e Service Usage:
gcloud services enable compute.googleapis.com \ servicemanagement.googleapis.com \ serviceusage.googleapis.com
Imposta la variabile di configurazione utilizzata in questo tutorial:
export SERVICE_PROJECT_1_NUMBER= $(gcloud projects describe $(gcloud config get-value project) --format='value(projectNumber)')
Ripeti il passaggio precedente per creare SERVICE_PROJECT_2_ID e SERVICE_PROJECT_3_ID, abilitare le API e impostare la variabile di configurazione.
Prepara l'ambiente
Se hai già configurato un bilanciatore del carico delle applicazioni interno in un ambiente VPC condiviso in più progetti, vai alla sezione Concedere le autorizzazioni IAM di questo documento.
In caso contrario, per configurare un bilanciatore del carico delle applicazioni interno in un ambiente VPC condiviso, segui questi passaggi:
- Nel progetto di servizio 1, configura una rete VPC condiviso e due subnet.
- Nel progetto di servizio 2, crea il servizio di backend del bilanciatore del carico con due gruppi di istanze gestite come backend.
- Nel progetto di servizio 3, crea un altro servizio di backend del bilanciatore del carico con due gruppi di istanze gestite come backend.
- Nel progetto di servizio 1, crea i componenti frontend e la mappa URL del bilanciatore del carico.
Di seguito è riportato il flusso di elaborazione delle richieste della topologia di cui viene eseguito il deployment dalla soluzione di VM gestite con bilanciamento del carico.
Dalla rete VPC condiviso, la VM client effettua una richiesta HTTP al bilanciatore del carico delle applicazioni interno nel progetto di servizio 1.
Il bilanciatore del carico utilizza le informazioni nella mappa URL e nei servizi di backend per instradare la richiesta ai backend del gruppo di istanze gestite.
Configura la rete e le subnet nel progetto host VPC condiviso
Hai bisogno di una rete VPC condiviso con due subnet: una per il frontend e i backend del bilanciatore del carico e una per i proxy del bilanciatore del carico.
Questo esempio utilizza la seguente rete, regione e subnet:
Rete. La rete si chiama
lb-network
.Subnet per il frontend e i backend del bilanciatore del carico. Una subnet denominata
lb-frontend-and-backend-subnet
nella regioneus-west1
utilizza10.1.2.0/24
per il suo intervallo IP primario.Subnet per i proxy. Una subnet denominata
proxy-only-subnet
nella regioneus-west1
utilizza10.129.0.0/23
per il suo intervallo IP principale.
In questo tutorial, designa il progetto di servizio 1 come progetto host del VPC condiviso. Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio 1.
Configura la subnet per il frontend e i backend del bilanciatore del carico
Questo passaggio non deve essere eseguito ogni volta che vuoi creare un nuovo bilanciatore del carico. Devi solo assicurarti che i progetti di servizio abbiano accesso a una subnet nella rete VPC condiviso (oltre alla subnet solo proxy).
Console
- Nella console Google Cloud , vai alla pagina Reti VPC.
- Fai clic su Crea rete VPC.
- Nel campo Nome, inserisci
lb-network
. - Imposta Modalità di creazione subnet su Personalizzata.
Nella sezione Nuova subnet, inserisci le seguenti informazioni:
Nome:
lb-frontend-and-backend-subnet
Regione:
us-west1
Intervallo di indirizzi IP:
10.1.2.0/24
Fai clic su Fine.
Fai clic su Crea.
gcloud
Imposta il progetto come Service Project 1:
gcloud config set project SERVICE_PROJECT_1_ID
Crea una rete VPC con il comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crea una subnet nella rete
lb-network
nella regioneus-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 subnet solo proxy
La subnet solo proxy viene utilizzata da tutti i bilanciatori del carico basati su Envoy a livello di regione nella regione us-west1
, nella rete VPC lb-network
. Può esserci una sola subnet solo proxy attiva per regione e per rete.
Non eseguire questo passaggio se in questa rete è già riservata una subnet solo proxy nella regione us-west1
.
Console
- Nella console Google Cloud , vai alla pagina Reti VPC.
- Fai clic sul nome della rete VPC condiviso:
lb-network
. - Fai clic sulla scheda Subnet e poi su Aggiungi subnet.
- Nel riquadro Aggiungi una subnet, nel campo Nome, inserisci
proxy-only-subnet
. - Nell'elenco Regione, seleziona
us-west1
. - Imposta Scopo su Proxy gestito a livello di regione.
- Nel campo Intervallo di indirizzi IP, inserisci
10.129.0.0/23
. - Fai clic su Aggiungi.
gcloud
Crea la subnet solo proxy con il 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
Concedere agli amministratori del progetto di servizio l'accesso alla subnet di backend
Gli amministratori del progetto di servizio richiedono l'accesso alla subnet lb-frontend-and-backend-subnet
per poter eseguire il provisioning dei backend del bilanciatore del carico.
Un amministratore del VPC condiviso deve concedere l'accesso alla subnet di backend agli amministratori del progetto di servizio (o agli sviluppatori che eseguono il deployment di risorse e backend che utilizzano la subnet). Per le istruzioni, vedi Amministratori del progetto di servizio per alcune subnet.
Configura le regole firewall nel progetto di servizio 1
Questo esempio utilizza le seguenti regole firewall:
fw-allow-health-check
. Una regola in entrata, applicabile alle istanze con bilanciamento del carico, che consente tutto il traffico TCP proveniente dai sistemi di controllo di integrità in Google Cloud,130.211.0.0/22
e35.191.0.0/16
. Questo esempio utilizza il tag di destinazioneload-balanced-backend
per identificare le istanze a cui deve essere applicato.fw-allow-proxies
. Una regola in entrata, applicabile alle istanze sottoposte a bilanciamento del carico, che consente il traffico TCP sulle porte80
,443
e8080
dai proxy gestiti del bilanciatore del carico. Questo esempio utilizza il tag di destinazioneload-balanced-backend
per identificare le istanze a cui deve essere applicato.fw-allow-ssh
. Una regola in entrata, applicabile alle istanze di cui viene eseguito il bilanciamento del carico, che consente la connettività SSH in entrata sulla porta TCP22
da qualsiasi indirizzo. Puoi scegliere un intervallo IP di origine più restrittivo per questa regola. Ad esempio, puoi specificare solo gli intervalli IP del sistema da cui avvii le sessioni SSH. Questo esempio utilizza il tag di destinazioneallow-ssh
per identificare le macchine virtuali (VM) a cui si applica la regola firewall.
Senza queste regole firewall, la regola default-deny per il traffico in entrata blocca il traffico in ingresso verso le istanze di backend.
Console
Nella console Google Cloud , vai alla pagina Policy firewall.
- Fai clic su Crea regola firewall per creare la regola che consente i controlli di integrità Google Cloud :
- Nome:
fw-allow-health-check
- Rete:
lb-network
- Direzione del traffico: In entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
load-balanced-backend
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
130.211.0.0/22
e35.191.0.0/16
- Protocolli e porte:
- Scegli Protocolli e porte specificati.
- Seleziona la casella di controllo TCP e inserisci
80
per il numero di porta.
Come best practice, limita questa regola solo ai protocolli e alle porte che corrispondono a quelli utilizzati dal controllo di integrità. Se utilizzi
tcp:80
per il protocollo e la porta, Google Cloud può utilizzare HTTP sulla porta80
per contattare le tue VM, ma non può utilizzare HTTPS sulla porta443
per contattarle. - Fai clic su Crea.
- Fai clic su Crea regola firewall per creare la regola che consente i controlli di integrità Google Cloud :
- Nome:
fw-allow-proxies
- Rete:
lb-network
- Direzione del traffico: In entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
load-balanced-backend
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
10.129.0.0/23
- Protocolli e porte:
- Scegli Protocolli e porte specificati.
- Seleziona la casella di controllo TCP e inserisci
80, 443, 8080
per i numeri di porta.
- Fai clic su Crea.
- Fai clic su Crea regola firewall per creare la regola che consente i controlli di integrità Google Cloud :
- Nome:
fw-allow-ssh
- Rete:
lb-network
- Direzione del traffico: In entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-ssh
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
0.0.0.0/0
- Protocolli e porte:
- Scegli Protocolli e porte specificati.
- Seleziona la casella di controllo TCP e inserisci
22
per il numero di porta.
- Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-health-check
per consentire i controlli di integritàGoogle Cloud . Questo esempio consente tutto il traffico TCP dai prober di controllo di integrità. Tuttavia, puoi configurare un insieme più ristretto di porte per soddisfare le tue esigenze.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 regola firewall
fw-allow-proxies
per consentire al traffico dalla subnet solo proxy di Envoy di raggiungere i backend: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 regola firewall
fw-allow-ssh
per consentire la connettività SSH alle VM con il tag di reteallow-ssh
:gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Prenota un indirizzo IPv4 interno statico
Gli amministratori dei progetti di servizio possono prenotare un indirizzo IPv4 o IPv6 interno in una subnet di una rete VPC condiviso. L'oggetto di configurazione dell'indirizzo IP viene creato nel progetto di servizio, mentre il suo valore proviene dall'intervallo di indirizzi IPv4 disponibili nella subnet condivisa scelta.
Per prenotare un indirizzo IP interno autonomo nel progetto di servizio, completa i seguenti passaggi.
Console
- Configura VPC condiviso.
Nella console Google Cloud , vai alla pagina VPC condiviso.
Accedi come amministratore del VPC condiviso.
Seleziona il progetto di servizio dal selettore di progetti.
Vai a Rete VPC >Indirizzi IP.
Nella pagina Indirizzi IP, fai clic su Prenota indirizzo IP statico interno.
Nel campo Nome, inserisci
l7-ilb-ip-address
come nome dell'indirizzo IP.Nell'elenco Versione IP, seleziona IPv4.
In Rete, seleziona
lb-network
.Negli elenchi Subnet, seleziona
lb-frontend-and-backend-subnet
.Fai clic su Prenota.
gcloud
Se non l'hai ancora fatto, esegui l'autenticazione in Google Cloud CLI come amministratore del progetto di servizio VPC condiviso.
gcloud auth login SERVICE_PROJECT_ADMIN
Sostituisci
SERVICE_PROJECT_ADMIN
con il nome dell'amministratore del progetto di servizio VPC condiviso. Questi valori devono avere il formato nomeutente@tuodominio, ad esempio 222larabrown@gmail.com.Utilizza il comando
compute addresses create
per prenotare un indirizzo 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
Ulteriori dettagli sulla creazione di indirizzi IP sono pubblicati nella documentazione dell'SDK.
Configura VPC condiviso nel progetto di servizio 1
Per configurare il VPC condiviso nel progetto di servizio 1, designa il progetto di servizio 1 come progetto host VPC condiviso e i progetti di servizio 2 e 3 come progetti di servizio VPC condiviso. Più avanti in questo tutorial, quando crei i backend MIG nei progetti di servizio 2 e 3, potrai utilizzare la stessa rete VPC e le stesse subnet create in precedenza nel progetto di servizio 1.
- Abilitare un progetto host.
- Allega un progetto di servizio.
Concedi il ruolo Utente di rete Compute (
roles/compute.networkUser
) ai progetti di servizio 2 e 3:Console
Nella console Google Cloud vai alla pagina IAM.
Fai clic su
Concedi l'accesso. Si apre il riquadro Concedi l'accesso.Nel campo Nuove entità, inserisci
SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com
.Tieni presente che puoi ottenere i numeri dei progetti di servizio dalla dashboard del progetto:
Fai clic su Seleziona un ruolo e nel campo Filtro inserisci
Compute Network User
.Seleziona il ruolo Utente rete Compute e fai clic su Salva.
Ripeti i passaggi precedenti per concedere il ruolo
Compute Network User
a Service Project 3 (SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com
).
gcloud
Nel progetto di servizio 1, concedi il ruolo Utente di rete Compute al progetto di servizio 2.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \ --member='serviceAccount:SERVICE_PROJECT_2_NUMBER@cloudservices.gserviceaccount.com' \ --role='roles/compute.networkUser'
Sostituisci
SERVICE_PROJECT_2_NUMBER
con il numero di progetto del progetto di servizio 2.Nel progetto di servizio 1, concedi il ruolo Utente di rete Compute al progetto di servizio 3.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_1_ID \ --member='serviceAccount::SERVICE_PROJECT_3_NUMBER@cloudservices.gserviceaccount.com' \ --role='roles/compute.networkUser'
Sostituisci
SERVICE_PROJECT_3_NUMBER
con il numero di progetto di Service Project 3.
Crea un servizio di backend e i gruppi di istanze gestite nel progetto di servizio 2
Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio 2.
Console
Creare un modello di istanza. Nella console Google Cloud , vai alla pagina Modelli di istanza.
- Fai clic su Crea modello istanza.
- Inserisci un nome per il modello di istanza:
tutorial-ig-template-sp2
. - Nella sezione Località, seleziona Regionale (consigliato) e us-west1(Oregon) come Regione.
- Nella sezione Configurazione macchina, seleziona N2 come serie.
- Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio
Debian GNU/Linux 12 (bookworm). Queste istruzioni utilizzano comandi
disponibili solo su Debian, come
apt-get
. Se devi modificare il disco di avvio, fai clic su Cambia.- In Sistema operativo, seleziona Debian.
- Per Versione, seleziona una delle immagini Debian disponibili, ad esempio Debian GNU/Linux 12 (bookworm).
- Fai clic su Seleziona.
- Fai clic su Opzioni avanzate e poi su Networking.
- Inserisci i seguenti Tag di
rete:
allow-ssh
,load-balanced-backend
. - Nella sezione Interfacce di rete, seleziona Reti condivise con me (dal progetto host: SERVICE_PROJECT_1_ID).
- Seleziona la subnet
lb-frontend-and-backend-subnet
dalla retelb-network
. - Fai clic su Gestione. Per Gestione, inserisci il seguente
script nel campo Script di avvio.
#! /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
- Fai clic su Crea.
Creare un gruppo di istanze gestite. Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Fai clic su Crea gruppo di istanze.
- Scegli Nuovo gruppo di istanze gestite (stateless). Per saperne di più, consulta MIG stateless o stateful.
- Inserisci un nome per il gruppo di istanze:
tutorial-sp2-mig-a
. - In Modello di istanza, seleziona tutorial-ig-template-sp2.
- Per Località, seleziona Zona singola.
- In Regione, seleziona
us-west1
. Specifica il numero di istanze che vuoi creare nel gruppo.
Per questo esempio, specifica le seguenti opzioni per la scalabilità automatica:
- Per la Modalità di scalabilità automatica, seleziona
Off:do not autoscale
. - In Numero massimo di istanze, inserisci
2
.
- Per la Modalità di scalabilità automatica, seleziona
Fai clic su Crea.
Crea un servizio di backend regionale. Nell'ambito di questo passaggio, creeremo anche il controllo di integrità e aggiungeremo i backend al servizio di backend. Nella console Google Cloud , vai alla pagina Backend.
- Fai clic su Crea servizio di backend.
- Nella finestra di dialogo Crea servizio di backend, fai clic su Crea accanto a Servizio di backend regionale.
- Inserisci un Nome per il servizio di backend:
tutorial-backend-service-sp2
. - In Regione, seleziona us-west1.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni interno regionale (INTERNAL_MANAGED).
- Imposta Tipo di backend su Gruppo di istanze.
- Nella sezione Backend, imposta i seguenti campi:
- Imposta Gruppo di istanze su tutorial-sp2-mig-a.
- Inserisci i Numeri di porta:
80
. - Imposta Modalità di bilanciamento su Utilizzo.
- Fai clic su Fine.
- Nella sezione Controllo di integrità, fai clic su Crea un controllo di integrità
e imposta i seguenti campi:
- Nome:
tutorial-regional-health-check
- Protocollo:
HTTP
- Porta:
80
- Fai clic su Salva.
- Nome:
- Fai clic su Continua.
- Fai clic su Crea.
Ripeti i passaggi precedenti e crea un gruppo di istanze gestite,
tutorial-sp2-mig-b
e aggiungilo al servizio di backend,tutorial-backend-service-sp2
.
gcloud
- Seleziona il progetto di servizio che hai creato:
gcloud config set project SERVICE_PROJECT_2_ID
Crea un modello di istanza VM,
tutorial-ig-template-sp2
con un server 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
Sostituisci quanto segue:
SERVICE_PROJECT_1_ID
: l'ID progetto del progetto host VPC condiviso.SERVICE_PROJECT_2_ID
: l'ID progetto del progetto di servizio in cui vengono creati i backend e il servizio di backend del bilanciatore del carico.
Crea un gruppo di istanze gestite,
tutorial-sp2-mig-a
nella regione: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
Definisci il controllo di integrità 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
Definisci il servizio di 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
Aggiungi backend al servizio di backend con il 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 un altro gruppo di istanze gestite,
tutorial-sp2-mig-b
nella regione: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
Aggiungi backend al servizio di 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 servizio di backend e MIG nel progetto di servizio 3
Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio 3.
Console
Creare un modello di istanza. Nella console Google Cloud , vai alla pagina Modelli di istanza.
- Fai clic su Crea modello istanza.
- Inserisci un nome per il modello di istanza:
tutorial-ig-template-sp3
. - Nella sezione Località, seleziona Regionale (consigliato) e us-west1(Oregon) come Regione.
- Nella sezione Configurazione macchina, seleziona N2 come serie.
- Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio
Debian GNU/Linux 12 (bookworm). Queste istruzioni utilizzano comandi
disponibili solo su Debian, come
apt-get
. Se devi modificare il disco di avvio, fai clic su Cambia.- In Sistema operativo, seleziona Debian.
- Per Versione, seleziona una delle immagini Debian disponibili, ad esempio Debian GNU/Linux 12 (bookworm).
- Fai clic su Seleziona.
- Fai clic su Opzioni avanzate e poi su Networking.
- Inserisci i seguenti Tag di
rete:
allow-ssh
,load-balanced-backend
. - Nella sezione Interfacce di rete, seleziona Reti condivise con me (dal progetto host: SERVICE_PROJECT_1_ID).
- Seleziona la subnet
lb-frontend-and-backend-subnet
dalla retelb-network
. - Fai clic su Gestione. Per Gestione, inserisci il seguente
script nel campo Script di avvio.
#! /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
- Fai clic su Crea.
Creare un gruppo di istanze gestite. Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Fai clic su Crea gruppo di istanze.
- Scegli Nuovo gruppo di istanze gestite (stateless). Per saperne di più, consulta MIG stateless o stateful.
- Inserisci un nome per il gruppo di istanze:
tutorial-sp3-mig-a
. - In Modello di istanza, seleziona tutorial-ig-template-sp3.
- Per Località, seleziona Zona singola.
- In Regione, seleziona
us-west1
. Specifica il numero di istanze che vuoi creare nel gruppo.
Per questo esempio, specifica le seguenti opzioni per la scalabilità automatica:
- Per la Modalità di scalabilità automatica, seleziona
Off:do not autoscale
. - In Numero massimo di istanze, inserisci
2
.
- Per la Modalità di scalabilità automatica, seleziona
Fai clic su Crea.
Crea un servizio di backend regionale. Nell'ambito di questo passaggio, creeremo anche il controllo di integrità e aggiungeremo i backend al servizio di backend. Nella console Google Cloud , vai alla pagina Backend.
- Fai clic su Crea servizio di backend.
- Nella finestra di dialogo Crea servizio di backend, fai clic su Crea accanto a Servizio di backend regionale.
- Inserisci un Nome per il servizio di backend:
tutorial-backend-service-sp3
. - In Regione, seleziona us-west1.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni interno regionale (INTERNAL_MANAGED).
- Imposta Tipo di backend su Gruppo di istanze.
- Nella sezione Backend, imposta i seguenti campi:
- Imposta Gruppo di istanze su tutorial-sp3-mig-a.
- Inserisci i Numeri di porta:
80
. - Imposta Modalità di bilanciamento su Utilizzo.
- Fai clic su Fine.
- Nella sezione Controllo di integrità, fai clic su Crea un controllo di integrità
e imposta i seguenti campi:
- Nome:
tutorial-regional-health-check
- Protocollo:
HTTP
- Porta:
80
- Fai clic su Salva.
- Nome:
- Fai clic su Continua.
- Fai clic su Crea.
Ripeti i passaggi precedenti e crea un gruppo di istanze gestite,
tutorial-sp3-mig-b
e aggiungilo al servizio di backend,tutorial-backend-service-sp3
.
gcloud
- Seleziona il progetto di servizio che hai creato:
gcloud config set project SERVICE_PROJECT_3_ID
Crea un modello di istanza VM,
tutorial-ig-template-sp3
con un server 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
Sostituisci quanto segue:
SERVICE_PROJECT_1_ID
: l'ID progetto del progetto host VPC condiviso.SERVICE_PROJECT_3_ID
: l'ID progetto per il progetto di servizio, in cui vengono creati i backend e il servizio di backend del bilanciatore del carico.
Crea un gruppo di istanze gestite,
tutorial-sp3-mig-a
nella regione: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
Definisci il controllo di integrità 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
Definisci il servizio di 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
Aggiungi backend al servizio di backend con il 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 un altro gruppo di istanze gestite,
tutorial-sp3-mig-b
nella regione: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
Aggiungi backend al servizio di 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 la mappa URL e la regola di forwarding nel progetto di servizio 1
Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio 1.
Console
Avvia la configurazione
Nella console Google Cloud , vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico delle applicazioni (HTTP/HTTPS) e fai clic su Avanti.
- In Pubblico o interno, seleziona Interno e fai clic su Avanti.
- In Deployment multiregionale o in una singola regione, seleziona Ideale per workload regionali e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
- Inserisci un Nome per il bilanciatore del carico,
tutorial-url-maps
. - Nell'elenco Regione, seleziona
us-west1
. Nell'elenco Rete, seleziona lb-network (da Progetto: SERVICE_PROJECT_1_ID).
Se visualizzi l'avviso La subnet solo proxy è obbligatoria nella rete VPC condiviso, conferma che l'amministratore del progetto host abbia creato
proxy-only-subnet
nella regioneus-west1
nella rete VPC condivisolb-network
. La creazione del bilanciatore del carico va a buon fine anche se non hai l'autorizzazione per visualizzare la subnet solo proxy in questa pagina.Tieni aperta la finestra per continuare.
Configura il backend
- Fai clic su Configurazione backend.
- Fai clic su Servizi di backend tra progetti.
- Nel campo ID progetto, inserisci l'ID progetto per il progetto di servizio 2.
- Nel campo Nome servizio di backend, inserisci il nome del servizio di backend
del progetto di servizio 2 che vuoi utilizzare. Per questo esempio,
è
tutorial-backend-service-sp2
. - Fai clic su Aggiungi servizio di backend.
- Nel campo ID progetto, inserisci l'ID progetto per il progetto di servizio 3.
- Nel campo Nome servizio di backend, inserisci il nome del servizio di backend
del progetto di servizio 3 che vuoi utilizzare. Per questo esempio,
è
tutorial-backend-service-sp3
. - Fai clic su Aggiungi servizio di backend.
Configura le regole di routing
- Fai clic su Regole di routing.
- Nella sezione Regole host e percorso, nel campo Host 2,
inserisci
*
. - Nel campo Paths 2 (Percorsi 2), inserisci
/*
. - Nell'elenco a discesa Backend 2, seleziona
tutorial-backend-service-sp2
. - Fai clic su Aggiungi regola host e percorso.
- Nel campo Host 3, inserisci
tutorial-host
. - Nel campo Paths 3 (Percorsi 3), inserisci
/*
. Nell'elenco a discesa Backend 3, seleziona
tutorial-backend-service-sp3
.Cerca il segno di spunta blu a sinistra di Regole host e percorso e fai clic sul pulsante Aggiorna.
Per informazioni sulla gestione del traffico, vedi Configurare la gestione del traffico.
Configura il frontend
Affinché il riferimento ai servizi tra progetti funzioni, il frontend deve utilizzare la stessa rete (lb-network
) del progetto host VPC condiviso utilizzata per creare il servizio di backend.
- Fai clic su Configurazione frontend.
- Inserisci un nome per la regola di forwarding:
l7-ilb-forwarding-rule
. - Imposta Protocollo su
HTTP
. - Imposta Subnet su
lb-frontend-and-backend-subnet
. Non selezionare la subnet solo proxy per il frontend anche se è un'opzione nell'elenco. - Imposta Porta su
80
. - Nel campo Indirizzo IP, mantieni l'opzione predefinita Temporaneo (automatico).
- Fai clic su Fine.
Rivedi e finalizza la configurazione
- Fai clic su Crea.
gcloud
Seleziona il progetto di servizio che hai creato:
gcloud config set project SERVICE_PROJECT_1_ID
Crea la mappa URL,
tutorial-url-maps
e imposta il servizio predefinito sul servizio di backend creato nel progetto di servizio 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
Sostituisci quanto segue:
SERVICE_PROJECT_2_ID
: l'ID progetto per Service Project 2, in cui vengono creati i backend del bilanciatore del carico e il servizio di backend.SERVICE_PROJECT_1_ID
: l'ID progetto per Service Project 1, in cui viene creato il frontend del bilanciatore del carico.
Crea il proxy di destinazione
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 regola di forwarding
l7-ilb-forwarding-rule
per gestire il traffico HTTP. Affinché il riferimento ai servizi tra progetti funzioni, la regola di forwarding deve utilizzare la stessa rete (lb-network
) del progetto host VPC condiviso utilizzata per creare il servizio di 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
Per inviare traffico al servizio di backend, collega la mappa URL al servizio di backend. Per ulteriori informazioni, vedi Utilizzare le mappe degli URL.
Collega il servizio di backend
tutorial-backend-service-sp2
nel progetto di servizio 2 alla mappa URLtutorial-url-maps
e al nome del matcher di percorsotutorial-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
Collega il servizio di backend,
tutorial-backend-service-sp3
nel progetto di servizio 3, alla mappa URL,tutorial-url-maps
, e al nome del matcher di percorso,tutorial-path-matcher-sp3
. Aggiungi una nuova regola host,tutorial-host
con gli host specificati in modo che il matcher di percorso sia associato alla nuova regola hostgcloud 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
Testa il bilanciatore del carico
Per testare il bilanciatore del carico, crea prima una VM client di esempio. Quindi stabilisci una sessione SSH con la VM e invia il traffico da questa VM al bilanciatore del carico.
Crea un'istanza VM di test
I client possono trovarsi nel progetto host VPC condiviso o in qualsiasi progetto di servizio connesso. In questo esempio, verifichi che il bilanciatore del carico funzioni deployando una VM client nel progetto di servizio 1, designato come progetto host VPC condiviso. Il client deve utilizzare la stessa rete VPC condiviso e trovarsi nella stessa regione del bilanciatore del carico.
Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio 2.
Console
Nella console Google Cloud , vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Nel campo Nome, inserisci
client-vm
.Imposta Zona su us-west1-b.
Fai clic su Opzioni avanzate e poi su Networking.
Inserisci i seguenti Tag di rete:
allow-ssh
,load-balanced-backend
.Nella sezione Interfacce di rete, seleziona Reti condivise con me (dal progetto host: SERVICE_PROJECT_1_ID).
Seleziona la subnet
lb-frontend-and-backend-subnet
dalla retelb-network
.Fai clic su Crea.
gcloud
Crea un'istanza VM di test.
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
Invia traffico al bilanciatore del carico
Utilizza SSH per connetterti all'istanza che hai appena creato e verifica che i servizi HTTP(S) sui backend siano raggiungibili tramite l'indirizzo IP della regola di forwarding del bilanciatore del carico delle applicazioni interno e che il traffico venga bilanciato tra le istanze di backend.
Recupera il valore dell'indirizzo IP del bilanciatore del carico:
gcloud compute addresses list --filter="name=( 'l7-ilb-ip-address')"
Vedi un output simile al seguente:
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 il servizio
ADDRESS/RANGE
, ad esempio10.1.2.2
dall'output da utilizzare nei passaggi successivi.Connettiti all'istanza client con SSH:
gcloud compute ssh client-vm \ --zone=us-west1-b \ --project=SERVICE_PROJECT_2_ID
Verifica che l'indirizzo IP del bilanciatore del carico gestisca il nome host:
Verifica che l'indirizzo IP gestisca il proprio nome host nel progetto di servizio 2:
curl 10.1.2.2
Vedi un output simile al seguente:
Page served from: tutorial-sp2-mig-a-10xk
Verifica che l'indirizzo IP stia gestendo il proprio nome host nel progetto di servizio 3:
curl -H "Host: tutorial-host" 10.1.2.2
Vedi un output simile al seguente:
Page served from: tutorial-sp3-mig-a-3d5h
Concedi autorizzazioni IAM
Fornisci i ruoli e le autorizzazioni IAM appropriati ai progetti host e di servizio App Hub.
Console
Nella console Google Cloud , vai alla pagina di selezione del progetto.
Nella console Google Cloud vai alla pagina IAM.
Fai clic su
Concedi l'accesso. Si apre il riquadro Concedi l'accesso.Nel campo Nuove entità, inserisci l'indirizzo email della persona che amministrerà App Hub, ovvero il ruolo Amministratore App Hub nel progetto host di App Hub.
Fai clic su Seleziona un ruolo e nel campo Filtro inserisci
App Hub
.Seleziona il ruolo Amministratore App Hub e fai clic su Salva.
In ciascuno dei progetti di servizio App Hub, concedi lo stesso utente il ruolo Amministratore App Hub.
gcloud
Per concedere i ruoli alle persone che utilizzeranno App Hub, ripeti il seguente comando sostituendo i ruoli IAM, se necessario. Per ulteriori informazioni, consulta Ruoli e autorizzazioni di App Hub.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Sostituisci
HOST_PROJECT_ADMIN
con l'utente che ha il ruolo di amministratore App Hub nel progetto host App Hub. Questo valore ha il formatousername@yourdomain
, ad esempio222larabrown@gmail.com
.Concedi il ruolo Amministratore App Hub nel progetto di servizio alle persone che amministrano App Hub. Per aggiungere progetti di servizio al progetto host, devono disporre del ruolo di amministratore di App Hub. Per ogni progetto di servizio è necessaria almeno una persona con questo ruolo.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:HOST_PROJECT_ADMIN' \ --role='roles/apphub.admin'
Sostituisci
SERVICE_PROJECT_ID
con l'ID dei progetti di servizio.
Associa i progetti di servizio
I progetti di servizio sono progetti che contengono risorse dell'infrastruttura che puoi registrare in un'applicazione App Hub. Google Cloud Per maggiori informazioni, consulta Progetti di servizio. Collega i progetti di servizio su cui hai eseguito il deployment delle risorse al progetto host App Hub.
Console
Nella Google Cloud console, vai alla pagina Impostazioni di App Hub.
Nella pagina Impostazioni, fai clic su Allega progetti.
Nel riquadro che si apre, cerca i progetti nell'elenco visualizzato e seleziona le caselle di controllo per i progetti che vuoi aggiungere come progetti di servizio.
Fai clic su Seleziona. La tabella Progetti di servizio collegati mostra i progetti di servizio selezionati.
Fai clic su Chiudi.
gcloud
Collega i progetti di servizio 1, 2 e 3 al progetto host 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
Conferma di aver collegato i progetti di servizio App Hub al progetto host App Hub:
gcloud apphub service-projects list --project=HOST_PROJECT_ID
Dopo aver collegato il progetto di servizio al progetto host App Hub, puoi visualizzare tutte le risorse Google Cloud del progetto di servizio collegato come servizi e workload App Hub rilevati. Per ulteriori informazioni su come visualizzare questi servizi e workload rilevati, consulta Visualizzare applicazioni, servizi e workload esistenti.
Crea un'applicazione
Crea un'applicazione che funga da contenitore per i tuoi servizi e workload. Quando crei un'applicazione, puoi assegnare proprietà immutabili come un tipo di ambito o una posizione da cui vuoi registrare risorse e attributi variabili come criticità e ambiente. Puoi utilizzare gli attributi delle variabili per filtrare le applicazioni. Per saperne di più, consulta Proprietà e attributi.
In questo tutorial creerai un'applicazione globale per gestire le risorse globali e regionali in un'unica applicazione. Se vuoi raggruppare le tue risorse di una regione specifica, puoi creare un'applicazione regionale e registrare queste risorse. Per saperne di più su come creare un'applicazione regionale, consulta Configurare App Hub.
Console
- Assicurati di trovarti nel progetto host di App Hub.
Nella console Google Cloud , vai alla pagina Applicazioni di App Hub.
Fai clic su Crea applicazione.
Nella pagina Crea applicazione, seleziona Globale nel riquadro Scegli la regione e il nome dell'applicazione.
Nel campo Nome applicazione, inserisci
tutorial-application
. Questo nome è un identificatore univoco ed è immutabile dopo la creazione dell'applicazione.Inserisci un Nome visualizzato,
Tutorial
e fai clic su Continua. Si tratta di un nome intuitivo che puoi aggiornare. Per ulteriori informazioni, vedi Aggiornare un'applicazione esistente.Nel riquadro Aggiungi attributi, seleziona Alta dall'elenco Criticità. La criticità indica quanto un'applicazione, un servizio o un workload è fondamentale per le tue operazioni aziendali.
Nel campo Ambiente, per indicare la fase del ciclo di vita del software, seleziona Produzione.
Fai clic su Continua.
Nel riquadro Aggiungi proprietari, aggiungi i seguenti dettagli per Proprietari sviluppatori, Proprietari operatori e Proprietari dell'attività. Tieni presente che devi inserire l'indirizzo email del proprietario se aggiungi un nome visualizzato.
- Inserisci un nome visualizzato del proprietario.
- Inserisci l'indirizzo email del proprietario. Questo valore deve avere
il formato
username@yourdomain
, ad esempio222larabrown@gmail.com
.
Ripeti questi passaggi per ogni sviluppatore, operatore e proprietario dell'attività.
Fai clic su Crea.
La nuova applicazione viene creata ed è elencata nella pagina Applicazioni. Tieni presente che solo la regola di forwarding, la mappa URL, il servizio di backend e il gruppo di istanze gestite (MIG) diventano disponibili come risorse individuate nell'applicazione App Hub. Per maggiori informazioni, consulta la sezione Concetti e modello di dati.
gcloud
Seleziona il progetto host di App Hub che hai creato:
gcloud config set project HOST_PROJECT_ID
Crea una nuova applicazione denominata
tutorial-application
nella regioneglobal
e assegnale un nome visualizzato,Tutorial
. Il nome dell'applicazione,tutorial-application
è un identificatore univoco e non può essere modificato dopo la creazione dell'applicazione. Il nome visualizzato,Tutorial
è un nome facile da usare che puoi aggiornare. Per ulteriori informazioni, vedi Aggiornare un'applicazione esistente.gcloud apphub applications create tutorial-application \ --display-name='Tutorial' \ --scope-type=GLOBAL \ --project=HOST_PROJECT_ID \ --location=global
Elenca le applicazioni nel progetto host App Hub:
gcloud apphub applications list \ --project=HOST_PROJECT_ID \ --location=global
Vedi un output simile al seguente:
ID DISPLAY_NAME CREATE_TIME tutorial-application Tutorial 2023-10-31T18:33:48
Aggiorna la tua applicazione con gli attributi
criticality-type
,environment-type
e proprietario: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
Sostituisci quanto segue:
DISPLAY-NAME-DEVELOPER
,DISPLAY-NAME-OPERATOR
eDISPLAY-NAME-BUSINESS
: nomi visualizzati dello sviluppatore, dell'operatore e dei proprietari dell'attività, rispettivamente.EMAIL-NAME-DEVELOPER
,EMAIL-NAME-OPERATOR
eEMAIL-NAME-BUSINESS
: indirizzi email rispettivamente dello sviluppatore, dell'operatore e dei proprietari dell'attività. Questi valori devono avere il formatousername@yourdomain
, ad esempio,222larabrown@gmail.com
.
Note:
criticality-type
: indica la criticità di un'applicazione, di un servizio o di un workload per le operazioni aziendali.environment-type
: indica le fasi del ciclo di vita del software.
Recupera i dettagli dell'applicazione che hai creato:
gcloud apphub applications describe tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Il comando restituisce informazioni in formato YAML, simili alle seguenti:
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 servizi e workload
La registrazione di servizi e workload li aggiunge a un'applicazione che ti consente di monitorare le risorse aggiunte.
Console
Nella console Google Cloud , vai alla pagina Applicazioni di App Hub.
Fai clic sul nome dell'applicazione, Tutorial. Viene visualizzata la scheda Servizi e workload con un elenco di servizi e workload registrati che si trovano nei progetti di servizio App Hub.
Registra un servizio:
- Nella scheda Servizi e workload, fai clic su Registra servizio/workload.
- Nella pagina Registra servizio o carico di lavoro, nel riquadro Seleziona risorsa, fai clic su Sfoglia per selezionare il servizio o il carico di lavoro come Risorsa.
- Nel riquadro Seleziona risorsa, scegli il Nome del servizio, tutorial-backend-service-sp2, e fai clic su Seleziona.
- Nel riquadro Seleziona risorsa, inserisci il Nome della risorsa,
tutorial-service-backend-sp2
. - Inserisci un Nome visualizzato,
Backend service (SP2)
e fai clic su Continua. - Nel riquadro Aggiungi attributi, nell'elenco Criticità, per indicare l'importanza dell'applicazione, seleziona Alta.
- Nel campo Ambiente, per indicare la fase del ciclo di vita del software, seleziona Produzione.
- Fai clic su Continua.
- Nel riquadro Aggiungi proprietari, aggiungi i seguenti dettagli in base alle esigenze per
Proprietari sviluppatori, Proprietari operatori e Proprietari dell'attività.
Tieni presente che devi inserire l'indirizzo email del proprietario se aggiungi un
nome visualizzato.
- Inserisci un nome visualizzato del proprietario.
- Inserisci l'indirizzo email del proprietario. Questo valore deve avere
il formato
username@yourdomain
, ad esempio222larabrown@gmail.com
.
- Ripeti questi passaggi per ogni sviluppatore, operatore e proprietario dell'attività.
- Fai clic su Register (Registrati).
Nella scheda Servizi e carichi di lavoro, nella sezione Servizi e carichi di lavoro registrati, puoi visualizzare il nuovo servizio aggiunto.
- Ripeti i passaggi precedenti per registrare gli altri servizi come tutorial-service-backend-sp3, tutorial-service-forwarding-rule e tutorial-service-url-map, rispettivamente.
- Registra un workload ripetendo i passaggi precedenti per registrare un servizio
con le seguenti eccezioni:
- Nel riquadro Registra servizio o workload, nella sezione Scegli servizio o workload, seleziona il Nome del workload, tutorial-sp2-mig-a, e fai clic su Continua.
- Nel riquadro Seleziona risorsa, inserisci il Nome della risorsa,
tutorial-workload-sp2-mig-a
. - Inserisci un Nome visualizzato,
Instance group - A (SP2)
e fai clic su Continua.
- Ripeti i passaggi precedenti per registrare gli altri workload come tutorial-workload-sp2-mig-a, tutorial-workload-sp2-mig-b, tutorial-workload-sp3-mig-a e tutorial-workload-sp3-mig-b, rispettivamente.
gcloud
Aggiungi una persona con autorizzazioni Editor di App Hub:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:APP_HUB_EDITOR' \ --role='roles/apphub.editor'
Sostituisci
APP_HUB_EDITOR
con l'utente che ha il ruolo Editor App Hub nel progetto host App Hub. Questo valore ha il formatousername@yourdomain
, ad esempio,222larabrown@gmail.com
.Elenca tutti i servizi rilevati nel progetto host App Hub. Questo comando restituisce i servizi che possono essere registrati in un'applicazione.
gcloud apphub discovered-services list \ --project=HOST_PROJECT_ID \ --location=us-west1
Vedi un output simile al seguente:
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 i servizi
ID
, ad esempioBACKEND_SERVICE_SP2_ID
dall'output da utilizzare nel passaggio successivo.Registra i servizi del passaggio precedente nella tua applicazione. Copia gli ID servizio dal campo di output del passaggio precedente.
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
Sostituisci quanto segue:
BACKEND_SERVICE_SP2_ID
: il servizioID
del servizio di backend del progetto di servizio 2 che vuoi registrare.BACKEND_SERVICE_SP3_ID
: il servizioID
del servizio di backend del progetto di servizio 3 che vuoi registrare.FORWARDING_RULE_SERVICE_ID
: il servizioID
della regola di forwarding del progetto di servizio 1 che vuoi registrare.URL_MAP_SERVICE_ID
: il servizioID
della mappa URL del progetto di servizio 1 che vuoi registrare.
Elenca tutti i servizi registrati nell'applicazione:
gcloud apphub applications services list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Vedi un output simile al seguente:
I servizi registrati, ma separati, sono indicati da un valore vuoto nel 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
. Per ulteriori informazioni sugli stati di registrazione, consulta le proprietà e gli attributi di App Hub.Elenca tutti i workload rilevati nel progetto host di App Hub. Questo comando restituisce i workload disponibili per la registrazione a un'applicazione.
gcloud apphub discovered-workloads list \ --project=HOST_PROJECT_ID \ --location=global
Vedi un output simile al seguente:
Copia l'ID workload dall'output da utilizzare nel passaggio successivo.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 i workload del passaggio precedente nella tua applicazione. Copia l'ID carico di lavoro dal campo di output del passaggio precedente.
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
Sostituisci quanto segue:
INSTANCE_GROUP_SP3_A_ID
,INSTANCE_GROUP_SP3_B_ID
: i workloadID
dei gruppi di istanze gestite del progetto di servizio 3 che vuoi registrare.INSTANCE_GROUP_SP2_A_ID
,INSTANCE_GROUP_SP2_B_ID
: iID
dei gruppi di istanze gestite del progetto di servizio 2 che vuoi registrare.
Elenca tutti i carichi di lavoro registrati nell'applicazione:
gcloud apphub applications workloads list \ --application=tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Vedi un output simile al seguente:
I workload registrati, ma separati, sono indicati da un valore vuoto nel 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
. Per ulteriori informazioni sugli stati di registrazione, consulta le proprietà e gli attributi di App Hub.
Visualizza tutti i servizi e i workload
Puoi visualizzare i dettagli dei servizi e dei workload dei progetti di servizio collegati al progetto host App Hub.
Nella Google Cloud console, vai alla pagina Servizi e workload di App Hub.
Nell'elenco Regione, seleziona globale. Il workload Gruppo di istanze di workload viene visualizzato con dettagli quali Tipo di App Hub, Criticità e Registrato in.
Per filtrare i servizi o i workload in base al loro stato:
- Nel campo Filtro, seleziona filtri come Stato registrazione.
- Fai clic su Registrato. Viene visualizzato un elenco di servizi e workload registrati all'applicazione.
Monitorare le applicazioni
Application Monitoring fornisce dashboard pronte all'uso per monitorare log, metriche e incidenti per le applicazioni App Hub e i relativi servizi e carichi di lavoro registrati. Per ulteriori informazioni, vedi Monitoraggio delle applicazioni. Per visualizzare queste dashboard:
Nella console Google Cloud , vai alla pagina Applicazioni di App Hub.
Esegui una di queste operazioni:
- Per visualizzare la dashboard OOTB di primo livello che elenca le informazioni di riepilogo per un elenco di applicazioni registrate nel tuo progetto host o nella cartella abilitata per le app, fai clic su Visualizza in Observability.
- Per visualizzare la dashboard OOTB per un'applicazione:
- Fai clic sul nome dell'applicazione.
- Fai clic su Visualizza dashboard di osservabilità.
- Per visualizzare la dashboard OOTB per un servizio o un carico di lavoro specifico, segui
questi passaggi:
- Fai clic sul nome dell'applicazione.
- Nella riga che mostra il nome del servizio o del carico di lavoro, fai clic su
Visualizza dashboard di osservabilità.
Per saperne di più su come visualizzare le dashboard, vedi Visualizzare la telemetria delle applicazioni.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina le risorse App Hub
Console
Nella console Google Cloud , vai alla pagina Applicazioni di App Hub.
Fai clic sul nome di un'applicazione, ad esempio Tutorial.
Nella scheda Servizi e carichi di lavoro, nella sezione Servizi e carichi di lavoro registrati, fai clic sul nome di un servizio.
Nella pagina Servizi e carichi di lavoro, fai clic su Annulla registrazione.
Un avviso indica che il servizio non è registrato.
Nella scheda Servizi e workload, nella sezione Servizi e workload registrati, fai clic sul nome di un workload.
Nella scheda Dettagli, fai clic su Annulla registrazione.
Un avviso ti informa che il carico di lavoro è stato annullato.
Vai alla pagina Applicazioni di App Hub.
Fai clic sul nome di un'applicazione.
Nella pagina tutorial-application, fai clic su Elimina.
Nella Google Cloud console, vai alla pagina Impostazioni di App Hub.
Nella pagina Impostazioni, seleziona la casella di controllo per il progetto di servizio da rimuovere dal progetto host di App Hub.
Fai clic su Scollega progetti.
gcloud
Elenca i servizi registrati nell'applicazione:
gcloud apphub applications services list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Annulla la registrazione dei servizi dall'applicazione:
gcloud apphub applications services delete SERVICE_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Sostituisci
SERVICE_NAME
con il nome del tuo servizio. I servizi sono ora servizi rilevati che possono essere registrati nell'applicazione.Elenca i workload registrati nell'applicazione:
gcloud apphub applications workloads list \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Annulla la registrazione del workload dall'applicazione:
gcloud apphub applications workloads delete WORKLOAD_NAME \ --application=tutorial-application --project=HOST_PROJECT_ID \ --location=global
Sostituisci
WORKLOAD_NAME
con il nome del tuo carico di lavoro. Il workload è ora un workload rilevato che può essere registrato nell'applicazione.Elimina l'applicazione:
gcloud apphub applications delete tutorial-application \ --project=HOST_PROJECT_ID \ --location=global
Rimuovi i progetti di servizio dal progetto host App Hub:
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID
Sostituisci
SERVICE_PROJECT_ID
con gli ID progetto dei progetti di servizio 1, 2 e 3.
Elimina il deployment
Quando la soluzione non ti serve più, per evitare l'addebito di ulteriori costi per le risorse che hai creato in questa soluzione, elimina tutte le risorse.
Per ulteriori informazioni, vedi Pulire la configurazione del bilanciatore del carico.Elimina il progetto
Console
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
gcloud
Elimina un progetto Google Cloud :
gcloud projects delete PROJECT_ID
Sostituisci PROJECT_ID
con gli ID progetto host o di servizio.