In Google Cloud, puoi integrare appliance di terze parti in modo scalabile e con elevata disponibilità. A questo scopo, devi configurare una route statica e impostarne hop successivo al bilanciatore del carico di rete passthrough interno di Google Cloud. In questo modo, il bilanciatore del carico può bilanciare il traffico per un prefisso di destinazione in un pool di appliance VM di terze parti di cui è stato eseguito il controllo di integrità.
Questa guida utilizza un esempio per insegnarti come configurare un bilanciatore del carico di rete passthrough interno come hop successivo. Prima di seguire questa guida, acquisisci familiarità con quanto segue:
- Concetti sui bilanciatori 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. Dovresti essere un progetto proprietario o editor, oppure includono tutte le seguenti caratteristiche Ruoli IAM di Compute Engine:
Attività | Ruolo richiesto |
---|---|
Creazione di reti, subnet e componenti del bilanciatore del carico | Amministratore di rete |
Aggiungi e rimuovi regole firewall | Amministratore della sicurezza |
Creazione delle istanze | Amministratore istanze Compute |
Per ulteriori informazioni, consulta le seguenti guide:
Configurazione di 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 fare un hop per una route statica al fine di integrare elettrodomestici.
La soluzione discussa in questa guida crea VM appliance che eseguono Debian Linux. Le VM di esempio non eseguono alcun filtro dei pacchetti, ma puoi aggiungere questa funzionalità modificando la configurazione di rete di questo esempio o utilizzando un software di routing o filtro dei pacchetti diverso.
I passaggi in questa sezione descrivono come configurare le seguenti risorse:
- Esempi di reti VPC e subnet personalizzate
- Regole firewall di Google Cloud che consentono le connessioni in entrata alle VM (macchine virtuali) di 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
- Un controllo di integrità per le VM di backend
- Un servizio di backend interno nella regione
us-west1
da gestire distribuzione delle connessioni tra le VM di backend - Una regola di inoltro 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 il seguente aspetto:
Il diagramma mostra alcune delle risorse create dall'esempio:
- Istanze di 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 proprio
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 inoltro che risolve alla VM. Il flagcan-ip-forward
modifica questo comportamento in modo che la VM può trasmettere pacchetti con qualsiasi indirizzo IP di origine. - Una route statica con destinazione
10.50.1.0/24
e hop successivo impostati sulla regola di forwarding del bilanciatore del carico,fr-ilb1
.
Il diagramma mostra anche il flusso del traffico:
- La rete VPC
testing
ha una route statica per il traffico destinato alla subnet10.50.1.0/24
. Questo percorso 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à sessione interessa solo TCP traffic.)
Per altri casi d'uso, consulta Bilanciatori del carico TCP/UDP 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 rete una subnet. Ogni VM dell'appliance di terze parti di backend deve avere almeno due interfacce di rete, una in ogni rete VPC. Le reti in questo esempio sono in modalità personalizzata e si chiamano
testing
eproduction
. La La retetesting
in questo esempio contiene il client e il bilanciatore del carico. La reteproduction
contiene la VM target di destinazione.Regione: le subnet si trovano nella regione
us-west1
. Le subnet devono essere nella stessa regione perché le istanze VM sono risorse di zona.Subnet: le subnet,
testing-subnet
eproduction-subnet
, utilizzano lo10.30.1.0/24
e10.50.1.0/24
di intervalli di indirizzi IP principali, rispettivamente.
Per creare reti e 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
testing
come nome.Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le informazioni seguenti:
- 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 per
production
.Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le informazioni seguenti:
- 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
testing
eproduction
nella regioneus-west1
:gcloud compute networks subnets create testing-subnet \ --network=testing \ --range=10.30.1.0/24 \ --region=us-west1
gcloud 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 della retetesting
. Questa regola consente il traffico da sorgenti in Intervalli di indirizzi IP10.30.1.0/24
e10.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 della reteproduction
. Questa regola consente il traffico da origini incluse negli intervalli di indirizzi IP10.30.1.0/24
e10.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 in entrata applicata alle istanze VM in Rete VPCtesting
. Questa regola consente l'accesso SSH connettività sulla porta TCP22
da 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 le sessioni SSH. Questo utilizza il tag di destinazioneallow-ssh
per identificare le VM a cui si applica una regola firewall.fw-allow-production-ssh
: una regola di ingresso applicata alle istanze VM nella rete VPCproduction
. Questa regola consente l'accesso SSH connettività sulla porta TCP22
da qualsiasi indirizzo. Comefw-allow-testing-ssh
puoi scegliere un intervallo IP di origine più restrittivo per questa regola.fw-allow-health-check
: una regola di ingresso per le VM dell'appliance di terze parti su cui viene eseguito il bilanciamento del carico. Questa regola consente il traffico proveniente dai sistemi di controllo di integrità di Google Cloud (130.211.0.0/22
e35.191.0.0/16
). Questo esempio utilizza il tag di destinazioneallow-health-check
per identificare le istanze a cui deve essere applicata.fw-allow-production-health-check
: una regola di ingresso per le VM di appliance di terze parti su cui viene eseguito il bilanciamento del carico. Questa regola consente il traffico proveniente dai sistemi di controllo di integrità di Google Cloud (130.211.0.0/22
e35.191.0.0/16
). Questo esempio utilizza il tag di destinazioneallow-health-check
per identificare le istanze a cui deve essere applicata.
Senza queste regole firewall, il campo di blocco predefinito una regola in entrata blocca in entrata alle istanze di backend. Devi creare una regola firewall per consentire i controlli di integrità dagli intervalli IP dei sistemi di probe di Google Cloud. Per ulteriori informazioni, consulta Intervalli IP di monitoraggio.
Console
Nella console Google Cloud, vai alla pagina Criteri firewall.
Fai clic su Crea regola firewall e inserisci le seguenti informazioni per creare la regola che consenta 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 quanto segue. informazioni per creare la regola che consenta 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 consenta gli accessi Connessioni SSH 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
tipo:
tcp:22
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall per creare la regola che consenta gli accessi Connessioni SSH 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
tipo:
tcp:22
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall per creare la regola che consente i controlli di integrità di 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:
130.211.0.0/22
e35.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à di 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:
130.211.0.0/22
e35.191.0.0/16
- Protocolli e porte:
tcp
- Nome:
Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-testing-subnet
per consentire alle VM di test di ricevere pacchetti dalle subnettesting
eproduction
: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=all
Crea la regola firewall
fw-allow-production-subnet
per consentire la produzione VM che ricevono pacchetti dalle subnettesting
eproduction
: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=all
Crea la regola firewall
fw-allow-testing-ssh
per consentire la connettività SSH alle VM con il tag di reteallow-ssh
. Se omettisource-ranges
, Google Cloud interpreta la regola nel significato che Fonte.gcloud compute firewall-rules create fw-allow-testing-ssh \ --network=testing \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Crea la regola firewall
fw-allow-production-ssh
per 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:22
Crea la regola
fw-allow-health-check
per consentire i controlli di integrità di Google Cloud alle VM dell'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=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp
Crea la regola firewall
fw-allow-production-health-check
per consentire i controlli di integrità di Google Cloud alle VM dell'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=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp
Creazione degli appliance virtuali di terze parti
I passaggi riportati di seguito mostrano come creare un modello di istanza e un gruppo di istanze regionali gestite con più di un'interfaccia di rete. Questa istanza è utilizzato come appliance virtuale di terze parti in questo esempio.
Console
Per questo passaggio devi utilizzare gcloud
perché devi creare un'istanza
modello con più di un'interfaccia di rete. Al momento la console Google Cloud non supporta la creazione di modelli di istanze con più di un'interfaccia di rete.
gcloud
Crea un file locale denominato
config.sh
e 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 i tuoi dispositivi virtuali di terze parti. Il modello di istanza deve includere il flag
--can-ip-forward
in modo che le istanze VM create dal modello possano inoltrare i pacchetti da altre istanze nelle retitesting
eproduction
.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=startup-script="$(< config.sh)"
Crea un gruppo di istanze gestite per i tuoi appliance virtuali di terze parti. Questo comando crea un gruppo di istanze gestite a livello di regione, che può quindi con 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 tutto il bilanciatore del carico di rete passthrough interno componenti, che iniziano con l'integrità di controllo e di servizio di backend, quindi i componenti frontend:
Controllo di integrità: in questo esempio, il controllo di integrità HTTP verifica la presenza di una risposta HTTP
200
(OK). Per ulteriori informazioni, consulta la sezione relativa ai controlli di integrità della panoramica del bilanciatore del carico di rete passthrough interno.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 di 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 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.
- Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico 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
- Imposta il Nome su
ilb1
. - Imposta Regione su
us-west1
. - Imposta Rete su
testing
. - Fai clic su Configurazione backend e apporta le seguenti modifiche:
- In Backend, nella sezione Nuovo elemento, seleziona
third-party-instance-group
gruppo di istanze e fai clic su Fine. - In Controllo di integrità, scegli Crea un altro controllo di integrità,
inserisci le informazioni seguenti e fai clic su Salva e continua:
- Nome:
hc-http-80
- Protocollo:
HTTP
- Porta:
80
- Protocollo proxy:
NONE
- Percorso di richiesta:
/
Tieni presente che quando utilizzi la console Google Cloud per creare con un bilanciatore del carico globale, il controllo di integrità è globale. Se vuoi creare un controllo di integrità regionale, utilizzagcloud
o l'API.
- Nome:
- In Affinità sessione, seleziona IP client.
- Verifica che sia presente un segno di spunta blu accanto a Configurazione backend prima di continuare. Se non è così, rivedi questo passaggio.
- In Backend, nella sezione Nuovo elemento, seleziona
- 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
80
per il Numero porta. Ricorda 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.
- Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico 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 il Nome su
ilb2
. - Imposta la Regione su
us-west1
. - Imposta Rete su
production
. - Fai clic su Configurazione backend e apporta le seguenti modifiche:
- In Backend, nella sezione Nuovo elemento, seleziona
third-party-instance-group
gruppo di istanze e fai clic su Fine. - In Controllo di integrità, seleziona
hc-http-80
. - In Affinità sessione, seleziona IP client.
- Verifica che sia presente un segno di spunta blu accanto a Backend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
- In Backend, nella sezione Nuovo elemento, seleziona
- 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
80
per la Porta. numero. 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.
Configura le risorse del bilanciatore del carico nella rete VPC
production
.
gcloud
Crea un nuovo controllo di integrità HTTP per testare la connettività TCP alle VM su 80.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Crea 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_IP
gcloud 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_IP
Aggiungi i gruppi di istanze contenenti le appliance virtuali di terze parti come di backend sui servizi di backend.
gcloud compute backend-services add-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
gcloud compute backend-services add-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
Crea le regole di forwarding interno e connettile al 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.99
gcloud 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
Creare due route statiche che utilizzano un bilanciatore del carico dell'hop successivo.
Console
Creare la prima route
Nella console Google Cloud, vai alla pagina Route.
Fai clic su Crea route.
In Nome del percorso, inserisci
ilb-nhop-dest-10-50-1
.Seleziona la rete
testing
.Per 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 bilanciatore del carico TCP/UDP interno.
Per specificare l'indirizzo IP del bilanciatore del carico come hop successivo, utilizza l'interfaccia a riga di comando gcloud o l'API.
Specifica il nome della regola di forwarding. Come nome della regola di inoltro, seleziona
fr-ilb1
.Fai clic su Crea.
Crea il secondo percorso
- Fai clic su Crea route.
- In Nome del percorso, inserisci
ilb-nhop-dest-10-30-1
. - Seleziona la rete
testing
. - Per Intervallo IP di destinazione, inserisci
10.30.1.0/24
. Per l'hop successivo della route, seleziona Specifica una regola di forwarding di bilanciatore del carico TCP/UDP interno.
Per specificare l'indirizzo IP del bilanciatore del carico come hop successivo, utilizza l'interfaccia a riga di comando gcloud o l'API.
Seleziona
fr-ilb2
come nome della regola di forwarding.Fai clic su Crea.
gcloud
Crea route statiche con l'hop successivo impostato sulla regola di inoltro di ogni bilanciatore del carico e ogni intervallo di destinazione impostato di conseguenza.
Per il flag --next-hop-ilb
, puoi specificare il nome di una regola di forwarding oppure
della regola di forwarding. È possibile trovare un indirizzo IP della regola di forwarding dell'hop successivo
nella stessa rete VPC che contiene la route o
rete VPC in peering. Per ulteriori informazioni, vedi
Progetto hop successivo e rete.
Nell'esempio, la prima route utilizza l'indirizzo IP 10.30.1.99
, mentre la seconda route utilizza il nome della regola di inoltro fr-ilb12
.
Facoltativamente, puoi specificare uno o più tag istanza nel route.
La route può essere applicata a VM specifiche se specifichi i tag di rete nella
percorso. 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
nel testing-subnet
(10.30.1.0/24
) nella rete VPC testing
.
gcloud
Crea
testing-vm
eseguendo 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
in corso...
Questo esempio crea un'istanza VM con l'indirizzo IP 10.50.1.100
in
production-subnet
(10.50.1.0/24
) nel VPC production
in ogni rete.
gcloud
production-vm
può trovarsi in qualsiasi zona della stessa regione del bilanciatore del carico e può utilizzare qualsiasi subnet della regione. In questo esempio, il valore production-vm
si trova in zona us-west1-a
.
Crea
production-vm
eseguendo 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 con più 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
Attivazione dell'hashing simmetrico
Quando calcoli l'hash mappato all'istanza di backend, Google Cloud ignora la direzione di indirizzi IP e porte. Lo stato calcolato un valore hash coerente di un pacchetto TCP/UDP è lo stesso indipendentemente dalla direzione da cui ha origine il pacchetto. Questa procedura è chiamata hashing simmetrico.
Per abilitare questo comportamento di hashing sui bilanciatori del carico di rete passthrough interni esistenti, devi e ricreare la regola di forwarding e la route dell'hop successivo.
Per ulteriori informazioni, consulta la sezione Hashing simmetrico.
Elimina e ricrea le regole di inoltro
Console
Eliminare la regola di inoltro e crearne una nuova
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul bilanciatore del carico
be-ilb
e poi su Modifica.Fai clic su Configurazione frontend.
Tieni il puntatore sopra la regola di forwarding e fai clic su
Elimina per rimuoverlo.Fai clic su Aggiungi IP e porta frontend.
Nella sezione Nuovi IP e porta frontend, apporta le seguenti modifiche:
- Nome:
FORWARDING_RULE_NAME
- Subnet:
SUBNET_NAME
- In IP interno, seleziona
IP_ADDRESS
- Porte:
PORT_NUMBER
oALL
. - Fai clic su Fine.
- 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
Elimina le regole di forwarding esistenti.
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
Crea regole di inoltro sostitutive con lo stesso nome.
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=internal \ --ports=PORT_NUMBER or `ALL` \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --region=REGION \ --backend-service=BACKEND_SERVICE_NAME \ --address=IP_ADDRESS
Quando SNAT non è richiesto
Come dimostrato nell'esempio precedente, Network Address Translation di origine (SNAT) non è necessaria se tutte le seguenti condizioni sono vere:
- La regola di forwarding per il bilanciatore del carico di rete passthrough interno è stata creata a partire da giugno 22 2021.
- La route statica che fa riferimento alla regola di forwarding è stata creata il giorno o dopo il 22 giugno 2021.
- Il servizio di backend del bilanciatore del carico di rete passthrough interno non utilizza l'impostazione di affinità della sessione
NONE
.
Puoi convertire una route del bilanciatore del carico di rete passthrough interno dell'hop successivo esistente in modo che utilizzi simmetrico l'hashing nel seguente modo:
Assicurati che il servizio di backend del bilanciatore del carico di rete passthrough interno non utilizzi l'impostazione
NONE
dell'affinità sessioneCrea una regola di inoltro sostitutiva che faccia riferimento allo stesso servizio di backend. La regola di inoltro sostitutiva utilizza un indirizzo IP diverso.
Crea una route statica sostitutiva che faccia riferimento alla nuova regola di forwarding. Assicurati che questa route sostitutiva abbia una priorità maggiore rispetto alla route esistente.
Elimina la route esistente a priorità inferiore (facendo riferimento alla route precedente ) ed elimina la regola di forwarding precedente.
Esegui la pulizia
Nella configurazione del bilanciatore del carico, rimuovi il backend di backend.
gcloud compute backend-services remove-backend ilb1 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
gcloud compute backend-services remove-backend ilb2 \ --instance-group=third-party-instance-group \ --instance-group-region=us-west1 \ --region=us-west1
Elimina 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-west1
gcloud compute forwarding-rules delete fr-ilb2 \ --region=us-west1
Nelle configurazioni del bilanciatore del carico, elimina i servizi di backend.
gcloud compute backend-services delete ilb1 \ --region=us-west1
gcloud compute backend-services delete ilb2 \ --region=us-west1
Nelle configurazioni del bilanciatore del carico, elimina il controllo di integrità.
gcloud compute health-checks delete hc-http-80 \ --region=us-west1
Se hai utilizzato la console Google Cloud, il controllo di integrità è globale. Pertanto, il comando è il seguente:
gcloud compute health-checks delete hc-http-80 \ --global
Elimina il gruppo di istanze gestite.
gcloud compute instance-groups managed delete third-party-instance-group \ --region=us-west1
Elimina 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 produzione.
gcloud compute instances delete testing-vm \ --zone=us-west1-a
gcloud 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 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
- Pulisci la configurazione del bilanciatore del carico