Questa guida fornisce istruzioni per eseguire la migrazione di un bilanciatore del carico di rete passthrough esterno esistente da un backend del pool di destinazione a un servizio di backend regionale.
Il passaggio a un servizio di backend regionale ti consente di usufruire di funzionalità come i controlli di integrità non legacy (per TCP, SSL, HTTP, HTTPS e HTTP/2), i gruppi di istanze gestite, lo svuotamento della connessione e i criteri di failover.
Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:
Questa guida illustra la procedura per eseguire la migrazione del seguente bilanciatore del carico di rete passthrough esterno basato su pool di destinazione di esempio in modo da utilizzare un servizio di backend regionale.
Il deployment del bilanciatore del carico di rete passthrough esterno basato sul servizio di backend risultante sarà simile a questo.
Questo esempio presuppone che tu abbia un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione tradizionale con due istanze nella zona us-central-1a
e due istanze nella zona us-central-1c
.
I passaggi di alto livello necessari per una transizione di questo tipo sono i seguenti:
Raggruppa le istanze del pool di destinazione in gruppi di istanze.
I servizi di backend funzionano solo con gruppi di istanze gestite o non gestite. Sebbene non sia previsto alcun limite al numero di istanze che possono essere inserite in un singolo pool di destinazione, i gruppi di istanze hanno una dimensione massima. Se il pool di destinazione ha più di questo numero massimo di istanze, devi suddividere i relativi backend in più gruppi di istanze.
Se il tuo deployment esistente include un pool di destinazione di backup, crea un gruppo di istanze separato per queste istanze. Questo gruppo di istanze è configurato come gruppo di failover.
Crea un servizio di backend regionale.
Se il tuo deployment include un pool di destinazione di backup, devi specificare un rapporto di failover durante la creazione del servizio di backend. Deve corrispondere al rapporto di failover configurato in precedenza per il deployment del pool di destinazione.
Aggiungi i gruppi di istanze (creati in precedenza) al servizio di backend.
Se il deployment include un pool di destinazione di backup, contrassegna il corrispondente gruppo di istanze di failover con un flag
--failover
quando lo aggiungi al servizio di backend.Configura una regola di forwarding che rimandi al nuovo servizio di backend.
Puoi scegliere una delle seguenti opzioni:
Aggiorna la regola di forwarding esistente in modo che punti al servizio di backend (opzione consigliata).
Crea una nuova regola di forwarding che rimandi al servizio di backend. Per farlo, devi creare un nuovo indirizzo IP per il frontend del bilanciatore del carico. Poi modifica le impostazioni DNS per passare senza problemi dall'indirizzo IP del vecchio bilanciatore del carico basato su pool di destinazione al nuovo indirizzo IP.
Prima di iniziare
Installa Google Cloud CLI. Per una panoramica completa dello strumento, consulta la Guida allo strumento gcloud. Puoi trovare i comandi relativi al bilanciamento del carico nel gruppo di comandi gcloud compute
.
Se non hai mai eseguito Google Cloud CLI, esegui prima
gcloud init
per autenticarti.
Questa guida presuppone che tu abbia familiarità con bash.
Identifica i backend e la regola di forwarding di cui eseguire la migrazione
Per elencare tutti i pool di destinazione, esegui questo comando in Cloud Shell:
gcloud compute target-pools list
Prendi nota del nome del pool di destinazione da cui eseguire la migrazione. Questo in seguito verrà chiamato TARGET_POOL_NAME.
Per elencare tutte le istanze VM nel pool di destinazione TARGET_POOL_NAME, esegui il comando in Cloud Shell:
gcloud compute target-pools describe TARGET_POOL_NAME \ --region=us-central1
Prendi nota dei nomi delle istanze VM. Questi in seguito verranno chiamati BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 e BACKEND_INSTANCE4.
Per elencare le regole di forwarding nel bilanciatore del carico di rete passthrough esterno, esegui il comando in Cloud Shell:
gcloud compute forwarding-rules list --filter="target: ( TARGET_POOL_NAME )"
Prendi nota del nome della regola di forwarding. Questa in seguito verrà chiamata FORWARDING_RULE.
Creazione dei gruppi di istanze non gestite zonali
Crea un gruppo di istanze non gestite zonale per ciascuna delle zone in cui hai i backend. A seconda della configurazione, puoi suddividere le istanze in tutti i gruppi di istanze necessari. Per il nostro esempio, utilizziamo solo due gruppi di istanze, uno per ogni zona, e posizioniamo tutte le VM di backend di una determinata zona nel gruppo di istanze associato.
Per questo esempio, creiamo due gruppi di istanze: uno nella zona uc-central1-a
e uno nella zona us-central1-c
.
Configura i gruppi di istanze
Console
- Nella console Google Cloud, vai alla pagina Gruppi di istanze.
- Fai clic su Crea gruppo di istanze.
- Nel riquadro a sinistra, seleziona Nuovo gruppo di istanze non gestite.
- In Nome, inserisci
ig-us-1
. - In Regione, seleziona
us-central1
. - In Zona, seleziona
us-central1-a
. - Seleziona Rete e Subnet a seconda di dove si trovano le istanze. In questo esempio, le istanze del pool di destinazione esistenti si trovano nella rete e nella subnet
default
. - Per aggiungere istanze al gruppo di istanze, nella sezione Istanze VM, seleziona le due istanze BACKEND_INSTANCE1 e BACKEND_INSTANCE2.
- Fai clic su Crea.
Ripeti questi passaggi per creare un secondo gruppo di istanze con le seguenti specifiche:
- Nome:
ig-us-2
- Regione:
us-central1
- Zona:
us-central1-c
Aggiungi le due istanze BACKEND_INSTANCE3 e BACKEND_INSTANCE4 nella zona
us-central1-c
a questo gruppo di istanze.- Nome:
Se il deployment del bilanciatore del carico esistente ha anche un pool di destinazione di backup, ripeti questi passaggi per creare un gruppo di istanze di failover separato per queste istanze.
gcloud
Crea un gruppo di istanze non gestite nella zona
us-central1-a
con il comandogcloud compute instance-groups unmanaged create
.gcloud compute instance-groups unmanaged create ig-us-1 \ --zone us-central1-a
Crea un secondo gruppo di istanze non gestite nella zona
us-central1-c
.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-c
Aggiungi istanze al gruppo di istanze
ig-us-1
.gcloud compute instance-groups unmanaged add-instances ig-us-1 \ --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \ --zone us-central1-a
Aggiungi istanze al gruppo di istanze
ig-us-2
.gcloud compute instance-groups unmanaged add-instances ig-us-2 \ --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \ --zone us-central1-c
Se il deployment del bilanciatore del carico esistente ha anche un pool di destinazione di backup, ripeti questi passaggi per creare un gruppo di istanze di failover separato per queste istanze.
Crea un controllo di integrità
Crea un controllo di integrità per determinare lo stato delle istanze nei gruppi di istanze. È probabile che al bilanciatore del carico di rete passthrough esterno basato su pool di destinazione esistente sia associato un controllo di integrità HTTP legacy.
Puoi creare un nuovo controllo di integrità che corrisponda al protocollo del traffico che verrà distribuito dal bilanciatore del carico. I bilanciatori del carico di rete passthrough esterni basati su servizi di backend possono utilizzare i controlli di stato TCP, SSL, HTTP(S) e HTTP/2.
Console
- Nella console Google Cloud, vai alla pagina Controlli di integrità.
- Fai clic su Crea controllo di integrità.
- Nel campo Nome, inserisci
network-lb-health-check
. - Imposta Ambito su Singola regione.
- In Regione, seleziona
us-central1
. - In Protocollo, seleziona HTTP.
- In Porta, inserisci
80
. - Fai clic su Crea.
gcloud
Per questo esempio, creiamo un controllo di integrità HTTP non legacy da utilizzare con il servizio di backend.
gcloud compute health-checks create http network-lb-health-check \ --region us-central1 \ --port 80
Configura il servizio di backend
Utilizza una delle seguenti sezioni per creare il servizio di backend. Se il bilanciatore del carico di rete passthrough esterno esistente ha un pool di destinazione di backup, devi configurare un rapporto di failover durante la creazione del servizio di backend.
Inoltre, devi designare il gruppo di istanze di failover con il flag --failover
quando aggiungi i backend al servizio di backend.
Deployment senza un pool di destinazione di backup
gcloud
Crea un servizio di backend regionale nella regione
us-central1
.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-checks network-lb-health-check \ --health-checks-region us-central1 \ --protocol TCP
Aggiungi i due gruppi di istanze (
ig-us-1
eig-us-2
) come backend al servizio di backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Implementazioni con un pool di destinazione di backup
gcloud
Crea un servizio di backend regionale nella regione
us-central1
. Configura il rapporto di failover del servizio di backend in modo che corrisponda al rapporto di failover precedentemente configurato per il pool di destinazione.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-check network-lb-health-check \ --failover-ratio 0.5
Aggiungi i due gruppi di istanze (
ig-us-1
eig-us-2
) come backend al servizio di backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
Se hai creato un gruppo di istanze di failover, aggiungilo al servizio di backend. Contrassegna questo backend con il flag
--failover
quando lo aggiungi al servizio di backend.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group FAILOVER_INSTANCE_GROUP \ --instance-group-zone ZONE \ --region us-central1 \ --failover
Configura la regola di forwarding
Hai due opzioni per configurare la regola di forwarding in modo da indirizzare il traffico al nuovo servizio di backend. Puoi aggiornare la regola di forwarding esistente o creare una nuova regola di forwarding con un nuovo indirizzo IP.
Aggiorna la regola di forwarding esistente (opzione consigliata)
Utilizza il flag set-target
per aggiornare la regola di forwarding esistente in modo che punti al nuovo servizio di backend.
gcloud compute forwarding-rules set-target FORWARDING_RULE \ --backend-service network-lb-backend-service \ --region us-central1
Sostituisci FORWARDING_RULE
con il nome della regola di forwarding esistente.
Creare una nuova regola di forwarding
Se non vuoi aggiornare la regola di forwarding esistente, puoi crearne una nuova con un nuovo indirizzo IP. Poiché un determinato indirizzo IP può essere associato solo a una singola regola di forwarding alla volta, devi modificare manualmente l'impostazione DNS per trasferire il traffico in entrata dal vecchio indirizzo IP a quello nuovo.
Utilizza il seguente comando per creare una nuova regola di forwarding con un nuovo indirizzo IP. Puoi utilizzare il flag --address
se vuoi specificare un indirizzo IP già prenotato nella regione us-central1
.
gcloud compute forwarding-rules create network-lb-forwarding-rule \ --load-balancing-scheme external \ --region us-central1 \ --ports 80 \ --backend-service network-lb-backend-service
Test del bilanciatore del carico
Testa il bilanciatore del carico per verificare che la regola di forwarding stia indirizzando il traffico in entrata come previsto.
Cerca l'indirizzo IP esterno del bilanciatore del carico
gcloud
Inserisci il seguente comando per visualizzare l'indirizzo IP esterno della regola di forwarding network-lb-forwarding-rule
utilizzata dal bilanciatore del carico.
gcloud compute forwarding-rules describe network-lb-forwarding-rule --region us-central1
Utilizza il comando nc
per accedere all'indirizzo IP esterno
In questo esempio utilizziamo il metodo di hashing predefinito per l'affinità della sessione, pertanto le richieste del comando nc
vengono distribuite in modo casuale alle VM di backend in base alla porta di origine assegnata dal sistema operativo.
Per testare la connettività, installa innanzitutto Netcat su Linux eseguendo questo comando:
$ sudo apt install netcat
Ripeti il seguente comando alcune volte finché non vedrai tutte le VM di backend rispondere:
$ nc IP_ADDRESS 80
Rimuovi le risorse associate al bilanciatore del carico precedente
Dopo aver verificato che il nuovo bilanciatore del carico di rete passthrough esterno funzioni come previsto, puoi eliminare le risorse del vecchio pool di destinazione.
- Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Seleziona il bilanciatore del carico precedente associato al pool di destinazione, quindi fai clic su Elimina.
- Seleziona i controlli di integrità che hai creato, quindi fai clic su Elimina il bilanciatore del carico e le risorse selezionate.
Passaggi successivi
- Per informazioni su come i bilanciatori del carico di rete passthrough esterni funzionano con i servizi di backend, consulta la panoramica dei bilanciatori del carico di rete passthrough esterni basati sui servizi di backend.
- Per configurare un bilanciatore del carico di rete passthrough esterno con un servizio di backend, consulta Configura un bilanciatore del carico di rete passthrough esterno con un servizio di backend.
- Per configurare un bilanciatore del carico di rete passthrough esterno con un pool di destinazione, consulta Configura un bilanciatore del carico di rete passthrough esterno con un pool di destinazione.