Configurare un bilanciatore del carico di rete proxy interno tra regioni con connettività ibrida

Questa pagina mostra come implementare un bilanciatore del carico di rete proxy interno tra regioni per bilanciare il traffico verso endpoint di rete on-premise o in altri cloud pubblici e raggiungibili utilizzando la connettività ibrida.

Se non l'hai ancora fatto, consulta la Panoramica dei NEG per la connettività ibrida per comprendere i requisiti di rete per configurare il bilanciamento del carico ibrida.

Panoramica della configurazione

L'esempio configura un bilanciatore del carico di rete proxy interno tra regioni per backend NEG di connettività mista zonale e ibrida, come mostrato nella figura seguente:

Esempio di bilanciatore del carico di rete proxy interno tra regioni per backend NEG con connettività ibrida e a livello di zona.
Esempio di bilanciatore del carico di rete proxy interno tra regioni per backend NEG con connettività ibrida e a livello di zona misti (fai clic per ingrandire).

Devi configurare la connettività ibrida prima di configurare un deployment di bilanciamento del carico ibrida. A seconda del prodotto di connettività ibrida scelto, utilizza Cloud VPN o Cloud Interconnect (dedicato o partner).

Autorizzazioni

Per configurare il bilanciamento del carico ibrido, devi disporre delle seguenti autorizzazioni:

  • Su Google Cloud

    • Autorizzazioni per stabilire la connettività ibrida tra Google Cloud e dell'ambiente on-premise o di altri ambienti cloud. Per l'elenco delle autorizzazioni necessarie, consulta la documentazione del prodotto Network Connectivity pertinente.
    • Autorizzazioni per creare un NEG di connettività ibrida e il bilanciatore del carico. Il ruolo Amministratore bilanciatore del carico Compute (roles/compute.loadBalancerAdmin) contiene le autorizzazioni necessarie per eseguire le attività descritte in questa guida.
  • Nell'ambiente on-premise o in un altro ambiente cloud non Google Cloud

    • Autorizzazioni per configurare endpoint di rete che consentono di rendere raggiungibili i servizi nel tuo ambiente on-premise o in altri ambienti cloud da Google Cloud utilizzando una combinazione IP:Port. Per ulteriori informazioni, contatta l'amministratore di rete del tuo ambiente.
    • Autorizzazioni per creare regole firewall sul tuo ambiente on-premise o su un altro cloud per consentire ai probe del controllo di integrità di Google di raggiungere gli endpoint.

Inoltre, per completare le istruzioni riportate in questa pagina, devi creare un NEG di connettività ibrida, un bilanciatore del carico e NEG zonali (e i relativi endpoint) da utilizzare come backend basati su Google Cloud per il bilanciatore del carico.

Devi essere un proprietario o un editor del progetto oppure disporre dei seguenti ruoli IAM di Compute Engine.

Attività Ruolo richiesto
Creazione di reti, subnet e componenti del bilanciatore del carico Amministratore rete Compute (roles/compute.networkAdmin)
Aggiungi e rimuovi regole firewall Amministratore della sicurezza di Compute (roles/compute.securityAdmin)
Creazione delle istanze Amministratore di istanze Compute (roles/compute.instanceAdmin)

Stabilisci la connettività ibrida

L'ambiente Google Cloud e l'ambiente on-premise o altri ambienti cloud devono essere collegati tramite connettività ibrida utilizzando i collegamenti VLAN di Cloud Interconnect o i tunnel Cloud VPN con Cloud Router. Ti consigliamo di utilizzare una connessione ad alta disponibilità.

Un router Cloud abilitato al routing dinamico globale viene a conoscenza dell'endpoint specifico tramite il protocollo BGP (Border Gateway Protocol) e lo programma nella rete VPC di Google Cloud. A livello di regione il routing dinamico non è supportato. Inoltre, le route statiche non sono supportate.

La rete VPC utilizzata per configurare Cloud Interconnect o Cloud VPN è la stessa utilizzata per configurare il deployment del bilanciamento del carico ibrido. Assicurati che gli intervalli CIDR delle subnet della rete VPC non siano in conflitto con gli intervalli CIDR remoti. Quando gli indirizzi IP si sovrappongono, le route di subnet con priorità rispetto alla connettività remota.

