In Google Cloud, puoi integrare appliance di terze parti in modo scalabile e a disponibilità elevata. Per farlo, configura una route statica e imposta il suo hop successivo sul bilanciatore del carico di rete passthrough interno Google Cloud . Ciò consente al bilanciatore del carico di bilanciare il carico del traffico per un prefisso di destinazione in un pool di appliance VM di terze parti con controllo di integrità.
Questa guida utilizza un esempio per insegnarti a configurare un bilanciatore del carico di rete passthrough interno in modo che sia un hop successivo. Prima di seguire questa guida, acquisisci familiarità con gli argomenti seguenti:
- Concetti relativi al bilanciatore del carico di rete passthrough interno
- Bilanciatori del carico di rete passthrough interni come hop successivi
Autorizzazioni
Per seguire questa guida, devi creare istanze e modificare una rete in un progetto. Devi avere il ruolo di proprietario o editor del progetto oppure disporre di tutti i seguenti ruoli IAM di Compute Engine:
| Attività | Ruolo richiesto |
|---|---|
| Crea reti, subnet e componenti del bilanciatore del carico | Network Admin |
| Aggiungere e rimuovere regole firewall | Security Admin |
| Creare istanze | Compute Instance Admin |
Per saperne di più, consulta le guide seguenti:
Configurazione dei bilanciatori del carico di rete passthrough interni come hop successivi con backend comuni
Questa guida mostra come utilizzare un bilanciatore del carico di rete passthrough interno come hop successivo per una route statica al fine di integrare appliance virtuali scalate orizzontalmente.
La soluzione descritta in questa guida crea VM appliance che eseguono Debian Linux. Le VM di esempio non eseguono alcun filtraggio dei pacchetti, ma puoi aggiungere questa funzionalità modificando la configurazione di rete di questo esempio o utilizzando software di filtraggio o routing dei pacchetti diverso.
I passaggi descritti in questa sezione spiegano come configurare le seguenti risorse:
- Reti VPC di esempio e subnet personalizzate
- Google Cloud regole firewall che consentono le connessioni in entrata alle macchine virtuali (VM) appliance di backend
- Route statiche
- Due VM client per testare le connessioni
- I seguenti componenti del bilanciatore del carico di rete passthrough interno:
- VM di backend in un gruppo di istanze gestite (MIG)
- Un controllo di integrità per le VM di backend
- Un servizio di backend interno nella regione
us-west1per gestire la distribuzione delle connessioni tra le VM di backend - Una regola di forwarding interna e un indirizzo IP interno per il frontend del bilanciatore del carico
Questo esempio mostra il bilanciamento del carico su più NIC di backend, come descritto in Bilanciamento del carico su più NIC.
La topologia ha questo aspetto:
Il diagramma mostra alcune delle risorse create dall'esempio:
- Istanze dell'applicazione dietro un bilanciatore del carico di rete passthrough interno (
fr-ilb1, in questo esempio). Le istanze dell'applicazione hanno solo indirizzi IP interni. - Per ogni istanza dell'applicazione è attivato il flag
can-ip-forward. Senza questo flag, una VM Compute Engine può trasmettere un pacchetto solo se l'indirizzo IP sorgente del pacchetto corrisponde all'indirizzo IP interno della VM, a un indirizzo IP di un intervallo IP alias o a un indirizzo IP di una regola di forwarding che si risolve nella VM. Il flagcan-ip-forwardmodifica questo comportamento in modo che la VM possa trasmettere pacchetti con qualsiasi indirizzo IP di origine. - Una route statica con destinazione
10.50.1.0/24e hop successivo impostato sulla regola di forwarding del bilanciatore del carico,fr-ilb1.
Il diagramma mostra anche il flusso del traffico:
- La rete VPC
testingha una route statica per il traffico destinato alla subnet10.50.1.0/24. Questa route indirizza il traffico al bilanciatore del carico. - Il bilanciatore del carico inoltra il traffico a una delle istanze dell'applicazione in base all'affinità sessione configurata. L'affinità di sessione influisce solo sul traffico TCP.
Per altri casi d'uso, consulta Bilanciatori del carico di rete passthrough interni come hop successivi.
Configurazione delle reti, della regione e delle subnet
Questo esempio utilizza le seguenti reti VPC, regione e subnet:
Reti: questo esempio richiede due reti, ciascuna con almeno una subnet. Ogni VM appliance di terze parti di backend deve avere almeno due interfacce di rete, una in ogni rete VPC. Le reti in questo esempio sono reti VPC in modalità personalizzata denominate
testingeproduction. La retetestingin questo esempio contiene il client e il bilanciatore del carico. La reteproductioncontiene la VM di destinazione target.Regione: le subnet si trovano nella regione
us-west1. Le subnet devono trovarsi nella stessa regione perché le istanze VM sono risorse a livello di zona.Subnet: le subnet
testing-subneteproduction-subnetutilizzano gli intervalli di indirizzi IP primari10.30.1.0/24e10.50.1.0/24, rispettivamente.
Per creare le reti e le subnet di esempio, segui questi passaggi.
Console
Crea la rete testing e testing-subnet:
Nella console Google Cloud , vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
Inserisci un nome di
testing.Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le seguenti informazioni:
- Nome:
testing-subnet - Regione:
us-west1 - Intervallo di indirizzi IP:
10.30.1.0/24 - Fai clic su Fine.
- Nome:
Fai clic su Crea.
Crea la rete production e production-subnet:
Nella console Google Cloud , vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
Inserisci un nome di
production.Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le seguenti informazioni:
- Nome:
production-subnet - Regione:
us-west1 - Intervallo di indirizzi IP:
10.50.1.0/24 - Fai clic su Fine.
- Nome:
Fai clic su Crea.
gcloud
Crea le reti VPC in modalità personalizzata:
gcloud compute networks create testing --subnet-mode=custom
gcloud compute networks create production --subnet-mode=custom
Crea subnet nelle reti
testingeproductionnella regioneus-west1:gcloud compute networks subnets create testing-subnet \ --network=testing \ --range=10.30.1.0/24 \ --region=us-west1gcloud compute networks subnets create production-subnet \ --network=production \ --range=10.50.1.0/24 \ --region=us-west1
Configurazione delle regole del firewall
Questo esempio utilizza le seguenti regole firewall:
fw-allow-testing-from-both: una regola di ingresso, applicabile a tutti i target nella retetesting. Questa regola consente il traffico proveniente da origini negli intervalli di indirizzi IP10.30.1.0/24e10.50.1.0/24. Questi due intervalli coprono gli indirizzi IP interni principali delle VM in entrambe le reti.fw-allow-production-from-both: una regola di ingresso, applicabile a tutti i target nella reteproduction. Questa regola consente il traffico proveniente da origini negli intervalli di indirizzi IP10.30.1.0/24e10.50.1.0/24. Questi due intervalli coprono gli indirizzi IP interni principali delle VM in entrambe le reti.fw-allow-testing-ssh: una regola di ingresso applicata alle istanze VM nella rete VPCtesting. Questa regola consente la connettività SSH in entrata sulla porta TCP22da qualsiasi indirizzo. Puoi scegliere un intervallo IP di origine più restrittivo per questa regola. Ad esempio, puoi specificare gli intervalli IP dei sistemi da cui prevedi di avviare sessioni SSH. Questo esempio utilizza il tag di destinazioneallow-sshper identificare le VM a cui si applica la regola firewall.fw-allow-production-ssh: una regola di ingresso applicata alle istanze VM nella rete VPCproduction. Questa regola consente la connettività SSH in entrata sulla porta TCP22da qualsiasi indirizzo. Come per la regolafw-allow-testing-ssh, puoi scegliere un intervallo IP di origine più restrittivo per questa regola.fw-allow-health-check: una regola in entrata per le VM appliance di terze parti che vengono bilanciate del carico. Questa regola consente il traffico proveniente dagli intervalli di probe di controllo di integritàGoogle Cloud . Questo esempio utilizza il tag di destinazioneallow-health-checkper identificare le istanze a cui deve essere applicato.fw-allow-production-health-check: Una regola di ingresso per le VM appliance di terze parti di cui viene bilanciato il carico. Questa regola consente il traffico proveniente dagli intervalli di probe di controllo di integritàGoogle Cloud . Questo esempio utilizza il tag di destinazioneallow-health-checkper identificare le istanze a cui deve essere applicato.
Senza queste regole firewall, la regola default-deny per il traffico in entrata blocca il traffico in ingresso verso le istanze di backend. Devi creare una regola firewall per consentire i controlli di integrità dagli intervalli IP dei Google Cloud sistemi di probe. Per saperne di più, consulta Intervalli IP probe.
Console
Nella console Google Cloud , vai alla pagina Policy del firewall.
Fai clic su Crea regola firewall e inserisci le seguenti informazioni per creare la regola che consente alle VM di test di ricevere pacchetti dalle subnet di test e di produzione:
- Nome:
fw-allow-testing-from-both - Rete:
testing - Priorità:
1000 - Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Destinazioni: Tutte le istanze nella rete
- Filtro di origine: intervalli IPv4
- Intervalli IPv4 di origine:
10.30.1.0/24,10.50.1.0/24 - Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall e inserisci le seguenti informazioni per creare la regola che consente alle VM di produzione di ricevere pacchetti dalle subnet di test e di produzione:
- Nome:
fw-allow-production-from-both - Rete:
production - Priorità:
1000 - Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Destinazioni: Tutte le istanze nella rete
- Filtro di origine: intervalli IPv4
- Intervalli IPv4 di origine:
10.30.1.0/24,10.50.1.0/24 - Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall per creare la regola che consente le connessioni SSH in entrata nell'ambiente di test:
- Nome:
fw-allow-testing-ssh - Rete:
testing - 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 e
digita:
tcp:22
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall per creare la regola che consente le connessioni SSH in entrata nell'ambiente di produzione:
- Nome:
fw-allow-production-ssh - Rete:
production - 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 e
digita:
tcp:22
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall per creare la regola per consentire i controlli di integritàGoogle Cloud nell'ambiente di test:
- Nome:
fw-allow-health-check - Rete:
testing - Priorità:
1000 - Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-health-check - Filtro di origine: intervalli IPv4
- Intervalli IPv4 di origine:
35.191.0.0/16 - Protocolli e porte:
tcp
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall per creare la regola che consente i controlli di integritàGoogle Cloud nell'ambiente di produzione:
- Nome:
fw-allow-production-health-check - Rete:
production - Priorità:
1000 - Direzione del traffico: in entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-health-check - Filtro di origine: intervalli IPv4
- Intervalli IPv4 di origine:
35.191.0.0/16 - Protocolli e porte:
tcp
- Nome:
Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-testing-subnetper consentire alle VM di test di ricevere pacchetti dalle subnettestingeproduction:gcloud compute firewall-rules create fw-allow-testing-from-both \ --network=testing \ --action=allow \ --direction=ingress \ --source-ranges=10.30.1.0/24,10.50.1.0/24 \ --rules=allCrea la regola firewall
fw-allow-production-subnetper consentire alle VM di produzione di ricevere pacchetti dalle subnettestingeproduction:gcloud compute firewall-rules create fw-allow-production-from-both \ --network=production \ --action=allow \ --direction=ingress \ --source-ranges=10.30.1.0/24,10.50.1.0/24 \ --rules=allCrea la regola firewall
fw-allow-testing-sshper consentire la connettività SSH alle VM con il tag di reteallow-ssh. Se omettisource-ranges, Google Cloud interpreta la regola nel senso che si riferisce a qualsiasi origine.gcloud compute firewall-rules create fw-allow-testing-ssh \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22Crea la regola firewall
fw-allow-production-sshper consentire la connettività SSH alle VM con il tag di reteallow-ssh.gcloud compute firewall-rules create fw-allow-production-ssh \ --network=production \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22Crea la regola
fw-allow-health-checkper consentire Google Cloudi controlli di integrità alle VM appliance di terze parti nella retetesting.gcloud compute firewall-rules create fw-allow-testing-health-check \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=35.191.0.0/16\ --rules=tcpCrea la regola firewall
fw-allow-production-health-checkper consentire i controlli di integritàGoogle Cloud alle VM appliance di terze parti nella reteproduction.gcloud compute firewall-rules create fw-allow-production-health-check \ --network=production \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=35.191.0.0/16\ --rules=tcp
Creazione delle appliance virtuali di terze parti
I passaggi riportati di seguito mostrano come creare un modello di istanza e un gruppo di istanze gestite regionale con più di un'interfaccia di rete. Questo gruppo di istanze viene utilizzato come appliance virtuale di terze parti per questo esempio.
Console
Per questo passaggio devi utilizzare gcloud perché devi creare un modello di istanza con più di un'interfaccia di rete. La console Google Cloud
al momento non supporta la creazione di modelli di istanza con più di un'interfaccia di rete.
gcloud
Crea un file locale denominato
config.she inserisci i seguenti contenuti:#!/bin/bash # Enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-example.conf # Read VM network configuration: md_vm="http://metadata.google.internal/computeMetadata/v1/instance/" md_net="$md_vm/network-interfaces" nic0_gw="$(curl $md_net/0/gateway -H "Metadata-Flavor:Google" )" nic0_mask="$(curl $md_net/0/subnetmask -H "Metadata-Flavor:Google")" nic0_addr="$(curl $md_net/0/ip -H "Metadata-Flavor:Google")" nic0_id="$(ip addr show | grep $nic0_addr | awk '{print $NF}')" nic1_gw="$(curl $md_net/1/gateway -H "Metadata-Flavor:Google")" nic1_mask="$(curl $md_net/1/subnetmask -H "Metadata-Flavor:Google")" nic1_addr="$(curl $md_net/1/ip -H "Metadata-Flavor:Google")" nic1_id="$(ip addr show | grep $nic1_addr | awk '{print $NF}')" # Source based policy routing for nic1 echo "100 rt-nic1" >> /etc/iproute2/rt_tables sudo ip rule add pri 32000 from $nic1_gw/$nic1_mask table rt-nic1 sleep 1 sudo ip route add 35.191.0.0/16 via $nic1_gw dev $nic1_id table rt-nic1 sudo ip route add 130.211.0.0/22 via $nic1_gw dev $nic1_id table rt-nic1 # Use a web server to pass the health check for this example. # You should use a more complete test in production. sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl echo "Example web page to pass health check" | \ tee /var/www/html/index.html sudo systemctl restart apache2
Crea un modello di istanza per le tue appliance virtuali di terze parti. Il template di istanza deve includere il flag
--can-ip-forwardin modo che le istanze VM create dal template possano inoltrare pacchetti da altre istanze nelle retitestingeproduction.gcloud compute instance-templates create third-party-template-multinic \ --region=us-west1 \ --network-interface subnet=testing-subnet,address="" \ --network-interface subnet=production-subnet \ --tags=allow-ssh,allow-health-check,my-network-tag \ --image-family=debian-12 \ --image-project=debian-cloud \ --can-ip-forward \ --metadata-from-file=startup-script="config.sh"Crea un gruppo di istanze gestite per le tue appliance virtuali di terze parti. Questo comando crea un gruppo di istanze gestite regionale, a cui può essere applicata la scalabilità automatica, in
us-west1.gcloud compute instance-groups managed create third-party-instance-group \ --region=us-west1 \ --template=third-party-template-multinic \ --size=3
Creazione delle risorse di bilanciamento del carico
Questi passaggi configurano tutti i componenti del bilanciatore del carico di rete passthrough interno, a partire dal controllo di integrità e dal servizio di backend fino ai componenti frontend:
Controllo di integrità. In questo esempio, il controllo di integrità HTTP controlla una risposta HTTP
200(OK). Per saperne di più, consulta la sezione Controlli di integrità.Servizio di backend. Anche se il servizio di backend di questo esempio specifica il protocollo TCP, quando il bilanciatore del carico è l'hop successivo per una route,Google Cloud inoltra il traffico per tutti i protocolli (TCP, UDP e ICMP).
Regola di forwarding. Anche se questa regola di forwarding di esempio specifica la porta TCP 80, quando il bilanciatore del carico è l'hop successivo per una route, il traffico su qualsiasi porta TCP o UDP viene inviato ai backend del bilanciatore del carico.
Indirizzo IP interno. L'esempio specifica un indirizzo IP interno,
10.30.1.99, per la regola di forwarding.
Console
Avvia la configurazione
Nella console Google Cloud , vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Bilanciatore del carico passthrough e fai clic su Avanti.
- In Pubblico o interno, seleziona Interno e fai clic su Avanti.
- Fai clic su Configura.
Crea il primo bilanciatore del carico
- Nel campo Nome bilanciatore del carico, inserisci
ilb1. - Nell'elenco Regione, seleziona
us-west1. - Nell'elenco Rete, seleziona
testing. - Fai clic su Configurazione backend e procedi nel seguente modo:
- Nell'elenco Controllo di integrità, fai clic su Crea un controllo di integrità, quindi inserisci le seguenti informazioni:
- Nome:
hc-http-80 - Protocollo: HTTP
- Porta:
80 - Protocollo proxy: NONE
- Richiesta:
/Tieni presente che quando utilizzi la console Google Cloud per creare il bilanciatore del carico, il controllo di integrità è globale. Se vuoi creare un controllo di integrità regionale, utilizzagcloudo l'API.
- Nome:
- Fai clic su Crea.
- Nella sezione Nuovo backend, seleziona il gruppo di istanze
third-party-instance-groupe fai clic su Fine. - Nell'elenco Affinità di sessione, seleziona IP client.
- Verifica che sia presente un segno di spunta blu accanto a Configurazione backend prima di continuare. In caso contrario, rivedi questo passaggio.
- Nell'elenco Controllo di integrità, fai clic su Crea un controllo di integrità, quindi inserisci le seguenti informazioni:
- Fai clic su Configurazione frontend. Nella sezione Nuovi IP e porta frontend, apporta le seguenti modifiche:
- Nome:
fr-ilb1 - Subnet:
testing-subnet - In IP interno, scegli Prenota un indirizzo IP interno statico,
inserisci le seguenti informazioni e fai clic su Prenota:
- Nome:
ip-ilb - Indirizzo IP statico: Scelta manuale
- Indirizzo IP personalizzato:
10.30.1.99
- Nome:
- Porte: scegli Singola e inserisci
80per il Numero porta. Tieni presente che la scelta di un protocollo e di una porta per il bilanciatore del carico non limita i protocolli e le porte utilizzati quando il bilanciatore del carico è l'hop successivo di una route. - Verifica che sia presente un segno di spunta blu accanto a Configurazione frontend prima di continuare. In caso contrario, rivedi questo passaggio.
- Nome:
- Fai clic su Esamina e finalizza. Controlla le impostazioni.
- Fai clic su Crea.
Avvia la configurazione
Nella console Google Cloud , vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- In Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Bilanciatore del carico passthrough e fai clic su Avanti.
- In Pubblico o interno, seleziona Interno e fai clic su Avanti.
- Fai clic su Configura.
Crea il secondo bilanciatore del carico
- Imposta Nome su
ilb2. - Imposta Regione su
us-west1. - Imposta Rete su
production. - Fai clic su Configurazione backend e apporta le seguenti modifiche:
- Per Backend, nella sezione Nuovo elemento, seleziona il gruppo di istanze
third-party-instance-groupe fai clic su Fine. - In corrispondenza di Controllo di integrità, seleziona
hc-http-80. - Per affinità di sessione, seleziona IP client.
- Verifica che sia presente un segno di spunta blu accanto a Configurazione backend prima di continuare. In caso contrario, rivedi questo passaggio.
- Per Backend, nella sezione Nuovo elemento, seleziona il gruppo di istanze
- Fai clic su Configurazione frontend. Nella sezione Nuovi IP e porta frontend, apporta le seguenti modifiche:
- Nome:
fr-ilb2 - Subnet:
production-subnet - In IP interno, scegli Prenota un indirizzo IP interno statico,
inserisci le seguenti informazioni e poi fai clic su Prenota:
- Nome:
ip-ilb2 - Indirizzo IP statico: Scelta manuale
- Indirizzo IP personalizzato:
10.50.1.99
- Nome:
- Porte: scegli Singola e inserisci
80per il Numero porta. Tieni presente che la scelta di un protocollo e di una porta per il bilanciatore del carico non limita i protocolli e le porte utilizzati quando il bilanciatore del carico è l'hop successivo di una route. - Verifica che sia presente un segno di spunta blu accanto a Configurazione frontend prima di continuare. In caso contrario, rivedi questo passaggio.
- Nome:
- Fai clic su Esamina e finalizza. Controlla le impostazioni.
- Fai clic su Crea.
gcloud
Crea un nuovo controllo di integrità HTTP per testare la connettività TCP alle VM sulla porta 80.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80Crea due servizi di backend interni nella regione
us-west1.gcloud compute backend-services create ilb1 \ --load-balancing-scheme=internal \ --health-checks-region=us-west1 \ --health-checks=hc-http-80 \ --region=us-west1 \ --network=testing \ --session-affinity=CLIENT_IPgcloud compute backend-services create ilb2 \ --load-balancing-scheme=internal \ --health-checks-region=us-west1 \ --health-checks=hc-http-80 \ --region=us-west1 \ --network=production \ --session-affinity=CLIENT_IPAggiungi i gruppi di istanze contenenti le appliance virtuali di terze parti come backend nei servizi di backend.
gcloud compute backend-services add-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1gcloud compute backend-services add-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1Crea le regole di forwarding interne e collegale ai servizi di backend per completare la configurazione del bilanciatore del carico. Ricorda che il protocollo (TCP) e la porta (80) dei bilanciatori del carico non limitano le porte e i protocolli inoltrati alle istanze di backend (le appliance virtuali di terze parti) quando i bilanciatori del carico vengono utilizzati come hop successivi delle route.
gcloud compute forwarding-rules create fr-ilb1 \ --load-balancing-scheme=internal \ --ports=80 \ --network=testing \ --subnet=testing-subnet \ --region=us-west1 \ --backend-service=ilb1 \ --address=10.30.1.99gcloud compute forwarding-rules create fr-ilb2 \ --load-balancing-scheme=internal \ --ports=80 \ --network=production \ --subnet=production-subnet \ --region=us-west1 \ --backend-service=ilb2 \ --address=10.50.1.99
Creazione delle route statiche che definiscono i bilanciatori del carico come hop successivi
Crea due route statiche che utilizzano un bilanciatore del carico di hop successivo.
Console
Crea il primo percorso
Nella console Google Cloud , vai alla pagina Route.
Fai clic su Crea percorso.
Per il Nome della route, inserisci
ilb-nhop-dest-10-50-1.Seleziona la rete
testing.Per l'Intervallo IP di destinazione, inserisci
10.50.1.0/24.In Tag istanza, inserisci
my-network-tag.Per l'Hop successivo della route, seleziona Specifica una regola di forwarding di un bilanciatore del carico di rete passthrough interno.
Per specificare l'indirizzo IP del bilanciatore del carico come hop successivo, utilizza gcloud CLI o l'API.
Specifica il nome della regola di forwarding. Per il nome della regola di forwarding, seleziona
fr-ilb1.Fai clic su Crea.
Crea il secondo percorso
- Fai clic su Crea percorso.
- Per il Nome della route, inserisci
ilb-nhop-dest-10-30-1. - Seleziona la rete
testing. - Per l'Intervallo IP di destinazione, inserisci
10.30.1.0/24. Per l'Hop successivo della route, seleziona Specifica una regola di forwarding di un bilanciatore del carico di rete passthrough interno.
Per specificare l'indirizzo IP del bilanciatore del carico come hop successivo, utilizza gcloud CLI o l'API.
Per il nome della regola di forwarding, seleziona
fr-ilb2.Fai clic su Crea.
gcloud
Crea route statiche con l'hop successivo impostato su ogni regola di forwarding del bilanciatore del carico e ogni intervallo di destinazione impostato di conseguenza.
Per il flag --next-hop-ilb, puoi specificare un nome di regola di forwarding o
l'indirizzo IP della regola di forwarding. Un indirizzo IP della regola di forwarding dell'hop successivo può trovarsi nella stessa rete VPC che contiene la route o in una rete VPC in peering. Per saperne di più, consulta la sezione
Progetto e rete del next hop.
Nell'esempio, la prima route utilizza l'indirizzo IP 10.30.1.99, mentre la seconda route utilizza il nome della regola di forwarding fr-ilb12.
Facoltativamente, puoi specificare uno o più tag istanza sulla
route.
La route può essere applicata a VM specifiche se specifichi i tag di rete nella
route. Se non specifichi alcun tag di rete, la route si applica a tutte le VM nella rete VPC. In questo esempio, la route utilizza
my-network-tag per il tag di rete della route.
gcloud compute routes create ilb-nhop-dest-10-50-1 \
--network=testing \
--destination-range=10.50.1.0/24 \
--next-hop-ilb=10.30.1.99 \
--tags=my-network-tag
gcloud compute routes create ilb-nhop-dest-10-30-1 \
--network=production \
--destination-range=10.30.1.0/24 \
--next-hop-ilb=fr-ilb2 \
--next-hop-ilb-region=us-west1
Creazione dell'istanza VM testing
Questo esempio crea un'istanza VM con l'indirizzo IP 10.30.1.100 nella rete VPC testing in testing-subnet (10.30.1.0/24).
gcloud
Crea
testing-vmeseguendo questo comando.gcloud compute instances create testing-vm \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,my-network-tag \ --subnet=testing-subnet \ --private-network-ip 10.30.1.100 \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo 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 sudo systemctl restart apache2'
Creazione dell'istanza VM production
Questo esempio crea un'istanza VM con l'indirizzo IP 10.50.1.100 nella rete VPC production in production-subnet (10.50.1.0/24).
gcloud
production-vm può trovarsi in qualsiasi zona della stessa regione del bilanciatore del carico
e può utilizzare qualsiasi subnet di quella regione. In questo esempio, production-vm
si trova nella zona us-west1-a.
Crea
production-vmeseguendo questo comando.gcloud compute instances create production-vm \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=production-subnet \ --private-network-ip 10.50.1.100 \ --metadata=startup-script='#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo 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 sudo systemctl restart apache2'
Test del bilanciamento del carico in un deployment multi-NIC
Verifica l'integrità dei backend del bilanciatore del carico.
gcloud compute backend-services get-health ilb1 --region us-west1
gcloud compute backend-services get-health ilb2 --region us-west1
Testa la connettività dalla VM
testing.gcloud compute ssh testing-vm --zone=us-west1-a
curl http://10.50.1.99
exit
Testa la connettività dalla VM
production.gcloud compute ssh production-vm --zone=us-west1-a
curl http://10.30.1.99
exit
Abilitazione dell'hashing simmetrico
L'hashing simmetrico è abilitato (e non può essere disabilitato) quando entrambi i bilanciatori del carico di rete passthrough interni soddisfano i requisiti del bilanciatore del carico.
Se le route statiche o le regole di forwarding del bilanciatore del carico di rete passthrough interno sono state create prima del 22 giugno 2021, procedi nel seguente modo:
In ogni rete, crea una nuova regola di forwarding che faccia riferimento allo stesso servizio di backend utilizzato dalla regola di forwarding esistente di ogni bilanciatore del carico.
In ogni rete, crea una nuova route statica che faccia riferimento alla nuova regola di inoltro. Assicurati che ogni nuova route abbia una priorità maggiore rispetto alle route esistenti.
Elimina le route esistenti a priorità inferiore, quindi elimina le regole di inoltro precedenti.
Esegui la pulizia
Nella configurazione del bilanciatore del carico, rimuovi il backend dai servizi di backend.
gcloud compute backend-services remove-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1gcloud compute backend-services remove-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1Elimina le route.
gcloud compute routes delete ilb-nhop-dest-10-50-1
gcloud compute routes delete ilb-nhop-dest-10-30-1
Nelle configurazioni del bilanciatore del carico, elimina le regole di forwarding.
gcloud compute forwarding-rules delete fr-ilb1 \ --region=us-west1gcloud compute forwarding-rules delete fr-ilb2 \ --region=us-west1Nelle configurazioni del bilanciatore del carico, elimina i servizi di backend.
gcloud compute backend-services delete ilb1 \ --region=us-west1gcloud compute backend-services delete ilb2 \ --region=us-west1Nelle configurazioni del bilanciatore del carico, elimina il controllo di integrità.
gcloud compute health-checks delete hc-http-80 \ --region=us-west1Se hai utilizzato la console Google Cloud , il controllo di integrità è globale. Pertanto, il comando è il seguente:
gcloud compute health-checks delete hc-http-80 \ --globalElimina il gruppo di istanze gestite.
gcloud compute instance-groups managed delete third-party-instance-group \ --region=us-west1Elimina i modelli di istanza.
gcloud compute instance-templates delete third-party-template
gcloud compute instance-templates delete third-party-template-multinic
Elimina le istanze di test e di produzione.
gcloud compute instances delete testing-vm \ --zone=us-west1-agcloud compute instances delete production-vm \ --zone=us-west1-a
Passaggi successivi
- Panoramica del bilanciatore del carico di rete passthrough interno
- Failover per i bilanciatori del carico di rete passthrough interni
- Configura i bilanciatori del carico di rete passthrough interni con backend di gruppi di istanze VM
- Logging e monitoraggio del bilanciatore del carico di rete passthrough interno
- Bilanciatori del carico di rete passthrough interni e reti connesse
- Risoluzione dei problemi relativi ai bilanciatori del carico di rete passthrough interni
- Esegui la pulizia della configurazione del bilanciatore del carico