Questa pagina mostra come eseguire il deployment di un bilanciatore del carico di rete proxy interno tra regioni per bilanciare il carico del traffico verso endpoint di rete on-premise o in altri cloud pubblici e raggiungibili tramite la connettività ibrida.
Se non l'hai ancora fatto, consulta la panoramica dei NEG di connettività ibrida per comprendere i requisiti di rete per configurare il bilanciamento del carico ibrido.
Panoramica della configurazione
L'esempio configura un bilanciatore del carico di rete proxy interno tra regioni per i backend NEG di connettività ibrida e di zona mista, come mostrato nella figura seguente:
Devi configurare la connettività ibrida prima di impostare un deployment del bilanciamento del carico ibrido. A seconda del prodotto di connettività ibrida che scegli, utilizza Cloud VPN o Cloud Interconnect (dedicato o partner).
Autorizzazioni
Per configurare il bilanciamento del carico ibrido, devi disporre delle seguenti autorizzazioni:
On Google Cloud
- Autorizzazioni per stabilire la connettività ibrida tra Google Cloud e il tuo ambiente on-premise o 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 bilanciamento del carico di Compute
(
roles/compute.loadBalancerAdmin) contiene le autorizzazioni necessarie per eseguire le attività descritte in questa guida.
Nel tuo ambiente on-premise o in un altro ambiente cloud non-Google Cloud
- Autorizzazioni per configurare endpoint di rete che consentono ai servizi nel tuo ambiente on-premise o in altri ambienti cloud di essere raggiungibili daGoogle Cloud utilizzando una combinazione di
IP:Port. Per ulteriori informazioni, contatta l'amministratore di rete del tuo ambiente. - Autorizzazioni per creare regole firewall nel tuo ambiente on-premise o in altri ambienti cloud per consentire ai probe di controllo di integrità di Google di raggiungere gli endpoint.
- Autorizzazioni per configurare endpoint di rete che consentono ai servizi nel tuo ambiente on-premise o in altri ambienti cloud di essere raggiungibili daGoogle Cloud utilizzando una combinazione di
Inoltre, per completare le istruzioni riportate in questa pagina, devi creare un NEG di connettività ibrida, un bilanciatore del carico e NEG di zona (e i relativi endpoint) da utilizzare come backend basati su Google Cloudper il bilanciatore del carico.
Devi avere il ruolo di proprietario o editor del progetto oppure disporre dei seguenti ruoli IAM di Compute Engine.
| Attività | Ruolo richiesto |
|---|---|
| Crea reti, subnet e componenti del bilanciatore del carico | Compute Network Admin
(roles/compute.networkAdmin) |
| Aggiungere e rimuovere regole firewall | Compute Security Admin
(roles/compute.securityAdmin) |
| Creare istanze | Compute Instance Admin
(roles/compute.instanceAdmin) |
(Facoltativo) Utilizza indirizzi BYOIP
Con Bring Your Own IP (BYOIP), puoi importare i tuoi indirizzi pubblici inGoogle Cloud per utilizzarli con le risorse Google Cloud . Ad esempio, se importi i tuoi indirizzi IPv4, puoi assegnarne uno alla regola di forwarding quando configuri il bilanciatore del carico. Quando segui le istruzioni riportate in questo documento per , fornisci l'indirizzo BYOIP come indirizzo IP.
Per saperne di più sull'utilizzo di BYOIP, consulta Bring Your Own IP.
Stabilisci la connettività ibrida
Il tuo ambiente Google Cloud e on-premise o altri ambienti cloud devono essere connessi tramite connettività ibrida utilizzando collegamenti VLAN Cloud Interconnect o tunnel Cloud VPN con VM router Cloud o appliance router. Ti consigliamo di utilizzare una connessione ad alta disponibilità.
Un router Cloud abilitato con il routing dinamico globale apprende l'endpoint specifico tramite il protocollo Border Gateway Protocol (BGP) e lo programma nella rete VPC Google Cloud . Il routing dinamico regionale non è supportato. Anche le route statiche non sono supportate.
Puoi utilizzare la stessa rete o una rete VPC diversa all'interno dello stesso progetto per configurare sia il networking ibrido (Cloud Interconnect o Cloud VPN o una VM appliance router) sia il bilanciatore del carico. Nota quanto segue:
Se utilizzi reti VPC diverse, le due reti devono essere connesse tramite il peering di rete VPC oppure devono essere spoke VPC nello stesso hub NCC.
Se utilizzi la stessa rete VPC, assicurati che gli intervalli CIDR della subnet della rete VPC non siano in conflitto con gli intervalli CIDR remoti. Quando gli indirizzi IP si sovrappongono, le route di subnet hanno la priorità sulla connettività remota.
Per istruzioni, consulta la seguente documentazione:
Configura l'ambiente esterno a Google Cloud
Per configurare l'ambiente on-premise o un altro ambiente cloud 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 firewall nel tuo ambiente on-premise o in un altro ambiente cloud.
- Configura il router Cloud per annunciare determinate route richieste al tuo ambiente privato.
Configura endpoint di rete
Dopo aver configurato la connettività ibrida, configuri uno o più endpoint di rete all'interno del tuo ambiente on-premise o di altri ambienti cloud raggiungibili tramite Cloud Interconnect o Cloud VPN o appliance router utilizzando una combinazione IP:port. Questa combinazione IP:port
è configurata come uno o più endpoint per il NEG di connettività ibrida
che viene creato in Google Cloud in un secondo momento di questa procedura.
Se esistono più percorsi per l'endpoint IP, il routing segue il comportamento descritto nella panoramica del router Cloud.
Configura le regole firewall
Le seguenti regole firewall devono essere create nel tuo ambiente on-premise o in un altro ambiente cloud:
- Crea una regola firewall di autorizzazione in entrata in ambienti on-premise o in altri cloud per consentire al traffico dalla subnet solo proxy della regione di raggiungere gli endpoint.
L'autorizzazione del traffico dagli intervalli di probe del controllo di integrità di Google non è obbligatoria per i NEG ibridi. Tuttavia, se utilizzi una combinazione di NEG ibridi e zonali in un unico servizio di backend, devi consentire il traffico dagli intervalli di probecontrollo di integritào dell'integrità di Google per i NEG zonali.
Pubblicizza route
Configura il router Cloud per annunciare i seguenti intervalli IP personalizzati al tuo ambiente on-premise o a un altro ambiente cloud:
- L'intervallo della subnet solo proxy della regione.
Configura l'ambiente Google Cloud
Per i passaggi seguenti, assicurati di utilizzare la stessa rete VPC (denominata NETWORK in questa procedura) utilizzata per configurare la connettività ibrida tra gli ambienti.
Inoltre, assicurati che le regioni utilizzate (denominate REGION_A e REGION_B in questa procedura) siano le stesse utilizzate per creare il tunnel Cloud VPN 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
Nella console Google Cloud , vai alla pagina Reti VPC.
Vai alla rete utilizzata per configurare la connettività ibrida tra gli ambienti.
Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le seguenti informazioni:
- Specifica un Nome per la subnet.
- Seleziona una regione: REGION_A
- Inserisci un Intervallo di indirizzi IP.
- Fai clic su Fine.
Fai clic su Crea.
Per aggiungere altre subnet in regioni diverse, fai clic su Aggiungi subnet e ripeti i passaggi precedenti per REGION_B.
gcloud
Crea subnet 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_Agcloud 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 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 l'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_AeSUBNET_B: il nome delle subnetLB_SUBNET_RANGE1eLB_SUBNET_RANGE2: l'intervallo di indirizzi IP per le subnetREGION_AeREGION_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 i 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ò esserci una sola subnet solo proxy attiva per un determinato scopo, per regione e per rete.
Console
Se utilizzi la console Google Cloud , puoi attendere e creare la subnet solo proxy in un secondo momento nella pagina Bilanciamento del carico.
Se vuoi creare subito la subnet solo proxy, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Reti VPC.
- Fai clic sul nome della rete VPC.
- Nella scheda Subnet, fai clic su Aggiungi subnet.
- Specifica un Nome per la subnet solo proxy.
- Nell'elenco Regione, seleziona REGION_A.
- Nell'elenco Scopo, seleziona Proxy gestito cross-region.
- Nel campo Intervallo di indirizzi IP, inserisci
10.129.0.0/23. - Fai clic su Aggiungi.
Crea la subnet solo proxy in REGION_B
- Fai clic su Aggiungi subnet.
- Specifica un Nome per la subnet solo proxy.
- Nell'elenco Regione, seleziona REGION_B.
- Nell'elenco Scopo, seleziona Proxy gestito cross-region.
- Nel campo Intervallo di indirizzi IP, inserisci
10.130.0.0/23. - 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_AePROXY_SN_B: il nome delle subnet solo proxyPROXY_ONLY_SUBNET_RANGE1ePROXY_ONLY_SUBNET_RANGE2: l'intervallo di indirizzi IP per le subnet solo proxyREGION_AeREGION_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 il tuo ID 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 a livello di zona su Google Cloud:
fw-allow-health-check: una regola in entrata, applicabile alle istanze con bilanciamento del carico, che consente il traffico dai sistemi di controllo di integritàGoogle Cloud (130.211.0.0/22e35.191.0.0/16). Questo esempio utilizza il tag di destinazioneallow-health-checkper identificare i NEG di zona a cui deve essere applicata.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 di indirizzi IP di origine più restrittivo per questa regola. Ad esempio, puoi specificare solo gli intervalli IP dei sistemi da cui inizierai le sessioni SSH. Questo esempio utilizza il tag di destinazioneallow-sshper 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
Nella console Google Cloud , vai alla pagina Policy del firewall.
Fai clic su Crea regola firewall per creare la regola che consente il traffico proveniente dai probe del controllo di integrità:
- Inserisci un nome di
fw-allow-health-check. - In Rete, seleziona NETWORK.
- In Destinazioni, seleziona Tag di destinazione specificati.
- Compila il campo Tag di destinazione con
allow-health-check. - Imposta Filtro di origine su Intervalli IPv4.
- Imposta Intervalli IPv4 di origine su
130.211.0.0/22e35.191.0.0/16. - In Protocolli e porte, seleziona Protocolli e porte specificati.
- Seleziona TCP, quindi inserisci
80per il numero di porta. - Fai clic su Crea.
- Inserisci un nome di
Fai di nuovo clic su Crea regola firewall per creare la regola per consentire le connessioni SSH in entrata:
- Nome:
fw-allow-ssh - Rete: NETWORK
- Priorità:
1000 - 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 TCP, quindi inserisci
22per il numero di porta. - Fai clic su Crea.
- Nome:
Fai di nuovo clic su Crea regola firewall per creare la regola che consente le connessioni in entrata dalla subnet solo proxy:
- Nome:
fw-allow-proxy-only-subnet - Rete: NETWORK
- Priorità:
1000 - Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-proxy-only-subnet - Filtro di origine: intervalli IPv4
- Intervalli IPv4 di origine: PROXY_ONLY_SUBNET_RANGE1 e PROXY_ONLY_SUBNET_RANGE2
- Protocolli e porte: scegli Protocolli e porte specificati
- Seleziona TCP, quindi inserisci
80per il numero di porta. - Fai clic su Crea.
- Nome:
gcloud
Crea la regola
fw-allow-health-check-and-proxyper consentire ai controlli di integrità Google Cloud di raggiungere le istanze di backend sulla porta TCP80: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:80Crea la regola firewall
fw-allow-sshper consentire la connettività SSH alle VM con il tag di reteallow-ssh. Se omettisource-ranges, Google Cloud interpreta la regola in modo che si riferisca a qualsiasi origine.gcloud compute firewall-rules create fw-allow-ssh \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22Crea una regola firewall di autorizzazione in entrata per la subnet solo proxy per consentire al bilanciatore del carico di 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 zonale (con endpoint di tipo GCE_VM_IP_PORT)
in REGION1. Crea prima le VM nella zona NEG_ZONE1. Poi
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 non sono attivi, il traffico viene sottoposto a failover nell'altra regione.
Crea VM
Console
Nella console Google Cloud , vai alla pagina Istanze VM.
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
- Nome: di
Fai clic su Crea istanza.
Imposta il nome come indicato nel passaggio precedente.
Per Regione, scegli come indicato nel passaggio precedente.
Per la zona, scegli come indicato nel passaggio precedente.
Nella sezione Disco di avvio, assicurati che per le opzioni del disco di avvio sia selezionata l'opzione Debian GNU/Linux 12 (bookworm). Fai clic su Scegli per modificare l'immagine, se necessario.
Nella sezione Opzioni avanzate, espandi Networking e segui questi passaggi:
- Aggiungi i seguenti Tag di rete:
allow-ssh,allow-health-checkeallow-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 per 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
- Aggiungi i seguenti Tag di rete:
Fai clic su Crea.
gcloud
Crea le VM eseguendo il seguente comando, utilizzando queste combinazioni per il nome della VM e della relativa zona. I contenuti dello script sono identici per entrambe le VM.
VM_NAMEdivm-a1- La zona
GCP_NEG_ZONEcome NEG_ZONE1 nella regioneREGION_A - La subnet
LB_SUBNET_NAMEcome SUBNET_A
- La zona
VM_NAMEdivm-b1- Zona
GCP_NEG_ZONEcome NEG_ZONE2 nella regioneREGION_B - Subnet
LB_SUBNET_NAMEcome 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'- Zona
Crea il NEG a livello di zona
Console
Per creare un gruppo di endpoint di rete a livello di zona:
Nella console Google Cloud , vai alla pagina Gruppi di endpoint di rete.
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 nella
regione
REGION_A - Subnet: SUBNET_A
- Zona: NEG_ZONE1 nella
regione
- Nome:
neg-2- Zona: NEG_ZONE2 nella
regione
REGION_B - Subnet: SUBNET_B
- Zona: NEG_ZONE2 nella
regione
- Nome:
Fai clic su Crea gruppo di endpoint di rete.
Imposta il nome come indicato nel passaggio precedente.
Seleziona Tipo di gruppo di endpoint di rete: Gruppo di endpoint di rete (a livello di zona).
Seleziona la rete: NETWORK
Seleziona la subnet come indicato nel passaggio precedente.
Seleziona la zona come indicato nel passaggio precedente.
Inserisci la Porta predefinita:
80.Fai clic su Crea.
Aggiungi endpoint al NEG di zona:
Nella console Google Cloud , vai alla pagina Gruppi di endpoint di rete.
Fai clic sul nome del gruppo di endpoint di rete creato nel passaggio precedente. Viene visualizzata la pagina Dettagli gruppo di endpoint di rete.
Nella sezione Endpoint di rete in questo gruppo, fai clic su Aggiungi endpoint di rete. Viene visualizzata la pagina Aggiungi endpoint di rete.
Seleziona un'istanza VM per aggiungere i relativi indirizzi IP interni come endpoint di rete. Nella sezione Interfaccia di rete vengono visualizzati il nome, la zona e la subnet della VM.
Inserisci l'indirizzo IP del nuovo endpoint di rete.
Seleziona il Tipo di porta.
- Se selezioni Predefinito, l'endpoint utilizza la porta predefinita
80per tutti gli endpoint nel gruppo di endpoint di rete. Questo è sufficiente per il nostro esempio perché il server Apache gestisce le richieste sulla porta80. - Se selezioni Personalizzato, inserisci il Numero di porta per l'endpoint da utilizzare.
- Se selezioni Predefinito, l'endpoint utilizza la porta predefinita
Per aggiungere altri endpoint, fai clic su Aggiungi endpoint di rete e ripeti i passaggi precedenti.
Dopo aver aggiunto tutti gli endpoint, fai clic su Crea.
gcloud
Crea NEG di zona (con endpoint
GCE_VM_IP_PORT) utilizzando le combinazioni di nome, zona e subnet. Utilizza il comandogcloud compute network-endpoint-groups create.- Nome:
neg-1- Zona
GCP_NEG_ZONE: NEG_ZONE1 nella regioneREGION_A - Subnet
LB_SUBNET_NAME: SUBNET_A
- Zona
- Nome:
neg-2- Zona
GCP_NEG_ZONE: NEG_ZONE2 nella regioneREGION_B - Subnet
LB_SUBNET_NAME: SUBNET_B
- Zona
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_NAMEPuoi specificare una porta utilizzando l'opzione
--default-portdurante la creazione del NEG oppure specificare un numero di porta per ogni endpoint come mostrato nel passaggio successivo.- Nome:
Aggiungi endpoint a
neg1eneg2.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 riduca al minimo la distanza geografica tra Google Cloud e il tuo ambiente on-premise o un altro ambiente 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 i controlli di integrità Envoy distribuiti.
Console
Per creare un gruppo di endpoint di rete con connettività ibrida:
Nella console Google Cloud , vai alla pagina Gruppi di endpoint di rete.
Fai clic su Crea gruppo di endpoint di rete.
Ripeti i passaggi da 4 a 9 per ogni NEG ibrido, 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
- Nome ON_PREM_NEG_NAME:
Imposta il nome come indicato nel passaggio precedente.
Seleziona il Tipo di gruppo di endpoint di rete: Gruppo di endpoint di rete con connettività ibrida (a livello di zona).
Seleziona la rete: NETWORK
Per la subnet, scegli come indicato nel passaggio precedente.
Per la Zona, scegli come indicato nel passaggio precedente.
Inserisci la Porta predefinita.
Fai clic su Crea
Aggiungi endpoint al NEG di connettività ibrida:
Nella console Google Cloud , vai alla pagina Gruppi di endpoint di rete.
Fai clic sul nome del gruppo di endpoint di rete creato nel passaggio precedente. Viene visualizzata la pagina Dettagli gruppo di endpoint di rete.
Nella sezione Endpoint di rete in questo gruppo, fai clic su Aggiungi endpoint di rete. Viene visualizzata la pagina Aggiungi endpoint di rete.
Inserisci l'indirizzo IP del nuovo endpoint di rete.
Seleziona il Tipo di porta.
- Se selezioni Predefinito, l'endpoint utilizza la porta predefinita per tutti gli endpoint nel gruppo di endpoint di rete.
- Se selezioni Personalizzato, puoi inserire un numero di porta diverso da utilizzare per l'endpoint.
Per aggiungere altri endpoint, fai clic su Aggiungi endpoint di rete e ripeti i passaggi precedenti.
Dopo aver aggiunto tutti gli endpoint nonGoogle Cloud , fai clic su Crea.
gcloud
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
- Zona
- Nome
ON_PREM_NEG_NAME:hybrid-2- Zona
GCP_NEG_ZONE: ON_PREM_NEG_ZONE2
- Zona
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- Nome
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 configurato in precedenza on-premise o nel tuo ambiente cloud.
Ripeti --add-endpoint tutte le volte necessarie.
Configura il bilanciatore del carico
Console
gcloud
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
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
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 informazioni dettagliate sulla configurazione della modalità di bilanciamento, consulta la documentazione di gcloud CLI per il flag
--max-connections-per-endpoint. Per MAX_CONNECTIONS, inserisci il numero massimo di connessioni simultanee che il backend deve gestire.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 i dettagli sulla configurazione della modalità di bilanciamento, consulta la documentazione di gcloud CLI per il parametro
--max-connections-per-endpoint. PerMAX_CONNECTIONS, inserisci il numero massimo di connessioni simultanee che il backend deve gestire.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 \ --backend-service=BACKEND_SERVICE \ --global
Crea due regole di forwarding, una con un VIP IP_ADDRESS1 in REGION_A e un'altra con un VIP IP_ADDRESS2 in
REGION_B. Per l'indirizzo IP della regola di forwarding, utilizza l'intervallo di indirizzi IP LB_SUBNET_RANGE1 o LB_SUBNET_RANGE2. Se provi a utilizzare la subnet solo proxy, la creazione della regola di forwarding non va a buon fine.Per le reti personalizzate, devi fare riferimento alla subnet nella regola di inoltro. Tieni presente che si tratta della subnet della VM, non della subnet del proxy.
Utilizza il comando
gcloud compute forwarding-rules createcon 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à
Crea VM client nelle regioni
REGION_AeREGION_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-sshgcloud 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-sshUtilizza 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
Verifica che l'indirizzo IP stia gestendo il proprio 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 sia 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 }
Testa il failover
Verifica il failover ai backend nella regione
REGION_Aquando i backend nella regioneREGION_Bnon sono integri o non sono raggiungibili. Simuliamo questa situazione rimuovendo tutti i backend daREGION_B:gcloud compute backend-services remove-backend BACKEND_SERVICE \ --balancing-mode=CONNECTION \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
Utilizza SSH per connetterti alla VM client in
REGION_B.gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
Invia richieste all'indirizzo IP bilanciato del carico nella regione
REGION_B. L'output del comando dovrebbe mostrare le risposte delle VM di backend inREGION_A.{ 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 }
Passaggi successivi
- Converti il bilanciatore del carico di rete proxy in IPv6
- Panoramica del bilanciatore del carico di rete proxy interno
- Subnet solo proxy per i bilanciatori del carico basati su Envoy
- Pulizia di una configurazione di bilanciamento del carico