Per istruzioni, consulta la seguente documentazione:

Configura l'ambiente esterno a Google Cloud

Esegui i seguenti passaggi per configurare il tuo ambiente on-premise o un altro ambiente per il bilanciamento del carico ibrido:

  • Configura gli endpoint di rete per esporre i servizi on-premise a Google Cloud (IP:Port).
  • Configura le regole del firewall nel tuo ambiente on-premise o in un altro ambiente cloud.
  • Configura il router Cloud per pubblicizzare determinate route richieste al tuo in un ambiente privato.

Configura gli endpoint di rete

Dopo aver configurato la connettività ibrida, configura uno o più endpoint di rete all'interno del tuo ambiente on-premise o di altri ambienti cloud che sono raggiungibili tramite Cloud Interconnect o Cloud VPN utilizzando una combinazioneIP:port. Questa combinazione IP:port è configurata come uno o più endpoint per il NEG di connettività ibrida creato Google Cloud più avanti in questo processo.

Se sono presenti più percorsi all'endpoint IP, segue il comportamento descritto in Router Cloud Panoramica.

Configura le regole firewall

Devi creare le seguenti regole firewall nel tuo ambiente on-premise o altro ambiente cloud:

  • Crea una regola firewall di autorizzazione in entrata in ambienti on-premise o cloud diversi per consentire al traffico proveniente dalla subnet solo proxy della regione di raggiungere gli endpoint.
  • L'inserimento nella lista consentita degli intervalli di probe di controllo di integrità di Google non è necessario per i NEG ibridi. Tuttavia, se utilizzi una combinazione di NEG ibridi e zonali in un singolo servizio di backend, devi inserire nella lista consentita gli intervalli di sonde di controllo di integrità di Google per i NEG zonali.

Configura Cloud Router in modo da annunciare le seguenti gamme di IP personalizzate al tuo ambiente on-premise o a un altro ambiente cloud:

  • L'intervallo della subnet solo proxy della regione.

Configurare l'ambiente Google Cloud

Per i passaggi che seguono, assicurati di utilizzare la stessa rete VPC (chiamata NETWORK in questa procedura) utilizzata per configurare la connettività ibrida tra gli ambienti.

Inoltre, assicurati che le regioni utilizzate (chiamate REGION_A e REGION_B in questa procedura) siano le stesse utilizzate per creare il tunnel VPN Cloud o i collegamenti VLAN Cloud Interconnect.

Configura le subnet di backend

Utilizza questa subnet per creare i backend NEG zonali del bilanciatore del carico:

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Vai alla rete utilizzata per configurare la connettività ibrida tra per gestire gli ambienti.

  3. Nella sezione Subnet:

    • Imposta Modalità di creazione subnet su Personalizzata.
    • Nella sezione Nuova subnet, inserisci le informazioni seguenti:
      • Specifica un nome per la subnet.
      • Seleziona una regione: REGION_A
      • Inserisci un intervallo di indirizzi IP.
    • Fai clic su Fine.
  4. Fai clic su Crea.

  5. Per aggiungere altre subnet in regioni diverse, fai clic su Aggiungi subnet e ripeti i passaggi precedenti per REGION_B

gcloud

  1. Crea sottoreti nella rete utilizzata per configurare la connettività ibrida tra gli ambienti.

    gcloud compute networks subnets create SUBNET_A \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE1 \
        --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE2 \
        --region=REGION_B
    

API

Invia una richiesta POST al metodo subnetworks.insert. Sostituisci PROJECT_ID con l'ID del tuo progetto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks

{
 "name": "SUBNET_A",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "ipCidrRange": "LB_SUBNET_RANGE1",
 "region": "projects/PROJECT_ID/regions/REGION_A",
}

Invia una richiesta POST al metodo subnetworks.insert. Sostituisci PROJECT_ID con il tuo ID progetto.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks

