Esegui la migrazione di un bilanciatore del carico di rete passthrough esterno dal pool di destinazione al servizio di backend

Questa guida fornisce le 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 consente di sfruttare come i controlli di integrità non legacy (per TCP, SSL, HTTP, e HTTP/2), gruppi di istanze gestite, connection svuotato criteri di failover


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:

Procedura guidata


Questa guida illustra la migrazione del seguente target di esempio al bilanciatore del carico di rete passthrough esterno basato su pool per utilizzare invece un servizio di backend regionale.

Prima: bilanciatore del carico di rete passthrough esterno con un pool di destinazione
Prima: bilanciatore del carico di rete passthrough esterno con un pool di destinazione

Il deployment del bilanciatore del carico di rete passthrough esterno basato sul servizio di backend simile a questo.

Dopo: bilanciatore del carico di rete passthrough esterno con un servizio di backend regionale
Dopo: bilanciatore del carico di rete passthrough esterno con un servizio di backend regionale

Questo esempio presuppone che tu abbia un bilanciatore del carico di rete passthrough esterno tradizionale basato su pool di destinazione con due istanze nella zona us-central-1a e due istanze nella zona us-central-1c.

I passaggi generali necessari per questa transizione sono i seguenti:

  1. 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. Anche se non esiste un limite al numero di istanze che può essere posizionato in un singolo pool di destinazione, gruppi di istanze hanno una dimensione massima. Se il pool di destinazione ha più di questo e il numero massimo di istanze, devi suddividere i rispettivi backend in più gruppi di istanze.

    Se il 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.

  2. Crea un servizio di backend a livello di regione.

    Se il deployment include un pool di destinazione di backup, è necessario e specificare un rapporto di failover durante la creazione del servizio di backend. Questa operazione dovrebbe corrisponde al rapporto di failover precedentemente configurato per il pool di destinazione e deployment continuo.

  3. Aggiungi gruppi di istanze (creati in precedenza) al servizio di backend.

    Se il deployment include un pool di destinazione di backup, contrassegna la classe gruppo di istanze di failover con un flag --failover durante l'aggiunta al servizio di backend.

  4. Configura una regola di forwarding che punti 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 (consigliato).

    • Crea una nuova regola di forwarding che punti al servizio di backend. Questo richiede la creazione di un nuovo indirizzo IP per il bilanciatore del carico e il frontend di Google Cloud. Puoi quindi modificare le impostazioni DNS in modo che la transizione dalla il vecchio indirizzo IP del 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 dello strumento gcloud. Puoi trovare comandi relativi il bilanciamento del carico in gcloud compute di un gruppo di comandi.

Se non hai già eseguito Google Cloud CLI, esegui prima gcloud init per l'autenticazione.

Questa guida presuppone che tu abbia familiarità con bash.

Identifica i backend e la regola di forwarding di cui eseguire la migrazione

  1. 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.

  2. 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.

  3. 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 a livello di zona

Crea un gruppo di istanze non gestite a livello di zona per ciascuna delle zone in cui disponi di backend. A seconda della configurazione, puoi dividere le istanze tra un numero illimitato di istanze gruppi di istanze in base alle esigenze. Per il nostro esempio, utilizziamo solo due istanze uno per ogni zona, inserendo tutte le VM di backend in una determinata zona gruppo di istanze associato.

Per questo esempio, creiamo due gruppi di istanze: uno nel uc-central1-a zona e uno in us-central1-c zona.

configura i gruppi di istanze

Console

  1. Nella console Google Cloud, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.
  3. Nel riquadro a sinistra, seleziona Nuovo gruppo di istanze non gestite.
  4. In Nome, inserisci ig-us-1.
  5. In Regione, seleziona us-central1.
  6. In Zona, seleziona us-central1-a.
  7. Seleziona Rete e Subnet in base a dove in cui si trovano le istanze. In questo esempio, il pool di destinazione esistente si trovano nella rete e nella subnet default.
  8. Per aggiungere istanze al gruppo di istanze, nella sezione Istanze VM seleziona le due istanze BACKEND_INSTANCE1 e BACKEND_INSTANCE2.
  9. Fai clic su Crea.
  10. Ripeti questi passaggi per creare un secondo gruppo di istanze con quanto segue 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 questa istanza gruppo.

  11. 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 di Compute Engine.

