GSP007
Panoramica
In questo lab pratico imparerai a configurare un bilanciatore del carico di rete passthrough da eseguire su macchine virtuali (VM) Compute Engine. Un bilanciatore del carico di rete di livello 4 (L4) gestisce il traffico in base alle informazioni a livello di rete, come indirizzi IP e numeri di porta, senza esaminare il contenuto del traffico.
Esistono diversi modi per bilanciare il carico su Google Cloud.
Questo lab illustra il processo per configurare i seguenti bilanciatori del carico:
Ti consigliamo di digitare direttamente i comandi, perché può aiutarti ad acquisire i concetti fondamentali. Molti lab includono blocchi di codice che contengono i comandi da inserire. Durante il lab puoi semplicemente copiare e incollare i comandi dai blocchi di codice nelle destinazioni appropriate.
Obiettivi
In questo lab imparerai a:
- Configurare la regione e la zona predefinite per le risorse.
- Creare più istanze del server web
- Configurare un servizio di bilanciamento del carico.
- Configurare una regola di forwarding per distribuire il traffico
Configurazione e requisiti
Prima di fare clic sul pulsante Avvia lab
Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Inizia il lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.
Con questo lab pratico avrai la possibilità di completare le attività in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.
Per completare il lab, avrai bisogno di:
- Accesso a un browser internet standard (Chrome è il browser consigliato).
Nota: per eseguire questo lab, utilizza una finestra del browser in modalità di navigazione in incognito (consigliata) o privata. Ciò evita conflitti tra il tuo account personale e l'account studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: utilizza solo l'account studente per questo lab. Se utilizzi un altro account Google Cloud, potrebbero essere addebitati costi su quell'account.
Come iniziare il lab e accedere alla console Google Cloud
-
Fai clic sul pulsante Inizia il lab. Se devi effettuare il pagamento per il lab, si aprirà una finestra di dialogo per permetterti di selezionare il metodo di pagamento.
A destra, trovi il riquadro Configurazione e accesso al lab con le seguenti informazioni:
- Il pulsante Apri console Google Cloud
- Le credenziali temporanee (nome utente e password) da utilizzare per il lab
- Altre informazioni per seguire questo lab, se necessario
Tieni presente che il timer del lab si trova nella parte superiore della pagina e mostra il tempo rimanente.
-
Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra Incognito se utilizzi il browser Chrome).
Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.
Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.
Nota: se visualizzi la finestra di dialogo Scegli un account, fai clic su Usa un altro account.
-
Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo Accedi.
{{{user_0.username | "Username"}}}
Puoi trovare il Nome utente anche nel riquadro Configurazione e accesso al lab.
-
Fai clic su Avanti.
-
Copia la Password di seguito e incollala nella finestra di dialogo Ti diamo il benvenuto.
{{{user_0.password | "Password"}}}
Puoi trovare la Password anche nel riquadro Configurazione e accesso al lab.
-
Fai clic su Avanti.
Importante: devi utilizzare le credenziali fornite dal lab. Non utilizzare le credenziali del tuo account Google Cloud.
Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi.
-
Fai clic nelle pagine successive:
- Accetta i termini e le condizioni.
- Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
- Non registrarti per le prove senza costi.
Dopo qualche istante, la console Google Cloud si apre in questa scheda.
Nota: per accedere ai prodotti e ai servizi Google Cloud, fai clic sul menu di navigazione o digita il nome del servizio o del prodotto nel campo Cerca.
Attiva Cloud Shell
Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.
-
Fai clic su Attiva Cloud Shell
nella parte superiore della console Google Cloud.
-
Fai clic nelle seguenti finestre:
- Continua nella finestra delle informazioni di Cloud Shell.
- Autorizza Cloud Shell a utilizzare le tue credenziali per effettuare chiamate API Google Cloud.
Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo Project_ID, . L'output contiene una riga che dichiara il Project_ID per questa sessione:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
- (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list
- Fai clic su Autorizza.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: per la documentazione completa di gcloud, in Google Cloud, fai riferimento alla guida Panoramica dell'interfaccia a riga di comando gcloud.
Attività 1: imposta la regione e la zona predefinite per tutte le risorse
-
Imposta la regione predefinita:
gcloud config set compute/region {{{project_0.default_region | Region}}}
-
gcloud config set compute/region {{{project_0.default_region | Region}}}
gcloud config set compute/zone {{{project_0.default_zone | Zone}}}
In Cloud Shell imposta la zona predefinita:
Scopri di più sulla scelta delle zone e delle regioni nella documentazione Regioni e zone di Compute Engine.https://cloud.google.com/compute/docs/zones
Attività 2: crea più istanze del server web
Per questo scenario di bilanciamento del carico, crea tre istanze VM di Compute Engine e installa Apache su ciascuna. Quindi, aggiungi una regola firewall che consenta al traffico HTTP di raggiungere le istanze.
Il codice fornito imposta la zona su .
L'impostazione del campo tag consente di fare riferimento a tutte queste istanze contemporaneamente, come accadrebbe con una regola firewall.
Questi comandi installano anche Apache su ogni istanza e assegnano una home page univoca a ognuna di queste.
gcloud compute instances create www1 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
" | tee /var/www/html/index.html'
Crea una macchina virtuale www1 nella tua zona predefinita utilizzando il seguente codice:
gcloud compute instances create www1 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
gcloud compute instances create www2 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Web Server: www1
" | tee /var/www/html/index.html'
" | tee /var/www/html/index.html'
gcloud compute instances create www3 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "
Crea una macchina virtuale www2 nella tua zona predefinita utilizzando il seguente codice:
" | tee /var/www/html/index.html'
gcloud compute instances create www2 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "Web Server: www2
gcloud compute firewall-rules create www-firewall-network-lb \
--target-tags network-lb-tag --allow tcp:80
" | tee /var/www/html/index.html'
Crea una macchina virtuale
www3 nella tua zona predefinita.
gcloud compute instances create www3 \
--zone={{{project_0.default_zone | Zone}}} \
--tags=network-lb-tag \
--machine-type=e2-small \
--image-family={{{project_0.startup_script.debian_image_id_short | Debian image ID}}} \
--image-project=debian-cloud \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
service apache2 restart
echo "Web Server: www3
gcloud compute instances list
" | tee /var/www/html/index.html'
curl http://[IP_ADDRESS]
Crea una regola firewall per consentire il traffico esterno alle istanze VM:
gcloud compute firewall-rules create www-firewall-network-lb \
--target-tags network-lb-tag --allow tcp:80
Ora devi ottenere gli indirizzi IP esterni delle istanze e verificare che siano in esecuzione.
Esegui il comando seguente per elencare le istanze. I relativi indirizzi IP saranno visualizzati nella colonna EXTERNAL_IP:
gcloud compute instances list
gcloud compute addresses create network-lb-ip-1 \
--region {{{project_0.default_region | Region}}}
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
Verifica che ogni istanza sia in esecuzione con curl, sostituendo [IP_ADDRESS] con l'indirizzo IP esterno di ciascuna delle VM:
curl http://[IP_ADDRESS]
gcloud compute http-health-checks create basic-check
Fai clic su Controlla i miei progressi per verificare di aver creato un gruppo di server web.
Crea più istanze del server web
Attività 3: configura il servizio di bilanciamento del carico
Una volta configurato il servizio di bilanciamento del carico, le istanze di macchine virtuali riceveranno i pacchetti destinati all'indirizzo IP esterno statico configurato.
Le istanze create con un'immagine Compute Engine vengono automaticamente configurate per gestire questo indirizzo IP.
Nota:
per saperne di più su come configurare il bilanciamento del carico di rete, consulta la guida Panoramica del bilanciatore del carico di rete passthrough esterno basato sui servizi di backend.
- https://cloud.google.com/compute/docs/load-balancing/network/
gcloud compute target-pools create www-pool \
--region {{{project_0.default_region | Region}}} --http-health-check basic-check
- Crea un indirizzo IP esterno statico per il bilanciatore del carico:
gcloud compute addresses create network-lb-ip-1 \
--region {{{project_0.default_region | Region}}}
gcloud compute target-pools add-instances www-pool \
--instances www1,www2,www3
Output:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
Aggiungi una risorsa legacy di controllo di integrità HTTP:-
gcloud compute http-health-checks create basic-check
Fai clic su Controlla i miei progressi per verificare di aver creato un bilanciatore del carico di rete L4 che punta ai server web.
Configura il servizio di bilanciamento del carico
gcloud compute forwarding-rules create www-rule \
--region {{{project_0.default_region | Region}}} \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool
Attività 4: crea il pool di destinazione e una regola di forwardingUn pool di destinazione è un gruppo di istanze di backend che ricevono il traffico in entrata da bilanciatori del carico di rete passthrough esterni. Tutte le istanze di backend di un pool di destinazione devono trovarsi nella stessa regione Google Cloud.
- Esegui questo comando per creare il pool di destinazione e utilizzare il controllo di integrità necessario per consentire al servizio di funzionare:
gcloud compute target-pools create www-pool \
--region {{{project_0.default_region | Region}}} --http-health-check basic-check
gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}}
-
Aggiungi al pool le istanze che hai creato in precedenza:
IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress)
-
gcloud compute target-pools add-instances www-pool \
--instances www1,www2,www3
echo $IPADDRESS
Ora creerai la regola di forwarding. Una regola di forwarding specifica come instradare il traffico di rete ai servizi di backend di un bilanciatore del carico.https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts
while true; do curl -m1 $IPADDRESS; done
Aggiungi una regola di forwarding:
gcloud compute forwarding-rules create www-rule \
--region {{{project_0.default_region | Region}}} \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool
Fai clic su Controlla i miei progressi per verificare di aver creato il pool di destinazione e una regola di forwarding.
Crea il pool di destinazione e una regola di forwarding
Attività 5: invia traffico alle istanze
Una volta configurato il servizio di bilanciamento del carico, puoi iniziare a inviare traffico alla regola di forwarding e osservare la distribuzione del traffico su diverse istanze.