Questa pagina fornisce istruzioni per creare bilanciatori del carico di rete passthrough interni per bilanciare il traffico per più protocolli.
Per configurare un bilanciatore del carico per più protocolli, tra cui TCP e UDP, devi creare una regola di inoltro con il protocollo impostato suL3_DEFAULT
. Questo
una regola di forwarding rimanda a un servizio di backend con il protocollo impostato su
UNSPECIFIED
.
In questo esempio, utilizziamo un bilanciatore del carico di rete passthrough interno per distribuire il traffico tra una VM di backend nella regione us-west1
. Il bilanciatore del carico ha una regola di forwarding con protocollo
L3_DEFAULT
da gestire
TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE
di Google.
Prima di iniziare
- Installa Google Cloud CLI. Per una panoramica completa dello strumento, consulta la panoramica dell'interfaccia a riga di comando gcloud. Puoi
i comandi relativi al bilanciamento del carico
Riferimenti dell'API e dell'interfaccia a riga di comando gcloud.
Se non hai mai eseguito l'interfaccia a riga di comando gcloud, esegui prima il comando
gcloud init
per autenticarti. - Informazioni su bash.
Autorizzazioni
Per ottenere le autorizzazioni necessarie per completare questa guida, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Per creare risorse di bilanciatori del carico:
Amministratore bilanciatore del carico Compute (
roles/compute.loadBalancerAdmin
) -
Per creare istanze e gruppi di istanze Compute Engine:
Amministratore di istanze Compute (
roles/compute.instanceAdmin.v1
) -
Per creare componenti di rete:
Compute Network Admin (
roles/compute.networkAdmin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura il bilanciatore del carico per il traffico L3_DEFAULT
I passaggi in questa sezione descrivono le seguenti configurazioni:
- Un esempio che utilizza una rete VPC in modalità personalizzata denominata
lb-network
. Puoi utilizzare una rete in modalità automatica se vuoi gestire solo il traffico IPv4. Tuttavia, il traffico IPv6 richiede una subnet in modalità personalizzata. - Una subnet a stack singolo (
stack-type
impostato suIPv4
), necessaria per il traffico IPv4. Quando crei un una subnet a stack singolo su una rete VPC in modalità personalizzata scegli un intervallo di subnet IPv4 per la subnet. Per il traffico IPv6, è necessaria una subnet a doppio stack (stack-type
impostato suIPv4_IPv6
). Quando crei una subnet a doppio stack in una modalità personalizzata rete VPC, scegli un'istanza Tipo di accesso IPv6 per nella subnet. Per questo esempio, impostiamo il parametroipv6-access-type
della subnet aINTERNAL
. Ciò significa che alle nuove VM in questa subnet possono essere assegnati sia indirizzi IPv4 interni sia indirizzi IPv6 interni. - Regole firewall che consentono le connessioni in entrata alle VM di backend.
- Il gruppo di istanze di backend e i componenti del bilanciatore del carico utilizzati per questo
esempio si trovano in questa regione e subnet:
- Regione:
us-west1
- Subnet:
lb-subnet
, con intervallo di indirizzi IPv4 principale10.1.2.0/24
. Anche se scegli l'intervallo di indirizzi IPv4 configurato nella subnet, l'intervallo di indirizzi IPv6 viene assegnato automaticamente. Google fornisce un blocco CIDR IPv6 di dimensioni fisse (/64).
- Regione:
- Una VM di backend in un gruppo di istanze gestite nella zona
us-west1-a
. - Una VM client per testare le connessioni ai backend.
- Un bilanciatore del carico di rete passthrough interno con i seguenti componenti:
- Un controllo di integrità per il servizio di backend.
- Un servizio di backend nella regione
us-west1
con il protocollo impostato suUNSPECIFIED
per gestire la distribuzione delle connessioni al gruppo di istanze a livello di zona. - Una regola di forwarding con il protocollo impostato su
L3_DEFAULT
e la porta impostata suALL
.
Configura una rete, una regione e una subnet
Per configurare le subnet con intervalli IPv6 interni, abilita un Virtual Private Cloud (VPC) nell'intervallo IPv6 interno ULA della rete. Gli intervalli di subnet IPv6 interne vengono allocati per questo intervallo. Per creare la rete e la sottorete di esempio:
Console
Per supportare il traffico IPv4 e IPv6, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
lb-network
.Se vuoi configurare intervalli di indirizzi IPv6 interni sulle subnet in questo rete, completa questi passaggi:
- Per Intervallo IPv6 interno ULA della rete VPC, seleziona Abilitato.
- Per Alloca intervallo IPv6 interno, seleziona Automaticamente oppure Manualmente.
In Modalità di creazione subnet, seleziona Personalizzata.
Nella sezione Nuova subnet, specifica la seguente configurazione per una subnet:
- In Nome, inserisci
lb-subnet
. - In Regione, seleziona
us-west1
. - Per creare una subnet a doppio stack, seleziona IPv4 e IPv6 (stack doppio) per Tipo di stack IP.
- Per Intervallo IPv4, inserisci
10.1.2.0/24
. - In Tipo di accesso IPv6, seleziona Interno.
- In Nome, inserisci
Fai clic su Fine.
Fai clic su Crea.
Per supportare il traffico IPv4, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
lb-network
.Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le informazioni seguenti:
- Nome:
lb-subnet
- Regione:
us-west1
- Tipo di stack IP: IPv4 (stack singolo)
- Intervallo di indirizzi IP:
10.1.2.0/24
- Nome:
- Fai clic su Fine.
Fai clic su Crea.
gcloud
Per il traffico IPv4 e IPv6, utilizza i seguenti comandi:
Per creare una nuova rete VPC in modalità personalizzata, esegui il Comando
gcloud compute networks create
.Per configurare gli intervalli IPv6 interni su qualsiasi subnet in questa rete, utilizza Flag
--enable-ula-internal-ipv6
. Questa opzione assegna un prefisso ULA/48
nell'intervallofd20::/20
utilizzato da Google Cloud per per gli intervalli di subnet IPv6 interne.gcloud compute networks create lb-network \ --subnet-mode=custom \ --enable-ula-internal-ipv6
All'interno di
lb-network
, crea una subnet per i backend nella regioneus-west1
.Per creare le subnet, esegui Comando
gcloud compute networks subnets create
:gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL
Per solo traffico IPv4, utilizza i seguenti comandi:
Per creare la rete VPC personalizzata, utilizza il comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Per creare la subnet per i backend nella regione
us-west1
sulla retelb-network
, usa Comandogcloud compute networks subnets create
.gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
API
Per il traffico IPv4 e IPv6, utilizza i seguenti comandi:
Crea una nuova rete VPC in modalità personalizzata. Invia una richiesta
POST
a Metodonetworks.insert
.Per configurare intervalli IPv6 interni su qualsiasi subnet in questo rete, imposta
enableUlaInternalIpv6
sutrue
. Questa opzione assegna un/48
compreso nell'intervallofd20::/20
utilizzato da Google per l'IPv6 interno di subnet.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "lb-network", "mtu": MTU, "enableUlaInternalIpv6": true, }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui viene creata la rete VPC.MTU
: l'unità massima di trasmissione della rete. Il valore della MTU può essere1460
(predefinito) o1500
. Esamina la panoramica dell'unità massima di trasmissione prima di impostare l'MTU su1500
.
Effettua una richiesta
POST
a Metodosubnetworks.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "10.1.2.0/24", "network": "lb-network", "name": "lb-subnet" "stackType": IPV4_IPV6, "ipv6AccessType": Internal }
Per solo traffico IPv4, segui questi passaggi:
Invia una richiesta
POST
al metodonetworks.insert
. SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "name": "lb-network", "autoCreateSubnetworks": false }
Effettua due richieste
POST
alla Metodosubnetworks.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "privateIpGoogleAccess": false }
Configurazione delle regole del firewall
In questo esempio vengono utilizzate le seguenti regole firewall:
fw-allow-lb-access
: una regola di ingresso, applicabile a tutti i target della rete VPC, che consente il traffico dalle origini negli intervalli10.1.2.0/24
. Questa regola consente il traffico in entrata da qualsiasi client che si trova nella subnet.fw-allow-lb-access-ipv6
: una regola in entrata, applicabile a tutte le destinazioni in rete VPC, che consente il traffico da origini in Intervallo IPv6 configurato nella subnet. Questa regola consente il traffico IPv6 in entrata da qualsiasi client che si trova nella subnet.fw-allow-ssh
: una regola in entrata, applicabile alle istanze sottoposte a bilanciamento del carico, che consente la connettività SSH in entrata sulla porta TCP 22 da qualsiasi indirizzo. Puoi scegliere un intervallo IP di origine più restrittivo per questa regola, ad Ad esempio, puoi specificare solo gli intervalli IP del sistema da cui avviare sessioni SSH. Questo esempio utilizza il tag targetallow-ssh
per a identificare le VM a cui deve essere applicato.fw-allow-health-check
: una regola in entrata, applicabile alle istanze che vengono con bilanciamento del carico, che consente il traffico dall'integrità di Google Cloud sistemi di controllo (130.211.0.0/22
e35.191.0.0/16
). Questo esempio utilizza la classe tag di destinazioneallow-health-check
per identificare le istanze a cui deve .fw-allow-health-check-ipv6
: una regola in entrata, applicabile alle istanze bilanciate in base al carico, che consente il traffico proveniente dai sistemi di controllo di integrità di Google Cloud (2600:2d00:1:b029::/64
). Questo esempio utilizza il tag targetallow-health-check-ipv6
per identificare le istanze a cui deve essere applicata.
Senza queste regole firewall, la regola default-deny per il traffico in entrata blocca il traffico in entrata verso le istanze di backend.
Console
Nella console Google Cloud, vai alla pagina Criteri firewall.
Per consentire al traffico TCP, UDP e ICMP IPv4 di raggiungere il gruppo di istanze di backend
ig-a
:- Fai clic su Crea regola firewall.
- Nome:
fw-allow-lb-access
- Rete:
lb-network
- 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.1.2.0/24
- Protocolli e porte: seleziona Protocolli e porte specificati.
- Seleziona TCP e inserisci
ALL
. - Seleziona UDP.
- Seleziona Altro e inserisci
ICMP
.
- Seleziona TCP e inserisci
Fai clic su Crea.
Per consentire le connessioni SSH in entrata:
- Fai clic su Crea regola firewall.
- Nome:
fw-allow-ssh
- Rete:
lb-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,
quindi digita
tcp:22
.
Fai clic su Crea.
Consentire al traffico TCP, UDP e ICMP IPv6 di raggiungere il gruppo di istanza di backend
ig-a
:- Fai clic su Crea regola firewall.
- Nome:
fw-allow-lb-access-ipv6
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: In entrata
- Azione in caso di corrispondenza: Consenti
- Destinazioni: Tutte le istanze nella rete
- Filtro di origine: intervalli IPv6
- Intervalli IPv6 di origine: IPV6_ADDRESS assegnati in
lb-subnet
- Protocolli e porte: seleziona Protocolli e porte specificati.
- Seleziona TCP e inserisci
0-65535
. - Seleziona UDP.
- Seleziona Altro e per il protocollo ICMPv6 inserisci
58
.
- Seleziona TCP e inserisci
Fai clic su Crea.
Per consentire i controlli di integrità IPv6 di Google Cloud:
- Fai clic su Crea regola firewall.
- Nome:
fw-allow-health-check-ipv6
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: In entrata
- Azione in caso di corrispondenza: Consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-health-check-ipv6
- Filtro di origine: intervalli IPv6
- Intervalli IPv6 di origine:
2600:2d00:1:b029::/64
- Protocolli e porte: Consenti tutto
Fai clic su Crea.
Per consentire i controlli di integrità IPv4 di Google Cloud:
- Fai clic su Crea regola firewall.
- Nome:
fw-allow-health-check
- Rete:
lb-network
- 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: Consenti tutto
Fai clic su Crea.
gcloud
Per consentire al traffico TCP IPv4 di raggiungere il gruppo di istanze di backend
ig-a
, crea la seguente regola:gcloud compute firewall-rules create fw-allow-lb-access \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24 \ --rules=tcp,udp,icmp
Crea la regola firewall
fw-allow-ssh
per consentire la connettività SSH alle VM utilizzando il tag di reteallow-ssh
. Se omettisource-ranges
, Google Cloud interpreta la regola nel significato che Fonte.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Per consentire al traffico IPv6 di raggiungere il gruppo di istanza di backend
ig-a
, crea la seguente regola:gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=IPV6_ADDRESS \ --rules=all
Sostituisci
IPV6_ADDRESS
con l'indirizzo IPv6 assegnato nellb-subnet
.Crea la regola firewall
fw-allow-health-check
per consentire i controlli di integrità di Google Cloud.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
Crea la regola
fw-allow-health-check-ipv6
per consentire a Google Cloud Controlli di integrità IPv6.gcloud compute firewall-rules create fw-allow-health-check-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp,icmp
API
Per creare la regola firewall
fw-allow-lb-access
, effettua una richiestaPOST
a il metodofirewalls.insert
. SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "10.1.2.0/24" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Crea la regola firewall
fw-allow-lb-access-ipv6
effettuando una richiestaPOST
a il metodofirewalls.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "IPV6_ADDRESS" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "58" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Sostituisci IPV6_ADDRESS con l'indirizzo IPv6 assegnato nel
lb-subnet
.Per creare la regola firewall
fw-allow-ssh
, invia una richiestaPOST
al metodofirewalls.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-ssh", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "0.0.0.0/0" ], "targetTags": [ "allow-ssh" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Per creare la regola firewall
fw-allow-health-check
, invia una richiestaPOST
al metodofirewalls.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "targetTags": [ "allow-health-check" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Crea la regola firewall
fw-allow-health-check-ipv6
inviando una richiestaPOST
al metodofirewalls.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "2600:2d00:1:b029::/64" ], "targetTags": [ "allow-health-check-ipv6" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Crea VM e gruppi di istanze di backend
Per questo scenario di bilanciamento del carico, crea un gruppo di istanze gestite zonali Compute Engine e installa un server web Apache.
Per gestire il traffico sia IPv4 che IPv6, configura le VM di backend in modo che
a doppio stack. Imposta stack-type
della VM su IPv4_IPv6
. Le VM ereditano anche
dell'impostazione ipv6-access-type
(in questo esempio, INTERNAL
) dalla subnet. Per
Per ulteriori dettagli sui requisiti IPv6, consulta la panoramica del bilanciatore del carico di rete passthrough interno:
Regole di forwarding.
Se vuoi utilizzare le VM esistenti come backend, aggiornale in modo che siano dual-stack utilizzando il comando gcloud compute instances network-interfaces update.
Istanze che partecipano come VM di backend per bilanciatori del carico di rete passthrough interni devono eseguire Ambiente guest Linux, Ambiente guest Windows, o altri processi che forniscono funzionalità equivalenti.
Per semplicità di istruzione, le VM di backend eseguono Debian GNU/Linux 10.
Crea il gruppo di istanze
Console
Per supportare il traffico IPv4 e IPv6, segui questi passaggi:
Creare un modello di istanza. Nella console Google Cloud, vai alla pagina Modelli di istanza.
- Fai clic su Crea modello istanza.
- In Nome, inserisci
vm-a1
. - Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio
Debian GNU/Linux 12 (bookworm). Queste istruzioni utilizzano comandi
sono disponibili solo su Debian, come
apt-get
. - Espandi la sezione Opzioni avanzate.
Espandi la sezione Gestione e poi copia il seguente script nel campo Script di avvio. Lo script di avvio configura inoltre il server Apache in modo che ascolti sulla porta
8080
anziché sulla porta80
.#! /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 sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2
Espandi la sezione Networking e specifica quanto segue:
- In Tag di rete, aggiungi
allow-ssh
eallow-health-check-ipv6
. - In Interfacce di rete, fai clic sull'interfaccia predefinita e
configurare i seguenti campi:
- Rete:
lb-network
- Subnet:
lb-subnet
- Tipo di stack IP: IPv4 e IPv6 (stack doppio)
- Rete:
- In Tag di rete, aggiungi
Fai clic su Crea.
Per supportare il traffico IPv4, segui questi passaggi:
Creare un modello di istanza. Nella console Google Cloud, vai alla pagina Modelli di istanza.
Fai clic su Crea modello istanza.
- In Nome, inserisci
vm-a1
. - Assicurati che il disco di avvio sia impostato su un'immagine Debian, ad esempio
Debian GNU/Linux 12 (bookworm). Queste istruzioni utilizzano comandi
sono disponibili solo su Debian, come
apt-get
. - Espandi la sezione Opzioni avanzate.
Espandi la sezione Gestione e poi copia il seguente script nel campo Script di avvio. Lo script di avvio configura inoltre il server Apache in modo che ascolti sulla porta
8080
anziché sulla porta80
.#! /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 sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2
Espandi la sezione Networking e specifica quanto segue:
- In Tag di rete, aggiungi
allow-ssh
eallow-health-check
. - In Interfacce di rete, fai clic sull'interfaccia predefinita e configura i seguenti campi:
- Rete:
lb-network
- Subnet:
lb-subnet
- Tipo di stack IP: IPv4 (stack singolo)
- Rete:
- In Tag di rete, aggiungi
Fai clic su Crea.
- In Nome, inserisci
Creare un gruppo di istanze gestite. Vai alla pagina Gruppi di istanze nella console Google Cloud.
- Fai clic su Crea gruppo di istanze.
- Scegli Nuovo gruppo di istanze gestite (stateless). Per ulteriori informazioni, consulta Gruppi di istanze gestite stateless o stateful.
- In Nome, inserisci
ig-a
. - Per Località, seleziona Zona singola.
- In corrispondenza di Regione, seleziona
us-west1
. - In Zona, seleziona
us-west1-a
. - In Modello di istanza, seleziona
vm-a1
. Specifica il numero di istanze che vuoi creare nel gruppo.
Per questo esempio, specifica le seguenti opzioni in Scalabilità automatica:
- In Modalità di scalabilità automatica, seleziona
Off:do not autoscale
. - In Numero massimo di istanze, inserisci
2
.
- In Modalità di scalabilità automatica, seleziona
Fai clic su Crea.
gcloud
Le istruzioni per gcloud
in questa guida presuppongono che l'utilizzo di Cloud
Shell o un altro ambiente con bash installato.
Crea un modello di istanza VM con il server HTTP con il comando
gcloud compute instance-templates create
.Lo script di avvio configura anche il server Apache per rimanere in ascolto porta
8080
anziché porta80
.Per gestire sia il traffico IPv4 che IPv6, utilizza il seguente comando.
gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPv4_IPv6 \ --tags=allow-ssh \ --image-family=debian-12 \ --image-project=debian-cloud \ --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 sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
In alternativa, se vuoi gestire solo il traffico IPv4, utilizza il seguente comando.
gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=allow-ssh \ --image-family=debian-12 \ --image-project=debian-cloud \ --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 sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
Crea un gruppo di istanze gestite nella zona con
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create ig-a \ --zone us-west1-a \ --size 2 \ --template vm-a1
api
Per gestire il traffico IPv4 e IPv6, segui questi passaggi:
Crea una VM inviando richieste
POST
al metodoinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check-ipv6", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Per gestire il traffico IPv4, segui questi passaggi.
Crea una VM inviando richieste
POST
al metodoinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Crea un gruppo di istanze inviando una richiesta
POST
al metodoinstanceGroups.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups { "name": "ig-a", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet" }
Aggiungi istanze a ogni gruppo effettuando una richiesta
POST
alla MetodoinstanceGroups.addInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a1" } ] }
Crea una VM client
In questo esempio viene creata una VM client nella stessa regione del backend (server). Il client viene utilizzato per convalidare la configurazione del bilanciatore del carico e dimostrare il comportamento previsto come descritto nella sezione Test.
Per il traffico IPv4 e IPv6:
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta il Nome su
vm-client-ipv6
.Imposta Zona su
us-west1-a
.Espandi la sezione Opzioni avanzate e apporta le seguenti modifiche:
- Espandi Networking, quindi aggiungi
allow-ssh
a Tag di rete. - In Interfacce di rete, fai clic su Modifica,
le seguenti modifiche, poi fai clic su Fine:
- Rete:
lb-network
- Subnet:
lb-subnet
- Tipo di stack IP: IPv4 e IPv6 (stack doppio)
- IP interno principale: Temporaneo (automatico)
- IP esterno: Temporaneo
- Rete:
- Espandi Networking, quindi aggiungi
Fai clic su Crea.
gcloud
La VM client può trovarsi in qualsiasi zona della stessa regione del bilanciatore del carico e può utilizzare qualsiasi sottorete della regione. In questo esempio, il client si trova nella zona us-west1-a
e utilizza la stessa sottorete delle VM di backend.
gcloud compute instances create vm-client-ipv6 \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --stack-type=IPV4_IPV6 \ --tags=allow-ssh \ --subnet=lb-subnet
api
Invia una richiesta POST
al
metodo instances.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances { "name": "vm-client-ipv6", "tags": { "items": [ "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-client", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-image-name", "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "scheduling": { "preemptible": false }, "deletionProtection": false }
Per il traffico IPv4:
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
In Nome, inserisci
vm-client
.In Zona, inserisci
us-west1-a
.Espandi la sezione Opzioni avanzate.
Espandi Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
. - In Interfacce di rete, seleziona quanto segue:
- Rete:
lb-network
- Subnet:
lb-subnet
- Rete:
- In Tag di rete, inserisci
Fai clic su Crea.
gcloud
La VM client può trovarsi in qualsiasi zona della stessa regione
con il bilanciatore del carico di rete
e può usare qualsiasi subnet in quella regione. In questo esempio,
il client si trova nella zona us-west1-a
e utilizza lo stesso
come VM di backend.
gcloud compute instances create vm-client \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=lb-subnet
API
Invia una richiesta POST
a
Metodo instances.insert
.
Sostituisci PROJECT_ID
con l'ID del tuo
progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances { "name": "vm-client", "tags": { "items": [ "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-client", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-image-name", "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "scheduling": { "preemptible": false }, "deletionProtection": false }
Configura i componenti del bilanciatore del carico
Creare un bilanciatore del carico per più protocolli.
gcloud
Crea un controllo di integrità HTTP per la porta 80. Questo controllo di integrità viene utilizzato per verificare l'integrità dei backend nel gruppo di istanze
ig-a
.gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Crea il servizio di backend con il protocollo impostato su
UNSPECIFIED
:gcloud compute backend-services create be-ilb-l3-default \ --load-balancing-scheme=internal \ --protocol=UNSPECIFIED \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Aggiungi il gruppo di istanze al servizio di backend:
gcloud compute backend-services add-backend be-ilb-l3-default \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
Per il traffico IPv6: crea una regola di forwarding con il protocollo impostato su
L3_DEFAULT
per gestire tutto il traffico del protocollo IPv6 supportato. Tutte le porte devono essere configurate con regole di forwardingL3_DEFAULT
.gcloud compute forwarding-rules create fr-ilb-ipv6 \ --region=us-west1 \ --load-balancing-scheme=internal \ --subnet=lb-subnet \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1 \ --ip-version=IPV6
Per il traffico IPv4: crea una regola di forwarding con il protocollo impostato su
L3_DEFAULT
per gestire tutto il traffico del protocollo IPv4 supportato. Tutte le porte devono essere configurata conL3_DEFAULT
regole di forwarding. Usa10.1.2.99
come all'indirizzo IP interno.gcloud compute forwarding-rules create fr-ilb-l3-default \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1
API
Crea il controllo di integrità inviando una richiesta
POST
al metodoregionHealthChecks.insert
. SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/regionHealthChecks { "name": "hc-http-80", "type": "HTTP", "httpHealthCheck": { "port": 80 } }
Crea il servizio di backend regionale effettuando una richiesta
POST
all'istanza MetodoregionBackendServices.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-l3-default", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UNSPECIFIED", "connectionDraining": { "drainingTimeoutSec": 0 } }
Per il traffico IPv6: crea la regola di inoltro inviando una richiesta
POST
al metodoforwardingRules.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-ipv6", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "ipVersion": "IPV6", "networkTier": "PREMIUM" }
Per il traffico IPv4: crea la regola di forwarding effettuando una richiesta
POST
all'indirizzo MetodoforwardingRules.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-l3-default", "IPAddress": "10.1.2.99", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "networkTier": "PREMIUM" }
Testa il bilanciatore del carico
I seguenti test mostrano come convalidare la configurazione del bilanciatore del carico e scoprirne il comportamento previsto.
Testa la connessione dalla VM client
Questo test contatta il bilanciatore del carico da una VM client separata, ovvero non da una VM di backend del bilanciatore del carico.
gcloud:IPv6
Connettiti all'istanza VM client.
gcloud compute ssh vm-client-ipv6 --zone=us-west1-a
Descrivi la regola di forwarding IPv6
fr-ilb-ipv6
. Tieni presenteIPV6_ADDRESS
nella descrizione.gcloud compute forwarding-rules describe fr-ilb-ipv6 --region=us-west1
Dai client con connettività IPv6, esegui il seguente comando. Sostituisci
IPV6_ADDRESS
con l'indirizzo IPv6 temporaneo nellafr-ilb-ipv6
regola di forwarding.curl -m 10 -s http://IPV6_ADDRESS:80
Ad esempio, se l'indirizzo IPv6 assegnato è
[fd20:1db0:b882:802:0:46:0:0/96]:80
, il comando dovrebbe avere il seguente aspetto:curl -m 10 -s http://[fd20:1db0:b882:802:0:46:0:0]:80
gcloud:IPv4
Connettiti all'istanza VM client.
gcloud compute ssh vm-client --zone=us-west1-a
Descrivi la regola di inoltro IPv4
fr-ilb
.gcloud compute forwarding-rules describe fr-ilb --region=us-west1
Invia una richiesta web al bilanciatore del carico utilizzando
curl
per contattare il relativo indirizzo IP. Ripeti la richiesta per vedere che le risposte provengono da diverse VM di backend. Il nome della VM che genera la risposta è visualizzato nel testo nella risposta HTML in virtù dei contenuti/var/www/html/index.html
su ogni VM di backend. Le risposte previste hanno questo aspettoPage served from: vm-a1
.curl http://10.1.2.99
La regola di forwarding è configurata per gestire le porte
80
e53
. Per inviare il traffico a queste porte, aggiungi i due punti (:
) e il di porta dopo l'indirizzo IP, in questo modo:curl http://10.1.2.99:80
Invia un ping all'indirizzo IP del bilanciatore del carico
Questo test dimostra un comportamento previsto: puoi inviare un ping Indirizzo IP del bilanciatore del carico.
gcloud:IPv6
Connettiti all'istanza VM client.
gcloud compute ssh vm-client-ipv6 --zone=us-west1-a
Prova a inviare un ping all'indirizzo IPv6 del bilanciatore del carico. Sostituisci
IPV6_ADDRESS
con l'indirizzo IPv6 temporaneo nellafr-ilb-ipv6
regola di forwarding.Nota che ricevi una risposta e che il comando
ping
funziona in questo esempio.ping6 IPV6_ADDRESS
Ad esempio, se l'indirizzo IPv6 assegnato è
[2001:db8:1:1:1:1:1:1/96]
, il comando è il seguente:ping6 2001:db8:1:1:1:1:1:1
L'output è simile al seguente:
@vm-client: ping
IPV6_ADDRESS
PINGIPV6_ADDRESS
(IPV6_ADDRESS
) 56(84) bytes of data. 64 bytes fromIPV6_ADDRESS
: icmp_seq=1 ttl=64 time=1.58 ms
gcloud:IPv4
Connettiti all'istanza VM client.
gcloud compute ssh vm-client --zone=us-west1-a
Prova a inviare un ping all'indirizzo IPv4 del bilanciatore del carico. Noterai che ricevi una risposta e che il comando
ping
funziona in questo esempio.ping 10.1.2.99
L'output è il seguente:
@vm-client: ping 10.1.2.99 PING 10.1.2.99 (10.1.2.99) 56(84) bytes of data. 64 bytes from 10.1.2.99: icmp_seq=1 ttl=64 time=1.58 ms 64 bytes from 10.1.2.99: icmp_seq=2 ttl=64 time=0.242 ms 64 bytes from 10.1.2.99: icmp_seq=3 ttl=64 time=0.295 ms
Opzioni di configurazione aggiuntive
Questa sezione espande l'esempio di configurazione per fornire opzioni di configurazione alternative e aggiuntive. Tutte le attività sono facoltative. Puoi eseguire queste operazioni in qualsiasi ordine.
Puoi prenotare un indirizzo IP interno statico per il tuo esempio. Questa configurazione consente a più regole di inoltro interne di utilizzare lo stesso indirizzo IP con protocolli e porte diversi.
I backend del bilanciatore del carico di esempio devono trovarsi ancora nella regioneus-west1
.
Il seguente diagramma mostra l'architettura per questo esempio.
Puoi anche prendere in considerazione le seguenti configurazioni delle regole di inoltro:
Regole di inoltro con più porte:
- Protocollo
TCP
con porte80,8080
- Protocollo
L3_DEFAULT
con porteALL
- Protocollo
Regole di forwarding con tutte le porte:
- Protocollo
TCP
con porteALL
- Protocollo
L3_DEFAULT
con porteALL
- Protocollo
Prenota indirizzo IPv4 interno statico
Prenota un indirizzo IP interno statico per 10.1.2.99
e imposta il relativo --purpose
flag su SHARED_LOADBALANCER_VIP
. Il flag --purpose
in modo che molte regole di forwarding possano usare
Indirizzo IP.
gcloud
Utilizza il comando gcloud compute addresses create
:
gcloud compute addresses create internal-lb-ipv4 \ --region us-west1 \ --subnet lb-subnet \ --purpose SHARED_LOADBALANCER_VIP \ --addresses 10.1.2.99
API
Chiama il
Metodo addresses.insert
.
Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/addresses
Il corpo della richiesta deve includere addressType
, che deve essere
INTERNAL
, il name
dell'indirizzo e il subnetwork
a cui appartiene
l'indirizzo IP. Devi specificare address
come 10.1.2.99
.
{ "addressType": "INTERNAL", "name": "internal-lb-ipv4", "subnetwork": "regions/us-west1/subnetworks/lb-subnet", "purpose": "SHARED_LOADBALANCER_VIP", "address": "10.1.2.99" }
Configura i componenti del bilanciatore del carico
Configura tre bilanciatori del carico con i seguenti componenti:
- Il primo bilanciatore del carico ha una regola di inoltro con protocollo
TCP
e porta80
. Viene gestito il traffico TCP in arrivo all'indirizzo IP interno sulla porta80
dalla regola di forwardingTCP
. - Il secondo bilanciatore del carico ha una regola di forwarding con il protocollo
UDP
e la porta53
. Viene gestito il traffico UDP in arrivo all'indirizzo IP interno sulla porta53
dalla regola di forwardingUDP
. - Il terzo bilanciatore del carico ha una regola di forwarding con il protocollo
L3_DEFAULT
e portaALL
. Tutto il resto del traffico che non corrisponde alle regole di inoltroTCP
oUDP
viene gestito dalla regola di inoltroL3_DEFAULT
. - Tutti e tre i bilanciatori del carico condividono lo stesso indirizzo IP interno statico
(
internal-lb-ipv4
) nelle regole di inoltro.
Crea il primo bilanciatore del carico
Crea il primo bilanciatore del carico per il traffico TCP sulla porta 80
.
gcloud
Crea il servizio di backend per il traffico TCP:
gcloud compute backend-services create be-ilb \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Aggiungi il gruppo di istanze al servizio di backend:
gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
Creare una regola di forwarding per il servizio di backend. Utilizza lo stato riservato indirizzo IP interno (
internal-lb-ipv4
) per l'indirizzo IP interno.gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=TCP \ --ports=80 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Crea il servizio di backend regionale effettuando una richiesta
POST
all'istanza MetodoregionBackendServices.insert
. SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "TCP", "connectionDraining": { "drainingTimeoutSec": 0 } }
Create the forwarding rule by making a
POST
request to theforwardingRules.insert
method:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "internal-lb-ipv4", "IPProtocol": "TCP", "ports": [ "80" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb", "networkTier": "PREMIUM" }
Crea il secondo bilanciatore del carico
Crea il secondo bilanciatore del carico per il traffico UDP sulla porta 53
.
gcloud
Crea il servizio di backend con il protocollo impostato su
UDP
:gcloud compute backend-services create be-ilb-udp \ --load-balancing-scheme=internal \ --protocol=UDP \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Aggiungi il gruppo di istanze al servizio di backend:
gcloud compute backend-services add-backend be-ilb-udp \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
Creare una regola di forwarding per il servizio di backend. Utilizza lo stato riservato indirizzo IP interno (
internal-lb-ipv4
) per l'indirizzo IP interno.gcloud compute forwarding-rules create fr-ilb-udp \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=UDP \ --ports=53 \ --backend-service=be-ilb-udp \ --backend-service-region=us-west1
API
Crea il servizio di backend regionale effettuando una richiesta
POST
all'istanza MetodoregionBackendServices.insert
. SostituisciPROJECT_ID
con l'ID del tuo progetto Google Cloud.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-udp", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UDP", "connectionDraining": { "drainingTimeoutSec": 0 } }
Crea la regola di forwarding effettuando una richiesta
POST
all'oggetto MetodoforwardingRules.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-udp", "IPAddress": "internal-lb-ipv4", "IPProtocol": "UDP", "ports": [ "53" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-udp", "networkTier": "PREMIUM" }
Crea il terzo bilanciatore del carico
Crea la regola di forwarding del terzo bilanciatore del carico per utilizzare lo stato riservato statico all'indirizzo IP interno.
gcloud
Crea la regola di forwarding con il protocollo impostato su L3_DEFAULT
da gestire
tutto il traffico del protocollo IPv4 supportato. Utilizza l'indirizzo IP interno statico riservato (internal-lb-ipv4
) come indirizzo IP interno.
gcloud compute forwarding-rules create fr-ilb-l3-default \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1
API
Crea la regola di inoltro inviando una richiesta POST
al
metodo forwardingRules.insert
.
Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-l3-default", "IPAddress": "internal-lb-ipv4", "IPProtocol": "L3_DEFAULT", "ports": [ "ALL" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "networkTier": "PREMIUM" }
Testa il bilanciatore del carico
Per testare il bilanciatore del carico, segui i passaggi descritti nella sezione precedente.
Passaggi successivi
- Per conoscere concetti importanti, vedi Panoramica del bilanciatore del carico di rete passthrough interno.
- Per scoprire come configurare il failover, vedi Configura il failover per il bilanciatore del carico di rete passthrough interno.
- Per informazioni sulla configurazione del logging e del monitoraggio per i bilanciatori del carico di rete passthrough interni, consulta Logging e monitoraggio dei bilanciatori del carico di rete passthrough interni.
- Per scoprire di più sulla risoluzione dei problemi, consulta Risolvere i problemi relativi ai bilanciatori del carico di rete passthrough interni.
- Pulisci la configurazione di un bilanciatore del carico.