{
 "name": "SUBNET_B",
 "network": "projects/PROJECT_ID/global/networks/NETWORK",
 "ipCidrRange": "LB_SUBNET_RANGE2",
 "region": "projects/PROJECT_ID/regions/REGION_B",
}

Sostituisci quanto segue:

  • SUBNET_A e SUBNET_B: il nome delle subnet
  • LB_SUBNET_RANGE1 e LB_SUBNET_RANGE2: l'intervallo di indirizzi IP per le subnet
  • REGION_A e REGION_B: Le regioni in cui hai configurato il bilanciatore del carico

Configura la subnet solo proxy

Una subnet solo proxy fornisce un insieme di indirizzi IP che Google utilizza per eseguire proxy Envoy per tuo conto. La i proxy terminano le connessioni dal client e creano nuove connessioni di backend.

Questa subnet solo proxy viene utilizzata da tutto il carico regionale basato su Envoy bilanciatori del carico nella stessa regione della rete VPC. Possono esserci solo una subnet solo proxy attiva per uno scopo specifico, per regione e per rete.

Console

Se utilizzi la console Google Cloud, puoi attendere e creare l'account più avanti nella pagina Bilanciamento del carico.

Se vuoi creare subito la subnet solo proxy:

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alle reti VPC

  2. Fai clic sul nome della rete VPC.
  3. Nella scheda Subnet, fai clic su Aggiungi subnet.
  4. Specifica un nome per la subnet solo proxy.
  5. Nell'elenco Regione, seleziona REGION_A.
  6. Nell'elenco Scopi, seleziona Proxy gestito tra regioni.
  7. Nel campo Intervallo di indirizzi IP, inserisci 10.129.0.0/23.
  8. Fai clic su Aggiungi.

Crea la subnet solo proxy in REGION_B

  1. Fai clic su Aggiungi subnet.
  2. Specifica un nome per la subnet solo proxy.
  3. Nell'elenco Regione, seleziona REGION_B.
  4. Nell'elenco Scopi, seleziona Proxy gestito tra regioni.
  5. Nel campo Intervallo di indirizzi IP, inserisci 10.130.0.0/23.
  6. Fai clic su Aggiungi.

gcloud

Crea le subnet solo proxy con il comando gcloud compute networks subnets create.

    gcloud compute networks subnets create PROXY_SN_A \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_A \
        --network=NETWORK \
        --range=PROXY_ONLY_SUBNET_RANGE1
    
    gcloud compute networks subnets create PROXY_SN_B \
        --purpose=GLOBAL_MANAGED_PROXY \
        --role=ACTIVE \
        --region=REGION_B \
        --network=NETWORK \
        --range=PROXY_ONLY_SUBNET_RANGE2
    

Sostituisci quanto segue:

  • PROXY_SN_A e PROXY_SN_B: il nome del server proxy subnet
  • PROXY_ONLY_SUBNET_RANGE1 e PROXY_ONLY_SUBNET_RANGE2: l'intervallo di indirizzi IP per le subnet solo proxy
  • REGION_A e REGION_B: le regioni in cui hai configurato il bilanciatore del carico

API

