Questo documento mostra due configurazioni di esempio per la configurazione di un bilanciatore del carico delle applicazioni interno multiregionale in un ambiente VPC condiviso con bucket Cloud Storage:
- Il primo esempio crea tutti i componenti del bilanciatore del carico e i backend in un unico progetto di servizio.
- Il secondo esempio crea i componenti frontend e la mappa URL del bilanciatore del carico in un progetto di servizio, mentre il bucket di backend e i bucket Cloud Storage del bilanciatore del carico vengono creati in un progetto di servizio diverso.
Entrambi gli esempi richiedono la stessa configurazione iniziale per concedere i ruoli richiesti e configurare un VPC condiviso prima di poter iniziare a creare bilanciatori del carico.
Oltre alle configurazioni di esempio menzionate in questo documento, puoi anche configurare un deployment VPC condiviso in cui il frontend e la mappa URL del bilanciatore del carico vengono creati nel progetto host e i bucket di backend, insieme ai bucket Cloud Storage, vengono creati in un progetto di servizio. Per ulteriori informazioni su altre architetture VPC condiviso valide, consulta Architetture VPC condiviso.
Se non vuoi utilizzare una rete VPC condiviso, consulta Configura un bilanciatore del carico delle applicazioni interno multiregionale con bucket Cloud Storage.
Prima di iniziare
Assicurati che la tua configurazione soddisfi i seguenti prerequisiti.
Crea Google Cloud progetti
Crea Google Cloud progetti per un host e due progetti di servizio.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare un bilanciatore del carico delle applicazioni esterno regionale in un ambiente VPC condiviso con bucket Cloud Storage, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per configurare la VPC condiviso:
Compute Shared VPC Admin (
roles/compute.xpnAdmin) sul progetto host -
Per fornire l'accesso a un amministratore del progetto di servizio per utilizzare la rete VPC condiviso:
Utente di rete Compute (
roles/compute.networkUser) nel progetto host -
Per creare bucket Cloud Storage:
Amministratore oggetti Storage (
roles/storage.objectAdmin) sul progetto di servizio -
Per creare le risorse di bilanciamento del carico:
Compute Network Admin (
roles/compute.networkAdmin) sul progetto di servizio -
Per creare istanze Compute Engine:
Compute Instance Admin (
roles/compute.instanceAdmin.v1) sul progetto di servizio -
Per creare e modificare i certificati SSL di Certificate Manager:
Proprietario di Certificate Manager (
roles/certificatemanager.owner) nel progetto di servizio -
Per fare riferimento ai bucket di backend in altri progetti di servizio:
Utente dei servizi bilanciatore del carico Compute (
roles/compute.loadBalancerServiceUser) sul progetto di servizio
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.
Configura un ambiente VPC condiviso
Completa i seguenti passaggi nel progetto host per configurare un ambiente VPC condiviso:
- Configura le subnet per le regole di forwarding del bilanciatore del carico.
- Configura le subnet solo proxy.
- Configura una regola firewall.
- Configura un VPC condiviso nel progetto host.
I passaggi descritti in questa sezione non devono essere eseguiti ogni volta che vuoi creare un nuovo bilanciatore del carico. Tuttavia, prima di procedere con la creazione del bilanciatore del carico, devi assicurarti di avere accesso alle risorse descritte qui.
Il progetto host utilizza la seguente rete VPC, regione e subnet:
Rete. La rete è una rete VPC in modalità personalizzata denominata
lb-network.Subnet per il bilanciatore del carico. Una subnet denominata
subnet-usnella regioneus-east1utilizza10.1.2.0/24per il suo intervallo IP principale. Una subnet denominatasubnet-asianella regioneasia-east1utilizza10.1.3.0/24per il suo intervallo IP primario.Subnet per i proxy Envoy. Una subnet denominata
proxy-only-subnet-us-east1nella regioneus-east1utilizza10.129.0.0/23per il suo intervallo IP primario. Una subnet denominataproxy-only-subnet-asia-east1nella regioneasia-east1utilizza10.130.0.0/23per il suo intervallo IP primario.
Configura le subnet per le regole di forwarding del bilanciatore del carico
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
lb-network.Nella sezione Subnet, seleziona Personalizzata per Modalità di creazione subnet.
Nella sezione Nuova subnet, inserisci le seguenti informazioni:
- Nome:
subnet-us - Seleziona una regione:
us-east1 - Intervallo di indirizzi IP:
10.1.2.0/24
- Nome:
Fai clic su Fine.
Fai clic su Aggiungi subnet.
Crea un'altra subnet per la regola di forwarding del bilanciatore del carico in un'altra regione. Nella sezione Nuova subnet, inserisci le seguenti informazioni:
- Nome:
subnet-asia - Regione:
asia-east1 - Intervallo di indirizzi IP:
10.1.3.0/24
- Nome:
Fai clic su Fine.
Fai clic su Crea.
gcloud
Crea una rete VPC personalizzata, denominata
lb-network, con il comandogcloud compute networks create.gcloud compute networks create lb-network \ --subnet-mode=custom \ --project=HOST_PROJECT_IDCrea una subnet denominata
subnet-usnella rete VPClb-networknella regioneus-east1con il comandogcloud compute networks subnets create.gcloud compute networks subnets create subnet-us \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-east1 \ --project=HOST_PROJECT_IDCrea una subnet denominata
subnet-asianella rete VPClb-networknella regioneasia-east1con il comandogcloud compute networks subnets create.gcloud compute networks subnets create subnet-asia \ --network=lb-network \ --range=10.1.3.0/24 \ --region=asia-east1 \ --project=HOST_PROJECT_IDSostituisci
HOST_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto abilitato come progetto host in un ambiente VPC condiviso.
Configura le subnet solo proxy
Una subnet solo proxy fornisce un insieme di indirizzi IP che Google Cloud utilizza per eseguire proxy Envoy per tuo conto. I proxy terminano le connessioni dal client e creano nuove connessioni ai backend.
Questa subnet solo proxy viene utilizzata da tutti i bilanciatori del carico regionali basati su Envoy nella stessa regione della rete VPC. Può essere presente una sola subnet solo proxy attiva per uno scopo specifico, per regione e per rete. In questo esempio,
creiamo due subnet solo proxy: una nella regione us-east1
e l'altra nella regione asia-east1.
Console
Nella console Google Cloud , vai alla pagina Reti VPC.
Fai clic sul nome della rete VPC che hai creato.
Nella scheda Subnet, fai clic su Aggiungi subnet.
Inserisci le seguenti informazioni:
- In Nome, inserisci
proxy-only-subnet-us. - In Regione, inserisci
us-east1. - Per Scopo, seleziona Proxy gestito tra regioni.
- In Intervallo di indirizzi IP, inserisci
10.129.0.0/23.
- In Nome, inserisci
Fai clic su Aggiungi.
Crea un'altra subnet solo proxy nella regione
asia-east1. Nella scheda Subnet, fai clic su Aggiungi subnet.Inserisci le seguenti informazioni:
- In Nome, inserisci
proxy-only-subnet-asia. - In Regione, inserisci
asia-east1. - Per Scopo, seleziona Proxy gestito tra regioni.
- In Intervallo di indirizzi IP, inserisci
10.130.0.0/23.
- In Nome, inserisci
Fai clic su Aggiungi.
gcloud
Crea una subnet solo proxy nella regione
us-east1con il comandogcloud compute networks subnets create.In questo esempio, la subnet solo proxy è denominata
proxy-only-subnet-us.gcloud compute networks subnets create proxy-only-subnet-us \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-east1 \ --network=lb-network \ --range=10.129.0.0/23 \ --project=HOST_PROJECT_IDCrea una subnet solo proxy nella regione
asia-east1con il comandogcloud compute networks subnets create.In questo esempio, la subnet solo proxy è denominata
proxy-only-subnet-asia.gcloud compute networks subnets create proxy-only-subnet-asia \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=asia-east1 \ --network=lb-network \ --range=10.130.0.0/23 \ --project=HOST_PROJECT_IDSostituisci
HOST_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto host.
Configura una regola firewall
Questo esempio utilizza una regola firewall in entrata che consente l'accesso SSH sulla porta 22
alla VM client. In questo esempio, questa regola firewall è denominata fw-allow-ssh.
Console
Nella console Google Cloud , vai alla pagina Policy del firewall.
Fai clic su Crea regola firewall per creare la regola che consente le connessioni SSH in entrata sulla VM client:
- 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, quindi inserisci
22per il numero di porta.
- Nome:
Fai clic su Crea.
gcloud
Crea una regola firewall per consentire la connettività SSH alle VM con il tag di rete
allow-ssh. Se ometti--source-ranges, Google Cloud interpreta la regola in modo che si riferisca a qualsiasi origine.In questo esempio, la regola firewall è denominata
fw-allow-ssh.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22 \ --project=HOST_PROJECT_IDSostituisci
HOST_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto host.
Configura una rete VPC condiviso nel progetto host
Puoi abilitare un progetto host VPC condiviso, condividere le subnet del progetto host e collegare i progetti di servizio al progetto host in modo che i progetti di servizio possano utilizzare la rete VPC condivisa. Per configurare il VPC condiviso nel progetto host, consulta le seguenti pagine:
Dopo aver completato i passaggi precedenti, puoi procedere con una delle seguenti configurazioni:
- Configura un bilanciatore del carico nel progetto di servizio
- Configura un bilanciatore del carico con una configurazione tra progetti
Configura un bilanciatore del carico nel service project
Questo esempio crea un bilanciatore del carico delle applicazioni interno multiregionale in cui tutti i componenti di bilanciamento del carico (regola di forwarding, proxy di destinazione, mappa URL e bucket di backend) e i bucket Cloud Storage vengono creati nel progetto di servizio.
Le risorse di networking del bilanciatore del carico, come la subnet VPC, la subnet solo proxy e la regola firewall, vengono create nel progetto host.
Questa sezione mostra come configurare il bilanciatore del carico e i backend.
Gli esempi di configurazione in questa pagina configurano in modo esplicito un indirizzo IP riservato per la regola di forwarding del bilanciatore del carico, anziché consentire l'allocazione di un indirizzo IP temporaneo. Come best practice, ti consigliamo di riservare gli indirizzi IP per le regole di inoltro.
Configura i bucket Cloud Storage
La procedura per configurare i bucket Cloud Storage è la seguente:
- Crea i bucket Cloud Storage.
- Copia i contenuti nei bucket Cloud Storage.
- Rendi accessibili pubblicamente i bucket Cloud Storage.
Crea i bucket Cloud Storage
In questo esempio, crei due bucket Cloud Storage, uno nella regione
us-east1 e l'altro nella regione asia-east1. Per i deployment di produzione, ti consigliamo di scegliere un bucket multiregionale, che replica automaticamente gli oggetti in più regioni Google Cloud . Questo può migliorare la disponibilità dei tuoi contenuti e la tolleranza agli errori della tua applicazione.
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Fai clic su Crea.
Nella sezione Inizia, inserisci un nome univoco globale che rispetti le linee guida per l'assegnazione dei nomi.
Fai clic su Scegli dove archiviare i tuoi dati.
Imposta Tipo di località su Area geografica.
Dall'elenco delle regioni, seleziona us-east1.
Fai clic su Crea.
Fai clic su Bucket per tornare alla pagina Bucket Cloud Storage. Segui queste istruzioni per creare un secondo bucket, ma imposta la località su asia-east1.
gcloud
Crea il primo bucket nella regione
us-east1con il comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET1_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_IDCrea il secondo bucket nella regione
asia-east1con il comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=asia-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_IDSostituisci quanto segue:
BUCKET1_NAMEeBUCKET2_NAME: Nomi dei bucket Cloud StorageSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Copia i contenuti nei bucket Cloud Storage
Per popolare i bucket Cloud Storage, copia un file grafico da un bucket Cloud Storage pubblico ai tuoi bucket Cloud Storage.
Esegui i comandi seguenti in Cloud Shell, sostituendo le variabili dei nomi dei bucket con i nomi univoci dei bucket Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
Sostituisci BUCKET1_NAME e BUCKET2_NAME con i nomi dei bucket Cloud Storage.
Rendi pubblicamente accessibili i bucket Cloud Storage
Per rendere leggibili tutti gli oggetti in un bucket da parte di chiunque su internet, concedi all'entità allUsers il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer).
Console
Per concedere a tutti gli utenti l'accesso in visualizzazione agli oggetti nei bucket, ripeti la seguente procedura per ogni bucket:
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che vuoi rendere pubblico.
Seleziona la scheda Autorizzazioni.
Nella sezione Autorizzazioni, fai clic sul pulsante Concedi l'accesso. Viene visualizzata la finestra di dialogo Concedi l'accesso.
Nel campo Nuove entità, inserisci
allUsers.Nel campo Seleziona un ruolo, inserisci
Storage Object Viewernella casella del filtro e seleziona Visualizzatore oggetti Storage dai risultati filtrati.Fai clic su Salva.
Fai clic su Consenti accesso pubblico.
gcloud
Per concedere a tutti gli utenti l'accesso per visualizzare gli oggetti nei bucket, esegui il comando gcloud storage buckets add-iam-policy-binding.
gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer
Sostituisci BUCKET1_NAME e BUCKET2_NAME
con i nomi dei bucket Cloud Storage.
Prenota l'indirizzo IP del bilanciatore del carico
Prenota un indirizzo IP interno statico per:
- Regola di forwarding nella regione
us-east1 Regola di forwarding nella regione
asia-east1
Console
Nella console Google Cloud , vai alla pagina Indirizzi IP.
Fai clic su Prenota interno.
In Nome, inserisci un nome per il nuovo indirizzo.
In Versione IP, seleziona IPv4.
Fai clic su Prenota per prenotare l'indirizzo IP.
Segui di nuovo questi passaggi per prenotare un indirizzo IP nella regione
asia-east1.
gcloud
Per prenotare un indirizzo IP interno statico nella regione
us-east1, utilizza il comandogcloud compute addresses create.gcloud compute addresses create ADDRESS1_NAME \ --region=us-east1 \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --project=SERVICE_PROJECT_ID
Sostituisci quanto segue:
ADDRESS1_NAME: il nome che vuoi assegnare a questo indirizzo IPHOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Per prenotare un indirizzo IP interno statico nella regione
asia-east1, utilizza il comandogcloud compute addresses create.gcloud compute addresses create ADDRESS2_NAME \ --region=asia-east1 \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --project=SERVICE_PROJECT_ID
Sostituisci quanto segue:
ADDRESS2_NAME: il nome che vuoi assegnare a questo indirizzo IPHOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Utilizza il comando
gcloud compute addresses describeper visualizzare il risultato:gcloud compute addresses describe ADDRESS1_NAME \ --project=SERVICE_PROJECT_ID
gcloud compute addresses describe ADDRESS2_NAME \ --project=SERVICE_PROJECT_ID
Sostituisci quanto segue:
ADDRESS1_NAMEeADDRESS2_NAME: il nome che hai assegnato agli indirizzi IPSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
L'indirizzo IP restituito viene chiamato
RESERVED_IP_ADDRESSnelle sezioni seguenti.
Configura una risorsa del certificato SSL
Per un bilanciatore del carico delle applicazioni interno multiregionale che utilizza HTTPS come protocollo di richiesta e risposta, crea una risorsa certificato SSL utilizzando Certificate Manager come descritto in uno dei seguenti documenti:
- Esegui il deployment di un certificato gestito da Google multiregionale emesso dalla tua istanza di CA Service
- Deployment di un certificato gestito da Google multiregionale con autorizzazione DNS
- Esegui il deployment di un certificato autogestito multiregionale
Dopo aver creato il certificato, puoi collegarlo al proxy di destinazione HTTPS.
Ti consigliamo di utilizzare un certificato gestito da Google.
Configura il bilanciatore del carico con i bucket di backend
Questa sezione mostra come creare le seguenti risorse per un bilanciatore del carico delle applicazioni interno tra regioni:
- Due bucket di backend. I bucket di backend fungono da wrapper per i bucket Cloud Storage che hai creato in precedenza.
- Mappa URL
- Proxy di destinazione
- Due regole di forwarding globale con indirizzi IP regionali. Alle regole di forwarding vengono assegnati indirizzi IP dalle subnet create per le regole di forwarding del bilanciatore del carico. Se tenti di assegnare un indirizzo IP alla regola di forwarding dalla subnet solo proxy, la creazione della regola di forwarding non va a buon fine.
In questo esempio, puoi utilizzare HTTP o HTTPS come protocollo di richiesta-risposta tra il client e il bilanciatore del carico. Per creare un bilanciatore del carico HTTPS, devi aggiungere una risorsa del certificato SSL al frontend del bilanciatore del carico.
Per creare i componenti di bilanciamento del carico menzionati in precedenza utilizzando gcloud CLI, segui questi passaggi:
Crea due bucket di backend, uno per ogni bucket Cloud Storage, con il comando
gcloud compute backend-buckets create. I bucket di backend hanno uno schema di bilanciamento del carico diINTERNAL_MANAGED.In questo esempio, i bucket di backend sono denominati
backend-bucket-catsebackend-bucket-dogs, a indicare i contenuti nei bucket Cloud Storage.gcloud compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_IDgcloud compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_IDSostituisci quanto segue:
BUCKET1_NAMEeBUCKET2_NAME: Nomi dei bucket Cloud StorageSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Crea una mappa URL per instradare le richieste in entrata al bucket di backend con il comando
gcloud compute url-maps create.In questo esempio, la mappa URL è denominata
lb-map.gcloud compute url-maps create lb-map \ --default-backend-bucket=backend-bucket-cats \ --global \ --project=SERVICE_PROJECT_IDSostituisci
SERVICE_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio.Configura le regole host e percorso della mappa URL con il comando
gcloud compute url-maps add-path-matcher.In questo esempio, il bucket di backend predefinito è
backend-bucket-cats, che gestisce tutti i percorsi al suo interno. Tuttavia, qualsiasi richiesta di targetinghttp://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpgutilizza il backendbackend-bucket-dogs. Ad esempio, se la cartella/love-to-fetch/esiste anche nel backend predefinito (backend-bucket-cats), il bilanciatore del carico assegna la priorità al backendbackend-bucket-dogsperché esiste una regola di percorso specifica per/love-to-fetch/*.gcloud compute url-maps add-path-matcher lb-map \ --path-matcher-name=path-matcher-pets \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=backend-bucket-dogs" \ --default-backend-bucket=backend-bucket-cats --project=SERVICE_PROJECT_IDSostituisci
SERVICE_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio.Crea un proxy di destinazione con il comando
gcloud compute target-http-proxies create.Per il traffico HTTP, crea un proxy HTTP di destinazione denominato
http-proxyper instradare le richieste alla mappa URL:gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_IDSostituisci
SERVICE_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio.Per il traffico HTTPS, crea un proxy HTTPS di destinazione denominato
https-proxyper instradare le richieste alla mappa URL. Il proxy è la parte del bilanciatore del carico che contiene il certificato SSL per un bilanciatore del carico HTTPS. Dopo aver creato il certificato, puoi collegarlo al proxy di destinazione HTTPS.gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --certificate-manager-certificates=CERTIFICATE_NAME \ --global \ --project=SERVICE_PROJECT_IDSostituisci quanto segue:
CERTIFICATE_NAME: il nome del certificato SSL che hai creato utilizzando Certificate ManagerSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Crea due regole di forwarding globale, una con un indirizzo IP nella regione
us-east1e l'altra con un indirizzo IP nella regioneasia-east1con il comandogcloud compute forwarding-rules create.Per il traffico HTTP, crea le regole di forwarding globali (
http-fw-rule-1ehttp-fw-rule-2) per instradare le richieste in entrata al proxy HTTP di destinazione:gcloud compute forwarding-rules create http-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_IDgcloud compute forwarding-rules create http-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_IDSostituisci quanto segue:
HOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostRESERVED_IP_ADDRESS: l'indirizzo IP che hai prenotatoSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Per il traffico HTTPS, crea le regole di forwarding globali (
https-fw-rule-1ehttps-fw-rule-2) per instradare le richieste in entrata al proxy HTTPS di destinazione:gcloud compute forwarding-rules create https-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_IDgcloud compute forwarding-rules create https-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_IDSostituisci quanto segue:
HOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostRESERVED_IP_ADDRESS: l'indirizzo IP che hai prenotatoSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Invia una richiesta HTTP al bilanciatore del carico
Invia una richiesta da una VM client interna alla regola di forwarding del bilanciatore del carico.
Ottieni l'indirizzo IP della regola di forwarding del bilanciatore del carico
Per recuperare l'indirizzo IP della regola di forwarding del bilanciatore del carico, completa i seguenti passaggi:
Ottieni l'indirizzo IP della regola di forwarding del bilanciatore del carico (
http-fw-rule-1), che si trova nella regioneus-east1.gcloud compute forwarding-rules describe http-fw-rule-1 \ --global \ --project=SERVICE_PROJECT_IDOttieni l'indirizzo IP della regola di forwarding del bilanciatore del carico (
http-fw-rule-2), che si trova nella regioneasia-east1.gcloud compute forwarding-rules describe http-fw-rule-2 \ --global \ --project=SERVICE_PROJECT_IDSostituisci
SERVICE_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio.Copia l'indirizzo IP restituito da utilizzare come
FORWARDING_RULE_IP_ADDRESSnei passaggi successivi.
Crea una VM client per testare la connettività
Per creare una VM client per testare la connettività, completa i seguenti passaggi:
Crea una VM client denominata
client-anella regioneus-east1.gcloud compute instances create client-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --zone=us-east1-c \ --tags=allow-ssh \ --project=SERVICE_PROJECT_IDSostituisci quanto segue:
HOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostSERVICE_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto di servizio
Stabilisci una connessione SSH alla VM client.
gcloud compute ssh client-a \ --zone=us-east1-c \ --project=SERVICE_PROJECT_IDSostituisci
SERVICE_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio.In questo esempio, il bilanciatore del carico delle applicazioni interno tra regioni ha indirizzi IP virtuali (VIP) frontend nelle regioni
us-east1easia-east1nella rete VPC. Invia una richiesta HTTP al VIP in una delle due regioni utilizzando curl.curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
Sostituisci
FORWARDING_RULE_IP_ADDRESScon l'indirizzo IP della regola di forwarding del bilanciatore del carico.
Testare l'alta disponibilità
Per testare l'alta disponibilità, completa i seguenti passaggi:
Elimina la regola di forwarding (
http-fw-rule-1) nella regioneus-east1per simulare un'interruzione regionale e verificare se il client nella regioneus-eastpuò ancora accedere ai dati dal bucket di backend.gcloud compute forwarding-rules delete http-fw-rule-1 \ --global \ --project=SERVICE_PROJECT_IDSostituisci
SERVICE_PROJECT_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio.Invia una richiesta HTTP al VIP della regola di forwarding in una delle due regioni utilizzando curl.
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
Sostituisci
FORWARDING_RULE_IP_ADDRESScon l'indirizzo IP della regola di forwarding.Se effettui una richiesta HTTP al VIP nella regione
us-east1, i criteri di routing DNS rilevano che questo VIP non risponde e restituiscono al client il VIP successivo più ottimale (in questo esempio,asia-east1). Questo comportamento contribuisce a garantire che la tua applicazione rimanga attiva anche durante le interruzioni regionali.
Configura un bilanciatore del carico con una configurazione tra progetti
L'esempio precedente in questa pagina mostra come configurare un deployment VPC condiviso in cui tutti i componenti del bilanciatore del carico e i relativi backend vengono creati nel progetto di servizio.
I bilanciatori del carico delle applicazioni interni multiregionali consentono anche di configurare deployment VPC condiviso in cui una mappa URL in un progetto host o di servizio può fare riferimento a bucket di backend situati in più progetti di servizio negli ambienti VPC condiviso.
Puoi utilizzare i passaggi descritti in questa sezione come riferimento per configurare una qualsiasi delle combinazioni supportate elencate qui:
- Regola di forwarding, proxy di destinazione e mappa URL nel progetto host e bucket di backend in un progetto di servizio
- Regola di forwarding, proxy di destinazione e mappa URL in un progetto di servizio e bucket di backend in un altro progetto di servizio
In questa sezione, la seconda configurazione è descritta come esempio.
Panoramica della configurazione
Questo esempio configura un bilanciatore del carico con il frontend e il backend in due progetti di servizio diversi.
Se non l'hai ancora fatto, devi completare tutti i passaggi preliminari per configurare il VPC condiviso e configurare la rete, le subnet e le regole firewall richieste per questo esempio. Per le istruzioni, consulta le sezioni seguenti all'inizio di questa pagina:
Configura i bucket Cloud Storage e i bucket di backend nel service project B
Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio B
Per creare il bucket di backend, devi:
- Crea i bucket Cloud Storage.
- Copia i contenuti nei bucket Cloud Storage.
- Rendi accessibili pubblicamente i bucket Cloud Storage.
- Crea i bucket di backend e indirizzali ai bucket Cloud Storage.
Crea i bucket Cloud Storage
In questo esempio, crei due bucket Cloud Storage, uno nella regione
us-east1 e l'altro nella regione asia-east1. Per i deployment di produzione, ti consigliamo di scegliere un bucket multiregionale, che replica automaticamente gli oggetti in più regioni Google Cloud . Questo può migliorare la disponibilità dei tuoi contenuti e la tolleranza agli errori della tua applicazione.
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Fai clic su Crea.
Nella sezione Inizia, inserisci un nome univoco globale che rispetti le linee guida per l'assegnazione dei nomi.
Fai clic su Scegli dove archiviare i tuoi dati.
Imposta Tipo di località su Area geografica.
Dall'elenco delle regioni, seleziona us-east1.
Fai clic su Crea.
Fai clic su Bucket per tornare alla pagina Bucket Cloud Storage. Segui queste istruzioni per creare un secondo bucket, ma imposta la località su asia-east1.
gcloud
Crea il primo bucket nella regione
us-east1con il comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET1_NAME \ --default-storage-class=standard \ --location=us-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_B_IDCrea il secondo bucket nella regione
asia-east1con il comandogcloud storage buckets create.gcloud storage buckets create gs://BUCKET2_NAME \ --default-storage-class=standard \ --location=asia-east1 \ --uniform-bucket-level-access \ --project=SERVICE_PROJECT_B_ID
Sostituisci quanto segue:
BUCKET1_NAMEeBUCKET2_NAME: nomi dei bucket Cloud Storage.SERVICE_PROJECT_B_ID: l' Google Cloud ID progetto assegnato al progetto di servizio B.
Copia i contenuti nei bucket Cloud Storage
Per popolare i bucket Cloud Storage, copia un file grafico da un bucket Cloud Storage pubblico ai tuoi bucket Cloud Storage.
Esegui i comandi seguenti in Cloud Shell, sostituendo le variabili dei nomi dei bucket con i nomi univoci dei bucket Cloud Storage:
gcloud storage cp gs://gcp-external-http-lb-with-bucket/three-cats.jpg gs://BUCKET1_NAME/love-to-purr/
gcloud storage cp gs://gcp-external-http-lb-with-bucket/two-dogs.jpg gs://BUCKET2_NAME/love-to-fetch/
Sostituisci BUCKET1_NAME e BUCKET2_NAME con i nomi dei bucket Cloud Storage.
Rendi pubblicamente accessibili i bucket Cloud Storage
Per rendere leggibili tutti gli oggetti in un bucket da parte di chiunque su internet, concedi all'entità allUsers il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer).
Console
Per concedere a tutti gli utenti l'accesso in visualizzazione agli oggetti nei bucket, ripeti la seguente procedura per ogni bucket:
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che vuoi rendere pubblico.
Seleziona la scheda Autorizzazioni.
Nella sezione Autorizzazioni, fai clic sul pulsante Concedi l'accesso. Viene visualizzata la finestra di dialogo Concedi l'accesso.
Nel campo Nuove entità, inserisci
allUsers.Nel campo Seleziona un ruolo, inserisci
Storage Object Viewernella casella del filtro e seleziona Visualizzatore oggetti Storage dai risultati filtrati.Fai clic su Salva.
Fai clic su Consenti accesso pubblico.
gcloud
Per concedere a tutti gli utenti l'accesso per visualizzare gli oggetti nei bucket, esegui il comando gcloud storage buckets add-iam-policy-binding.
gcloud storage buckets add-iam-policy-binding gs://BUCKET1_NAME --member=allUsers --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET2_NAME --member=allUsers --role=roles/storage.objectViewer
Sostituisci BUCKET1_NAME e BUCKET2_NAME
con i nomi dei bucket Cloud Storage.
Configura il bilanciatore del carico con i bucket di backend
Per creare i bucket di backend:
Crea due bucket di backend, uno per ogni bucket Cloud Storage, con il comando
gcloud compute backend-buckets create. I bucket di backend hanno uno schema di bilanciamento del carico diINTERNAL_MANAGED.In questo esempio, i bucket di backend sono denominati
backend-bucket-catsebackend-bucket-dogs, indicativi dei contenuti nei bucket Cloud Storage.gcloud compute backend-buckets create backend-bucket-cats \ --gcs-bucket-name=BUCKET1_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_B_IDgcloud compute backend-buckets create backend-bucket-dogs \ --gcs-bucket-name=BUCKET2_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --project=SERVICE_PROJECT_B_IDSostituisci quanto segue:
BUCKET1_NAMEeBUCKET2_NAME: nomi dei bucket Cloud Storage.SERVICE_PROJECT_B_ID: l' Google Cloud ID progetto assegnato al progetto di servizio B.
Configura i componenti frontend del bilanciatore del carico nel progetto di servizio A
Tutti i passaggi di questa sezione devono essere eseguiti nel progetto di servizio A
Nel progetto di servizio A, devi creare i seguenti componenti di bilanciamento del carico frontend:
- Risorsa del certificato SSL collegata al proxy di destinazione. Per creare il certificato SSL, puoi seguire i passaggi descritti nella sezione precedente.
- Due indirizzi IP per le due regole di forwarding del bilanciatore del carico. Per creare gli indirizzi IP per le regole di forwarding, puoi seguire i passaggi descritti nella sezione precedente.
- Mappa URL che fa riferimento ai bucket di backend nel progetto di servizio B
- Proxy di destinazione
- Due regole di forwarding, ciascuna con un indirizzo IP regionale.
Per creare i componenti frontend:
Crea una mappa URL per instradare le richieste in entrata al bucket di backend con il comando
gcloud compute url-maps create.In questo esempio, la mappa URL è denominata
lb-map.gcloud compute url-maps create lb-map \ --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \ --global \ --project=SERVICE_PROJECT_A_IDSostituisci quanto segue:
SERVICE_PROJECT_B_ID: l'ID progetto Google Cloud assegnato al progetto di servizio BSERVICE_PROJECT_A_ID: l'ID progetto Google Cloud assegnato al progetto di servizio A
Configura le regole host e percorso della mappa URL con il comando
gcloud compute url-maps add-path-matcher.In questo esempio, il bucket di backend predefinito è
backend-bucket-cats, che gestisce tutti i percorsi al suo interno. Tuttavia, qualsiasi richiesta di targetinghttp://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpgutilizza il backendbackend-bucket-dogs. Ad esempio, se la cartella/love-to-fetch/esiste anche nel backend predefinito (backend-bucket-cats), il bilanciatore del carico assegna la priorità al backendbackend-bucket-dogsperché esiste una regola di percorso specifica per/love-to-fetch/*.gcloud compute url-maps add-path-matcher lb-map \ --path-matcher-name=path-matcher-pets \ --new-hosts=* \ --backend-bucket-path-rules="/love-to-fetch/*=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-dogs" \ --default-backend-bucket=projects/SERVICE_PROJECT_B_ID/global/backendBuckets/backend-bucket-cats \ --project=SERVICE_PROJECT_A_IDSostituisci quanto segue:
SERVICE_PROJECT_B_ID: l'ID progetto Google Cloud assegnato al progetto di servizio BSERVICE_PROJECT_A_ID: l'ID progetto Google Cloud assegnato al progetto di servizio A
Crea un proxy di destinazione con il comando
gcloud compute target-http-proxies create.Per il traffico HTTP, crea un proxy HTTP di destinazione denominato
http-proxyper instradare le richieste alla mappa URL:gcloud compute target-http-proxies create http-proxy \ --url-map=lb-map \ --global \ --project=SERVICE_PROJECT_A_IDSostituisci
SERVICE_PROJECT_A_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio A.Per il traffico HTTPS, crea un proxy HTTPS di destinazione denominato
https-proxyper instradare le richieste alla mappa URL. Il proxy è la parte del bilanciatore del carico che contiene il certificato SSL per un bilanciatore del carico HTTPS. Dopo aver creato il certificato, puoi collegarlo al proxy di destinazione HTTPS.gcloud compute target-https-proxies create https-proxy \ --url-map=lb-map \ --certificate-manager-certificates=CERTIFICATE_NAME \ --global \ --project=SERVICE_PROJECT_A_IDSostituisci quanto segue:
CERTIFICATE_NAME: il nome del certificato SSL che hai creato utilizzando Certificate ManagerSERVICE_PROJECT_A_ID: l'ID progetto Google Cloud assegnato al progetto di servizio A
Crea due regole di forwarding globale, una con un indirizzo IP nella regione
us-east1e l'altra con un indirizzo IP nella regioneasia-east1con il comandogcloud compute forwarding-rules create.Per il traffico HTTP, crea le regole di forwarding globali (
http-fw-rule-1ehttp-fw-rule-2) per instradare le richieste in entrata al proxy HTTP di destinazione:gcloud compute forwarding-rules create http-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_A_IDgcloud compute forwarding-rules create http-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=80 \ --target-http-proxy=http-proxy \ --global-target-http-proxy \ --global \ --project=SERVICE_PROJECT_A_IDSostituisci quanto segue:
HOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostRESERVED_IP_ADDRESS: l'indirizzo IP che hai prenotatoSERVICE_PROJECT_A_ID: l'ID progetto Google Cloud assegnato al progetto di servizio A
Per il traffico HTTPS, crea le regole di forwarding globali (
https-fw-rule-1ehttps-fw-rule-2) per instradare le richieste in entrata al proxy HTTPS di destinazione:gcloud compute forwarding-rules create https-fw-rule-1 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --subnet-region=us-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_A_IDgcloud compute forwarding-rules create https-fw-rule-2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/asia-east1/subnetworks/subnet-asia \ --subnet-region=asia-east1 \ --address=RESERVED_IP_ADDRESS \ --ports=443 \ --target-https-proxy=https-proxy \ --global-target-https-proxy \ --global \ --project=SERVICE_PROJECT_A_IDSostituisci quanto segue:
HOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostRESERVED_IP_ADDRESS: l'indirizzo IP che hai prenotatoSERVICE_PROJECT_A_ID: l'ID progetto Google Cloud assegnato al progetto di servizio A
Concedi le autorizzazioni all'amministratore del bilanciatore del carico per utilizzare il bucket di backend
Se vuoi che i bilanciatori del carico facciano riferimento ai bucket di backend in altri progetti di servizio, l'amministratore del bilanciatore del carico deve disporre dell'autorizzazione compute.backendBuckets.use. Per concedere questa autorizzazione, puoi utilizzare il ruolo IAM predefinito denominato Utente dei servizi bilanciatore del carico Compute (roles/compute.loadBalancerServiceUser). Questo ruolo deve essere concesso dall'amministratore del progetto di servizio e può essere applicato a livello di progetto di servizio o a livello di singolo bucket di backend.
In questo esempio, un amministratore del progetto di servizio del progetto di servizio B deve eseguire uno dei seguenti comandi per concedere l'autorizzazione compute.backendBuckets.use a un amministratore del bilanciatore del carico del progetto di servizio A. Questa operazione può essere eseguita a livello di progetto (per tutti i bucket di backend nel progetto) o per bucket di backend.
Console
Autorizzazioni a livello di progetto
Segui questi passaggi per concedere le autorizzazioni a tutti i bucket di backend nel tuo progetto.
Per completare questo passaggio, devi disporre delle autorizzazioni compute.backendBuckets.setIamPolicy e resourcemanager.projects.setIamPolicy.
Nella console Google Cloud , vai alla pagina IAM.
Seleziona il progetto.
Fai clic su Concedi l'accesso.
Nel campo Nuove entità, inserisci l'indirizzo email o un altro identificatore dell'entità.
Nella sezione Assegna ruoli, fai clic su Aggiungi ruoli.
Nella finestra di dialogo Seleziona ruoli, inserisci
Compute Load Balancer Services Usernel campo Cerca ruoli.Seleziona la casella di controllo Compute Load Balancer Services User.
Fai clic su Applica.
(Facoltativo) Aggiungi una condizione al ruolo.
Fai clic su Salva.
Autorizzazioni a livello di risorsa per singoli bucket di backend
Per concedere le autorizzazioni ai singoli bucket di backend nel tuo progetto:
Per completare questo passaggio, devi disporre dell'autorizzazione compute.backendBuckets.setIamPolicy.
Nella console Google Cloud , vai alla pagina Backend.
Nell'elenco dei backend, seleziona il bucket di backend a cui vuoi concedere l'accesso e fai clic su Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci l'indirizzo email o un altro identificatore dell'entità.
Nell'elenco Seleziona un ruolo, seleziona Compute Load Balancer Services User.
Fai clic su Salva.
gcloud
Autorizzazioni a livello di progetto
Segui questi passaggi per concedere le autorizzazioni a tutti i bucket di backend nel tuo progetto.
Per completare questo passaggio, devi disporre delle autorizzazioni compute.backendBuckets.setIamPolicy e resourcemanager.projects.setIamPolicy.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser"
Sostituisci quanto segue:
SERVICE_PROJECT_B_ID: l'ID progetto Google Cloud assegnato al progetto di servizio BLOAD_BALANCER_ADMIN: l'entità per la quale aggiungere l'associazione
Autorizzazioni a livello di risorsa per singoli bucket di backend
A livello di bucket di backend, gli amministratori del progetto di servizio possono utilizzare uno dei
seguenti comandi per concedere il ruolo Utente dei servizi bilanciatore del carico Compute
(roles/compute.loadBalancerServiceUser):
- Comando
gcloud projects add-iam-policy-binding - Comando
gcloud compute backend-buckets add-iam-policy-binding
Utilizza il comando gcloud projects add-iam-policy-binding per concedere il ruolo
Utente dei servizi bilanciatore del carico Compute.
Per completare questo passaggio, devi disporre dell'autorizzazione compute.backendBuckets.setIamPolicy.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser" \
--condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/global/backendBuckets/BACKEND_BUCKET_NAME",title=Shared VPC condition'
SERVICE_PROJECT_B_ID: l'ID progetto Google Cloud assegnato al progetto di servizio BLOAD_BALANCER_ADMIN: l'entità per la quale aggiungere l'associazioneBACKEND_BUCKET_NAME: il nome del bucket di backend
gcloud compute backend-buckets add-iam-policy-binding
per concedere il ruolo Utente dei servizi bilanciatore del carico Compute.
gcloud compute backend-buckets add-iam-policy-binding BACKEND_BUCKET_NAME \
--member="user:LOAD_BALANCER_ADMIN" \
--role="roles/compute.loadBalancerServiceUser" \
--project=SERVICE_PROJECT_B_ID \
Invia una richiesta HTTP al bilanciatore del carico
Invia una richiesta da una VM client interna alla regola di forwarding del bilanciatore del carico.
Ottieni l'indirizzo IP della regola di forwarding del bilanciatore del carico
Per recuperare l'indirizzo IP della regola di forwarding del bilanciatore del carico, completa i seguenti passaggi:
Ottieni l'indirizzo IP della regola di forwarding del bilanciatore del carico (
http-fw-rule-1), che si trova nella regioneus-east1.gcloud compute forwarding-rules describe http-fw-rule-1 \ --global \ --project=SERVICE_PROJECT_A_IDOttieni l'indirizzo IP della regola di forwarding del bilanciatore del carico (
http-fw-rule-2), che si trova nella regioneasia-east1.gcloud compute forwarding-rules describe http-fw-rule-2 \ --global \ --project=SERVICE_PROJECT_A_IDSostituisci
SERVICE_PROJECT_A_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio A.Copia l'indirizzo IP restituito da utilizzare come
FORWARDING_RULE_IP_ADDRESSnei passaggi successivi.
Crea una VM client per testare la connettività
Per creare una VM client per testare la connettività, completa i seguenti passaggi:
Crea una VM client denominata
client-anella regioneus-east1.gcloud compute instances create client-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/subnet-us \ --zone=us-east1-c \ --tags=allow-ssh \ --project=SERVICE_PROJECT_A_IDSostituisci quanto segue:
HOST_PROJECT_ID: l'ID progetto Google Cloud assegnato al progetto hostSERVICE_PROJECT_A_ID: l'ID progetto Google Cloud assegnato al progetto di servizio A
Stabilisci una connessione SSH alla VM client.
gcloud compute ssh client-a \ --zone=us-east1-c \ --project=SERVICE_PROJECT_A_IDSostituisci
SERVICE_PROJECT_A_IDcon l'ID progettoGoogle Cloud assegnato al progetto di servizio A.In questo esempio, il bilanciatore del carico delle applicazioni interno tra regioni ha indirizzi IP virtuali (VIP) frontend nelle regioni
us-east1easia-east1nella rete VPC. Invia una richiesta HTTP al VIP in una delle due regioni utilizzando curl.curl http://FORWARDING_RULE_IP_ADDRESS/love-to-fetch/two-dogs.jpg --output two-dogs.jpg
curl http://FORWARDING_RULE_IP_ADDRESS/love-to-purr/three-cats.jpg --output three-cats.jpg
Sostituisci
FORWARDING_RULE_IP_ADDRESScon l'indirizzo IP della regola di forwarding del bilanciatore del carico.
Per testare l'alta disponibilità, consulta la sezione Testare l'alta disponibilità in questo documento.
Passaggi successivi
- Panoramica del VPC condiviso
- Panoramica del bilanciatore del carico delle applicazioni interno
- Subnet solo proxy per i bilanciatori del carico basati su Envoy
- Gestire i certificati
- Pulizia di una configurazione di bilanciamento del carico