gcloud

  1. Crea un gruppo di istanze non gestite nella zona us-central1-a con il gcloud compute instance-groups unmanaged create .

    gcloud compute instance-groups unmanaged create ig-us-1 \
        --zone us-central1-a
    
  2. 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
    
  3. 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
    
  4. 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
    
  5. 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 di Compute Engine.

Crea un controllo di integrità

Crea un controllo di integrità per determinare l'integrità delle istanze nel tuo gruppi di istanze. Il tuo bilanciatore del carico di rete passthrough esterno esistente basato sul pool di destinazione probabilmente è associato a un controllo di integrità HTTP legacy.

Puoi creare un nuovo controllo di integrità che corrisponda al protocollo che il bilanciatore del carico distribuirà. In base al servizio di backend i bilanciatori del carico di rete passthrough esterni possono utilizzare l'integrità TCP, SSL, HTTP(S) e HTTP/2 controlli.

Console

  1. Nella console Google Cloud, vai alla pagina Controlli di integrità.

    Vai a Controlli di integrità

  2. Fai clic su Crea controllo di integrità.
  3. Nel campo Nome, inserisci network-lb-health-check.
  4. Imposta Ambito su Singola regione.
  5. In Regione, seleziona us-central1.
  6. In Protocollo, seleziona HTTP.
  7. In Porta, inserisci 80.
  8. Fai clic su Crea.

gcloud

  1. In questo esempio, creiamo un controllo di integrità HTTP non legacy da utilizzare con di 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 le tue 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.

Devi inoltre designare il gruppo di istanze di failover --failover durante l'aggiunta di backend al servizio di backend.

Deployment senza un pool di destinazione di backup

gcloud

  1. 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
    
  2. Aggiungi i due gruppi di istanze (ig-us-1 e ig-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
    

Deployment con un pool di destinazione di backup

gcloud

  1. Crea un servizio di backend regionale nella regione us-central1. Configura il rapporto di failover del servizio di backend in modo che corrisponda a quello del 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
    
  2. Aggiungi i due gruppi di istanze (ig-us-1 e ig-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
    
  3. Se hai creato un gruppo di istanze di failover, aggiungilo al backend completamente gestito di Google Cloud. Contrassegna questo backend con il flag --failover quando 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 alla un nuovo servizio di backend. Puoi aggiornare la regola di forwarding esistente una nuova regola di forwarding con un nuovo indirizzo IP.

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 campagna esistente di una regola di forwarding.

Crea 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 associati a una singola regola di forwarding, devi eseguire manualmente modifica l'impostazione DNS per eseguire la transizione del traffico in entrata dal vecchio IP al nuovo indirizzo.

Utilizza il comando seguente 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 confermare che la regola di forwarding indirizzi traffico in entrata come previsto.

Cerca l'indirizzo IP esterno del bilanciatore del carico

gcloud

Inserisci il comando seguente per visualizzare l'indirizzo IP esterno del network-lb-forwarding-rule regola di forwarding utilizzata dal bilanciatore del carico.

gcloud compute forwarding-rules describe network-lb-forwarding-rule
    --region us-central1

Usa il comando nc per accedere all'indirizzo IP esterno

In questo esempio, utilizziamo il metodo di hashing predefinito per le sessioni affinità, le richieste dal comando nc vengono distribuite in modo casuale di backend basate sulla porta di origine assegnata dal sistema operativo.

  1. Per testare la connettività, installa innanzitutto Netcat su Linux eseguendo questo comando:

    $ sudo apt install netcat
    
  2. Ripeti il comando seguente alcune volte finché non vedi rispondere tutte le VM di backend:

    $ nc IP_ADDRESS 80
    

Rimuovi le risorse associate al bilanciatore del carico precedente

Dopo aver confermato che il nuovo bilanciatore del carico di rete passthrough esterno funziona come previsto, puoi eliminare le vecchie risorse del pool di destinazione.

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Seleziona il bilanciatore del carico precedente associato al pool di destinazione, quindi fai clic su Elimina.
  3. Seleziona i controlli di integrità che hai creato, quindi fai clic su Elimina il bilanciatore del carico e le risorse selezionate.

Passaggi successivi