Crea le subnet solo proxy con il metodo subnetworks.insert, sostituendo PROJECT_ID con l'ID del tuo progetto.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks

    {
      "name": "PROXY_SN_A",
      "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE1",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_A",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
  
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks

    {
      "name": " PROXY_SN_B",
      "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE2",
      "network": "projects/PROJECT_ID/global/networks/NETWORK",
      "region": "projects/PROJECT_ID/regions/REGION_B",
      "purpose": "GLOBAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
  

Crea regole firewall

In questo esempio, crei le seguenti regole firewall per i backend NEG di zona su Google Cloud:

  • fw-allow-health-check: una regola in entrata, applicabile alle istanze sottoposte a bilanciamento del carico, che consente il traffico proveniente dai sistemi di controllo di integrità di Google Cloud (130.211.0.0/22 e 35.191.0.0/16). Questo esempio utilizza il tag target allow-health-check per identificare i NEG zonali a cui deve essere applicato.
  • fw-allow-ssh: una regola in entrata che consente la connettività SSH in entrata sulla porta TCP 22 da qualsiasi indirizzo. Puoi scegliere un intervallo IP di origine più restrittivo per questa regola; Ad esempio, puoi specificare solo gli intervalli IP dei sistemi da cui avvierai le sessioni SSH. Questo esempio utilizza il tag di destinazioneallow-ssh per identificare le VM a cui deve essere applicato.
  • fw-allow-proxy-only-subnet: una regola di ingresso che consente alle connessioni dalla subnet solo proxy di raggiungere i backend NEG zonali.

Console

  1. Nella console Google Cloud, vai alla pagina Criteri firewall.

    Vai a Criteri firewall

  2. Fai clic su Crea regola firewall per creare la regola che consente il traffico proveniente dai probe del controllo di integrità:

    1. Inserisci un nome per fw-allow-health-check.
    2. In Rete, seleziona NETWORK.
    3. In Target, seleziona Tag di destinazione specificati.
    4. Compila il campo Tag di destinazione con allow-health-check.
    5. Imposta Filtro di origine su Intervalli IPv4.
    6. Imposta Intervalli IPv4 di origine su 130.211.0.0/22 e 35.191.0.0/16.
    7. Per Protocolli e porte, seleziona Protocolli e porte specificati .
    8. Seleziona TCP e inserisci 80 per il numero di porta.
    9. Fai clic su Crea.
  3. Fai di nuovo clic su Crea regola firewall per creare la regola e consentire l'accesso Connessioni SSH:

    1. Nome: fw-allow-ssh
    2. Rete: NETWORK
    3. Priorità: 1000
    4. Direzione del traffico: in entrata
    5. Azione in caso di corrispondenza: consenti
    6. Target: Tag di destinazione specificati
    7. Tag di destinazione: allow-ssh
    8. Filtro di origine: intervalli IPv4
    9. Intervalli IPv4 di origine: 0.0.0.0/0
    10. Protocolli e porte: scegli Protocolli e porte specificati.
    11. Seleziona TCP e inserisci 22 per il numero di porta.
    12. Fai clic su Crea.
  4. Fai di nuovo clic su Crea regola firewall per creare la regola che consente le connessioni in entrata dalla subnet solo proxy:

    1. Nome: fw-allow-proxy-only-subnet
    2. Rete: NETWORK
    3. Priorità: 1000
    4. Direzione del traffico: in entrata
    5. Azione in caso di corrispondenza: consenti
    6. Target: Tag di destinazione specificati
    7. Tag di destinazione: allow-proxy-only-subnet
    8. Filtro di origine: intervalli IPv4
    9. Intervalli IPv4 di origine: PROXY_ONLY_SUBNET_RANGE1 e PROXY_ONLY_SUBNET_RANGE2
    10. Protocolli e porte: scegli Protocolli e porte specificati
    11. Seleziona TCP e inserisci 80 per il numero di porta.
    12. Fai clic su Crea.

gcloud

  1. Crea la regola fw-allow-health-check-and-proxy per consentire ai controlli di integrità di Google Cloud di raggiungere le istanze di backend sulla porta TCP 80:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. Crea la regola firewall fw-allow-ssh per consentire la connettività SSH a VM con il tag di rete allow-ssh. Se ometti source-ranges, Google Cloud interpreta la regola come qualsiasi origine.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. Crea una regola firewall di autorizzazione in entrata per la subnet solo proxy per consentire al bilanciatore del carico per comunicare con le istanze di backend sulla porta TCP 80:

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE1,PROXY_ONLY_SUBNET_RANGE2 \
        --rules=tcp:80
    

Configura il NEG a livello di zona

Per i backend basati su Google Cloud, ti consigliamo di configurare più NEG zonali nella stessa regione in cui hai configurato la connettività ibrida.

Per questo esempio, abbiamo configurato un NEG a livello di zona (con endpoint di tipo GCE_VM_IP_PORT) nel REGION1. Innanzitutto, crea le VM nella zona NEG_ZONE1. Quindi, crea un NEG a livello di zona in NEG_ZONE2 e aggiungi gli endpoint di rete delle VM al NEG. Per supportare l'alta disponibilità, abbiamo configurato un NEG zonale simile nella regione REGION2. Se i backend in una regione sono inattivi, il failover del traffico viene eseguito verso nell'altra regione.

Crea VM

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Ripeti i passaggi da 3 a 8 per ogni VM utilizzando le seguenti combinazioni di nome e zona.

    • Nome: di vm-a1
      • Zona: NEG_ZONE1 nella regione REGION_A
      • Subnet: SUBNET_A
    • Nome: di vm-b1
      • Zona: NEG_ZONE2 nella regione REGION_B
      • Subnet: SUBNET_B
  3. Fai clic su Crea istanza.

  4. Imposta il nome come indicato nel passaggio precedente.

  5. Per l'opzione Regione, scegli come indicato nel passaggio precedente.

  6. Per Zona, scegli come indicato nel passaggio precedente.

  7. Nella sezione Disco di avvio, assicurati che Per il disco di avvio è selezionata l'opzione Debian GNU/Linux 12 (bookworm) le opzioni di CPU e memoria disponibili. Fai clic su Scegli per modificare l'immagine, se necessario.

  8. Nella sezione Opzioni avanzate, espandi Networking e segui questi passaggi:

    • Aggiungi i seguenti tag di rete: allow-ssh, allow-health-check e allow-proxy-only-subnet.
    • Nella sezione Interfacce di rete, fai clic su Aggiungi un'interfaccia di rete, apporta le seguenti modifiche e poi fai clic su Fine:
      • Rete: NETWORK
      • Subnet: come indicato nel passaggio precedente.
      • IP interno principale: Temporaneo (automatico)
      • IP esterno: Temporaneo
    • Espandi Gestione. Nel campo Automazione, copia e incolla i seguenti contenuti dello script. I contenuti dello script sono identici tutte le VM:

      #! /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
      
  9. Fai clic su Crea.

gcloud

Crea le VM eseguendo questo comando, utilizzando queste combinazioni per il nome della VM e della sua zona. I contenuti dello script sono identici per entrambe le VM.

  • VM_NAME di vm-a1
    • La zona GCP_NEG_ZONE come NEG_ZONE1 nella regione REGION_A
    • La subnet LB_SUBNET_NAME come SUBNET_A
  • VM_NAME di vm-b1

    • ZonaGCP_NEG_ZONE come NEG_ZONE2 nella regione REGION_B
    • Subnet LB_SUBNET_NAME come SUBNET_B
    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --subnet=LB_SUBNET_NAME \
        --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'
    

Crea il NEG a livello di zona

Console

Per creare un gruppo di endpoint di rete a livello di zona:

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

    Vai a Gruppi di endpoint di rete

  2. Ripeti i passaggi da 3 a 8 per ogni NEG zonale, utilizzando le seguenti combinazioni di nome e zona:

    • Nome: neg-1
      • Zona: NEG_ZONE1 in regione REGION_A
      • Subnet: SUBNET_A
    • Nome: neg-2
      • Zona: NEG_ZONE2 in regione REGION_B
      • Subnet: SUBNET_B
  3. Fai clic su Crea gruppo di endpoint di rete.

  4. Imposta il nome come indicato nel passaggio precedente.

  5. Seleziona il Tipo di gruppo di endpoint di rete: Gruppo di endpoint di rete. (a livello di zona).

  6. Seleziona la Rete: NETWORK

  7. Seleziona la Subnet come indicato nel passaggio precedente.

  8. Seleziona la Zona come indicato nel passaggio precedente.

  9. Inserisci il valore in Porta predefinita: 80.

  10. Fai clic su Crea.

Aggiungi endpoint al NEG zonale:

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

    Vai a Gruppi di endpoint di rete

  2. Fai clic sul nome del gruppo di endpoint di rete creato nella precedente passaggio. Tu consulta la pagina Dettagli gruppo di endpoint di rete.

  3. Nella sezione Endpoint di rete in questo gruppo, fai clic su Aggiungi endpoint di rete. Viene visualizzata la pagina Aggiungi endpoint di rete.

  4. Seleziona un'istanza VM per aggiungere i relativi indirizzi IP interni come endpoint di rete. Nella sezione Interfaccia di rete, il nome, la zona e la subnet della VM.

  5. Inserisci l'indirizzo IP del nuovo endpoint di rete.

  6. Seleziona il Tipo di porta.

    1. Se selezioni Predefinito, l'endpoint utilizza la porta predefinita 80 per tutti gli endpoint nel gruppo di endpoint di rete. È sufficiente del nostro esempio, perché il server Apache gestisce le richieste porta 80.
    2. Se selezioni Personalizzato, inserisci il Numero di porta per l'endpoint per l'utilizzo.
  7. Per aggiungere altri endpoint, fai clic su Aggiungi endpoint di rete e ripeti i passaggi precedenti.

  8. Dopo aver aggiunto tutti gli endpoint, fai clic su Crea.

gcloud

  1. Crea NEG di zona (con endpoint GCE_VM_IP_PORT) utilizzando le combinazioni di nome, zona e subnet. Utilizza il comando gcloud compute network-endpoint-groups create.

    • Nome: neg-1
      • Zona GCP_NEG_ZONE: NEG_ZONE1 in regione REGION_A
      • Subnet LB_SUBNET_NAME: SUBNET_A
    • Nome: neg-2
      • Zona GCP_NEG_ZONE: NEG_ZONE2 in regione REGION_B
      • Subnet LB_SUBNET_NAME: SUBNET_B
    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    Puoi specificare una porta utilizzando l'opzione --default-port durante la creazione del NEG oppure specificare un numero porta per ogni endpoint come mostrato nel passaggio successivo.

  2. Aggiungi endpoint a neg1 e neg2.

    gcloud compute network-endpoint-groups update neg1 \
        --zone=NEG_ZONE1 \
        --add-endpoint='instance=vm-a1,port=80'
    
    gcloud compute network-endpoint-groups update neg2 \
        --zone=NEG_ZONE2 \
        --add-endpoint='instance=vm-b1,port=80'
    

Configura il NEG di connettività ibrida

Quando crei il NEG, utilizza una zona che minimizzi il traffico distanza tra Google Cloud e la tua rete on-premise o un altro completamente gestito di Google Cloud.

Inoltre, se utilizzi Cloud Interconnect, la zona utilizzata per creare il NEG si trova nella stessa regione in cui è stato configurato il collegamento Cloud Interconnect.

I NEG ibridi supportano solo l'integrità di Envoy distribuita controlli.

Console

Per creare un gruppo di endpoint di rete con connettività ibrida:

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

    Vai a Gruppi di endpoint di rete

  2. Fai clic su Crea gruppo di endpoint di rete.

  3. Ripeti i passaggi da 4 a 9 per ogni NEG ibrida, utilizzando le seguenti combinazioni di nome e zona.

    • Nome ON_PREM_NEG_NAME: hybrid-1
      • Zona: ON_PREM_NEG_ZONE1
      • Subnet: SUBNET_A
    • Nome ON_PREM_NEG_NAME: hybrid-2
      • Zona: ON_PREM_NEG_ZONE2
      • Subnet: SUBNET_B
  4. Imposta il nome come indicato nel passaggio precedente.

  5. Seleziona il tipo di gruppo di endpoint di rete: Gruppo di endpoint di rete con connettività ibrida (a livello di zona).

  6. Seleziona la rete: NETWORK

  7. Per Subnet, scegli come indicato nel passaggio precedente.

  8. Per Zona, scegli come indicato nel passaggio precedente.

  9. Inserisci la Porta predefinita.

  10. Fai clic su Crea

Aggiungi endpoint al NEG di connettività ibrida:

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

    Vai a Gruppi di endpoint di rete

  2. Fai clic sul nome del gruppo di endpoint di rete creato nella precedente passaggio. Viene visualizzata la pagina Dettagli gruppo di endpoint di rete.

  3. Nella sezione Endpoint di rete in questo gruppo, fai clic su Aggiungi endpoint di rete. Viene visualizzata la pagina Aggiungi endpoint di rete.

  4. Inserisci l'indirizzo IP del nuovo endpoint di rete.

  5. Seleziona il Tipo di porta.

    1. Se selezioni Predefinita, l'endpoint utilizza la porta predefinita per tutti gli endpoint nel gruppo di endpoint di rete.
    2. Se selezioni Personalizzato, puoi inserire un numero di porta diverso per l'endpoint.
  6. Per aggiungere altri endpoint, fai clic su Aggiungi endpoint di rete e ripeti i passaggi precedenti.

  7. Dopo aver aggiunto tutti gli endpoint non Google Cloud, fai clic su Crea.

gcloud

  1. Crea un NEG di connettività ibrida che utilizzi le seguenti combinazioni di nomi. Utilizza il comando gcloud compute network-endpoint-groups create.

    • Nome ON_PREM_NEG_NAME: hybrid-1
      • Zona ON_PREM_NEG_ZONE: ON_PREM_NEG_ZONE1
    • Nome ON_PREM_NEG_NAME: hybrid-2
      • Zona GCP_NEG_ZONE: ON_PREM_NEG_ZONE2
    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. Aggiungi l'endpoint VM di backend on-premise a ON_PREM_NEG_NAME:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

Puoi utilizzare questo comando per aggiungere gli endpoint di rete che hai usato in precedenza configurati on-premise o nel tuo ambiente cloud. Ripeti --add-endpoint tutte le volte necessarie.

Configura il bilanciatore del carico

Console

gcloud

  1. Definisci il controllo di integrità TCP con il comando gcloud compute health-checks create tcp.

    gcloud compute health-checks create tcp gil4-basic-check \
       --use-serving-port \
       --global
    
  2. Crea il servizio di backend e abilita il logging con il comando gcloud compute backend-services create.

    gcloud compute backend-services create BACKEND_SERVICE \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=TCP \
      --enable-logging \
      --logging-sample-rate=1.0 \
      --health-checks=gil4-basic-check \
      --global-health-checks \
      --global
    
  3. Aggiungi backend al servizio di backend con il comando gcloud compute backend-services add-backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE \
      --global \
      --balancing-mode=CONNECTION \
      --max-connections-per-endpoint=MAX_CONNECTIONS \
      --network-endpoint-group=neg1 \
      --network-endpoint-group-zone=NEG_ZONE1 \
      --network-endpoint-group=neg2 \
      --network-endpoint-group-zone=NEG_ZONE2
    

    Per maggiori dettagli su configurazione della modalità di bilanciamento, consulta la documentazione della gcloud CLI per il flag --max-connections-per-endpoint. Per MAX_CONNECTIONS, inserisci il numero massimo di connessioni contemporaneamente gestibili dal backend.

  4. Aggiungi i NEG ibridi come backend al servizio di backend.

    gcloud compute backend-services add-backend BACKEND_SERVICE \
      --global \
      --balancing-mode=CONNECTION \
      --max-connections-per-endpoint=MAX_CONNECTIONS \
      --network-endpoint-group=hybrid1 \
      --network-endpoint-group-zone=ON_PREM_NEG_ZONE1 \
      --network-endpoint-group=hybrid2 \
      --network-endpoint-group-zone=ON_PREM_NEG_ZONE2 \
    

    Per maggiori dettagli sulla configurazione della modalità di bilanciamento, consulta la documentazione della CLI gcloud relativa al parametro --max-connections-per-endpoint. Per MAX_CONNECTIONS, inserisci il numero massimo di istanze simultanee gestite dal backend.

  5. Crea il proxy di destinazione.

    Crea il proxy di destinazione con il comando gcloud compute target-tcp-proxies create.

    gcloud compute target-tcp-proxies create gil4-tcp-proxy \
      --url-map=gil4-map \
      --global
    
  6. Crea due regole di inoltro, una con un VIPIP_ADDRESS1 inREGION_A e un'altra con un VIP IP_ADDRESS2inREGION_B. Per l'indirizzo IP della regola di forwarding, utilizza il metodo LB_SUBNET_RANGE1 o LB_SUBNET_RANGE2 IP di indirizzi IP esterni. Se provi a utilizzare subnet solo proxy, la creazione della regola di forwarding non riesce.

    Per le reti personalizzate, devi fare riferimento alla subnet nella regola di inoltro. Tieni presente che questa è la subnet della VM, non la subnet proxy.

    Utilizza il comando gcloud compute forwarding-rules create con i flag corretti.

    gcloud compute forwarding-rules create gil4-forwarding-rule-a \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_A \
      --subnet-region=REGION_A \
      --address=IP_ADDRESS1 \
      --ports=80 \
      --target-tcp-proxy=gil4-tcp-proxy \
      --global
    
    gcloud compute forwarding-rules create gil4-forwarding-rule-b \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET_B \
      --subnet-region=REGION_B \
      --address=IP_ADDRESS2 \
      --ports=80 \
      --target-tcp-proxy=gil4-tcp-proxy \
      --global
    

Testa il bilanciatore del carico

Crea un'istanza VM per testare la connettività

  1. Crea VM client nelle regioni REGION_A e REGION_B:

    gcloud compute instances create l4-ilb-client-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=NETWORK \
        --subnet=SUBNET_A \
        --zone=NEG_ZONE1 \
        --tags=allow-ssh
    
    gcloud compute instances create l4-ilb-client-b \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --network=NETWORK \
        --subnet=SUBNET_B \
        --zone=NEG_ZONE2 \
        --tags=allow-ssh
    
  2. Utilizza SSH per connetterti a ogni istanza client.

    gcloud compute ssh l4-ilb-client-a \
       --zone=NEG_ZONE1
    
    gcloud compute ssh l4-ilb-client-b \
       --zone=NEG_ZONE2
    
  3. Verifica che l'indirizzo IP utilizzi il suo nome host.

    • Verifica che la VM client possa raggiungere entrambi gli indirizzi IP. Il comando dovrebbe riuscire e restituire il nome della VM di backend che ha gestito la richiesta:

      curl IP_ADDRESS1
      
      curl IP_ADDRESS2
      

Esegui 100 richieste

Esegui 100 richieste curl e verifica dalle risposte che il carico è bilanciato.

  • Verifica che la VM client possa raggiungere entrambi gli indirizzi IP. Il comando dovrebbe riuscire e restituire il nome della VM di backend che ha gestito la richiesta:

    {
      RESULTS=
      for i in {1..100}
      do
        RESULTS="$RESULTS:$(curl --silent IP_ADDRESS1)"
      done
      echo "***"
      echo "*** Results of load-balancing to IP_ADDRESS1: "
      echo "***"
      echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
      echo
    }
    
    {
      RESULTS=
      for i in {1..100}
      do
        RESULTS="$RESULTS:$(curl --silent IP_ADDRESS2)"
      done
      echo "***"
      echo "*** Results of load-balancing to IP_ADDRESS2: "
      echo "***"
      echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
      echo
    }
    

Test del failover

  1. Verifica il failover ai backend nella regione REGION_A quando i backend nella regione REGION_B non sono operativi o non sono raggiungibili. Simuliamo questo comportamento rimuovendo tutti backend di REGION_B:

    gcloud compute backend-services remove-backend BACKEND_SERVICE \
       --balancing-mode=CONNECTION \
       --network-endpoint-group=neg2 \
       --network-endpoint-group-zone=NEG_ZONE2
    
  2. Utilizza SSH per connetterti alla VM client in REGION_B.

    gcloud compute ssh l4-ilb-client-b \
       --zone=NEG_ZONE2
    
  3. Invia richieste all'indirizzo IP bilanciato in base al carico nella regione REGION_B. L'output del comando dovrebbe mostrare le risposte delle VM di backend in REGION_A:

    {
    RESULTS=
    for i in {1..100}
    do
      RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS2:443)"
    done
    echo "***"
    echo "*** Results of load-balancing to IP_ADDRESS2: "
    echo "***"
    echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
    echo
    }
    

Passaggi successivi