Questa pagina fornisce istruzioni per creare bilanciatori del carico di rete passthrough interni per bilanciare il carico del traffico per più protocolli.
Per configurare un bilanciatore del carico per più protocolli, inclusi TCP e UDP, devi
creare una regola di forwarding con il protocollo impostato su
L3_DEFAULT. Questa regola di forwarding punta 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 per gestire 
TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE
.
Prima di iniziare
- Installa Google Cloud CLI. Per una panoramica completa dello strumento,
consulta la panoramica di gcloud CLI. Puoi
trovare i comandi relativi al bilanciamento del carico nei
riferimenti all'API e a gcloud CLI.
Se non hai mai eseguito gcloud CLI, esegui prima
il comando gcloud initper l'autenticazione.
- Scopri di più 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 del bilanciatore del carico:
              
  
  
    
      Amministratore bilanciatore del carico Compute  (roles/compute.loadBalancerAdmin)
- 
             Per creare istanze e gruppi di istanze Compute Engine:
              
  
  
    
      Compute Instance   Admin  (roles/compute.instanceAdmin.v1)
- 
             Per creare componenti di rete:
              
  
  
    
      Compute Network Admin    (roles/compute.networkAdmin)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci 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 di 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-typeimpostato suIPv4), necessaria per il traffico IPv4. Quando crei una subnet a stack singolo in 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-typeimpostato suIPV4_IPV6). Quando crei una subnet a doppio stack su una rete VPC in modalità personalizzata, scegli un tipo di accesso IPv6 per la subnet. Per questo esempio, impostiamo il parametroipv6-access-typedella subnet suINTERNAL. 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 istanza 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 principali10.1.2.0/24. Sebbene tu scelga 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-west1con il protocollo impostato suUNSPECIFIEDper gestire la distribuzione delle connessioni al gruppo di istanze di zona.
- Una regola di forwarding con il protocollo impostato su L3_DEFAULTe la porta impostata suALL.
 
Configura una rete, una regione e una subnet
Per configurare le subnet con intervalli IPv6 interni, abilita un intervallo IPv6 interno ULA della rete Virtual Private Cloud (VPC). Gli intervalli di subnet IPv6 interni vengono allocati da questo intervallo. Per creare la rete e la subnet di esempio, segui questi passaggi:
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 di questa rete, completa questi passaggi: - Per Intervallo IPv6 interno ULA rete VPC, seleziona Attivato.
- Per Alloca intervallo IPv6 interno, seleziona Automaticamente o Manualmente.
 
- In Modalità di creazione subnet, seleziona Personalizzata. 
- Nella sezione Nuova subnet, specifica i seguenti parametri di configurazione per una subnet: - In Nome, inserisci lb-subnet.
- In Regione, seleziona us-west1.
- Per creare una subnet a doppio stack, per Tipo di stack IP, seleziona IPv4 e IPv6 (stack doppio).
- In Intervallo IPv4, inserisci 10.1.2.0/24.
- Per 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 seguenti informazioni:
- 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 di questa rete, utilizza il flag - --enable-ula-internal-ipv6. Questa opzione assegna un prefisso ULA- /48all'interno dell'intervallo- fd20::/20utilizzato da Google Cloud per gli intervalli di subnet IPv6 interni.- 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 regione- us-west1.- Per creare le subnet, esegui il 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-west1all'interno della rete- lb-network, utilizza il 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
API
Per il traffico IPv4 e IPv6, utilizza i seguenti comandi:
- Crea una nuova rete VPC in modalità personalizzata. Invia una richiesta - POSTal metodo- networks.insert.- Per configurare gli intervalli IPv6 interni su qualsiasi subnet di questa rete, imposta - enableUlaInternalIpv6su- true. Questa opzione assegna un intervallo- /48dall'intervallo- fd20::/20utilizzato da Google per gli intervalli di subnet IPv6 interni.- 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ò essere- 1460(predefinito) o- 1500. Consulta la panoramica dell'unità massima di trasmissione prima di impostare l'MTU su- 1500.
 
- Invia una richiesta - POSTal metodo- subnetworks.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 - POSTal metodo- networks.insert. Sostituisci- PROJECT_IDcon 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 - POSTal metodo- subnetworks.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
Questo esempio utilizza le seguenti regole firewall:
- fw-allow-lb-access: una regola di ingresso, applicabile a tutte le destinazioni nella rete VPC, che consente il traffico dalle origini negli intervalli- 10.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 di ingresso, applicabile a tutte le destinazioni nella rete VPC, che consente il traffico proveniente da origini nell'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 con 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 esempio, puoi specificare solo gli intervalli IP del sistema da cui avvii le sessioni SSH. Questo esempio utilizza il tag di destinazione- allow-sshper identificare le VM a cui deve essere applicato.
- fw-allow-health-check: una regola in entrata, applicabile alle istanze sottoposte a bilanciamento del carico, che consente il traffico proveniente dai sistemi di controllo di integrità Google Cloud (- 130.211.0.0/22e- 35.191.0.0/16). Questo esempio utilizza il tag di destinazione- allow-health-checkper identificare le istanze a cui deve essere applicata.
- fw-allow-health-check-ipv6: una regola in entrata, applicabile alle istanze sottoposte a bilanciamento del carico, che consente il traffico proveniente dai sistemi di controllo di integrità Google Cloud (- 2600:2d00:1:b029::/64). Questo esempio utilizza il tag di destinazione- allow-health-check-ipv6per 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 ingresso verso le istanze di backend.
Console
- Nella console Google Cloud , vai alla pagina Policy firewall. 
- Per consentire al traffico IPv4 TCP, UDP e ICMP di raggiungere il gruppo di istanza 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. 
- Per consentire al traffico IPv6 TCP, UDP e ICMP 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 assegnato 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 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: 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/22e35.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 istanza 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-sshper consentire la connettività SSH alle VM utilizzando il tag di rete- allow-ssh. Se ometti- source-ranges, Google Cloud interpreta la regola come qualsiasi origine.- gcloud compute firewall-rules create fw-allow-ssh \ --network=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_ADDRESScon l'indirizzo IPv6 assegnato in- lb-subnet.
- Crea la regola firewall - fw-allow-health-checkper consentire i controlli di integrità. 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-ipv6per consentire i controlli di integrità IPv6. Google Cloud- 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, invia una richiesta- POSTal metodo- firewalls.insert. Sostituisci- PROJECT_IDcon 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-ipv6inviando una richiesta- POSTal metodo- firewalls.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 in - lb-subnet.
- Per creare la regola firewall - fw-allow-ssh, invia una richiesta- POSTal metodo- firewalls.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 richiesta- POSTal metodo- firewalls.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-ipv6inviando una richiesta- POSTal metodo- firewalls.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 di backend e gruppi di istanze
Per questo scenario di bilanciamento del carico, crea un gruppo di istanze gestite zonale di Compute Engine e installa un server web Apache.
Per gestire il traffico IPv4 e IPv6, configura le VM di backend in modo che siano
a doppio stack. Imposta stack-type della VM su IPV4_IPV6. Le VM ereditano anche l'impostazione ipv6-access-type (in questo esempio, INTERNAL) dalla subnet. Per
maggiori 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.
Le istanze che partecipano come VM di backend per i bilanciatori del carico di rete passthrough interni devono eseguire l'ambiente guest Linux, l'ambiente guest Windows o altri processi che forniscono funzionalità equivalenti.
Per semplicità didattica, le VM di backend eseguono Debian GNU/Linux 12.
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 Template 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
disponibili solo su Debian, come apt-get.
- Espandi la sezione Opzioni avanzate.
- Espandi la sezione Gestione e copia il seguente script nel campo Script di avvio. Lo script di avvio configura anche il server Apache in modo che sia in ascolto sulla porta - 8080anziché sulla porta- 80.- #! /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: - Per Tag di rete, aggiungi allow-ssheallow-health-check-ipv6.
- 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 e IPv6 (stack doppio)
 
- Rete: 
 
- Per 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 Template 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
disponibili solo su Debian, come apt-get.
- Espandi la sezione Opzioni avanzate.
- Espandi la sezione Gestione e copia il seguente script nel campo Script di avvio. Lo script di avvio configura anche il server Apache in modo che sia in ascolto sulla porta - 8080anziché sulla porta- 80.- #! /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: - Per Tag di rete, aggiungi allow-ssheallow-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: 
 
- Per 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 saperne di più, consulta MIG stateless o stateful.
- In Nome, inserisci ig-a.
- In Località, seleziona Zona singola.
- Per Regione, seleziona us-west1.
- Per 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: - Per la Modalità di scalabilità automatica, seleziona Off:do not autoscale.
- In Numero massimo di istanze, inserisci 2.
 
- Per la Modalità di scalabilità automatica, seleziona 
- Fai clic su Crea. 
 
gcloud
Le istruzioni gcloud in questa guida presuppongono che tu stia utilizzando Cloud Shell o un altro ambiente con bash installato.
- Crea un template di istanza VM con server HTTP utilizzando il comando - gcloud compute instance-templates create.- Lo script di avvio configura anche il server Apache in modo che sia in ascolto sulla porta - 8080anziché sulla porta- 80.- Per gestire il traffico IPv4 e 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 il comando - 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 effettuando richieste - POSTal metodo- instances.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 effettuando richieste - POSTal metodo- instances.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 - POSTal metodo- instanceGroups.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 di istanze inviando una richiesta - POSTal metodo- instanceGroups.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
Questo esempio crea una VM client nella stessa regione delle VM di 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 Nome su - vm-client-ipv6.
- Imposta Zona su - us-west1-a.
- Espandi la sezione Opzioni avanzate e apporta le seguenti modifiche: - Espandi Networking e poi aggiungi allow-ssha Tag di rete.
- In Interfacce di rete, fai clic su Modifica, apporta le
seguenti modifiche e 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 e poi 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 subnet in quella regione. In questo esempio,
il client si trova nella zona us-west1-a e utilizza la stessa
subnet 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 del bilanciatore del carico e può utilizzare qualsiasi subnet in quella regione. In questo esempio,
il client si trova nella zona us-west1-a e utilizza la stessa
subnet delle 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 al 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
Crea 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_DEFAULTper gestire tutto il traffico del protocollo IPv6 supportato. Tutte le porte devono essere configurate con regole di forwarding- L3_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_DEFAULTper gestire tutto il traffico del protocollo IPv4 supportato. Tutte le porte devono essere configurate con regole di forwarding- L3_DEFAULT. Utilizza- 10.1.2.99come 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 - POSTal metodo- regionHealthChecks.insert. Sostituisci- PROJECT_IDcon 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 inviando una richiesta - POSTal metodo- regionBackendServices.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 forwarding effettuando una richiesta - POSTal metodo- forwardingRules.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 - POSTal metodo- forwardingRules.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. Prendi nota di- IPV6_ADDRESSnella descrizione.- gcloud compute forwarding-rules describe fr-ilb-ipv6 --region=us-west1 
- Dai client con connettività IPv6, esegui questo comando. Sostituisci - IPV6_ADDRESScon l'indirizzo IPv6 temporaneo nella regola di forwarding- fr-ilb-ipv6.- 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 essere simile a questo:- 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 forwarding IPv4 - fr-ilb.- gcloud compute forwarding-rules describe fr-ilb --region=us-west1 
- Invia una richiesta web al bilanciatore del carico utilizzando - curlper 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 viene visualizzato nel testo della risposta HTML in virtù dei contenuti di- /var/www/html/index.htmlsu ogni VM di backend. Le risposte previste sono simili a- Page served from: vm-a1.- curl http://10.1.2.99 - La regola di forwarding è configurata per gestire le porte - 80e- 53. Per inviare il traffico a queste porte, aggiungi i due punti (- :) e il numero 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 all'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_ADDRESScon l'indirizzo IPv6 temporaneo nella regola di forwarding- fr-ilb-ipv6.- Noterai che ricevi una risposta e che il comando - pingfunziona 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_ADDRESSPING- IPV6_ADDRESS(- IPV6_ADDRESS) 56(84) bytes of data. 64 bytes from- IPV6_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 - pingfunziona 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 eseguirle in qualsiasi ordine.
Puoi prenotare un indirizzo IP interno statico per il tuo esempio. Questa configurazione
consente a più regole di forwarding interno di utilizzare lo stesso indirizzo IP con
protocolli e porte diversi.
I backend del bilanciatore del carico di esempio devono comunque trovarsi nella regione
us-west1.
Il seguente diagramma mostra l'architettura di questo esempio.
Puoi anche prendere in considerazione l'utilizzo delle seguenti configurazioni regola di forwarding:
- Regole di forwarding con più porte: - Protocollo TCPcon porte80,8080
- Protocollo L3_DEFAULTcon porteALL
 
- Protocollo 
- Regole di forwarding con tutte le porte: - Protocollo TCPcon porteALL
- Protocollo L3_DEFAULTcon porteALL
 
- Protocollo 
Prenota indirizzo IPv4 interno statico
Prenota un indirizzo IP interno statico per 10.1.2.99 e imposta il relativo flag
--purpose su SHARED_LOADBALANCER_VIP. Il flag --purpose
è necessario per consentire a molte regole di forwarding di utilizzare lo stesso indirizzo IP interno.
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 forwarding con protocollo TCPe porta80. Il traffico TCP in arrivo all'indirizzo IP interno sulla porta80viene gestito dalla regola di forwardingTCP.
- Il secondo bilanciatore del carico ha una regola di forwarding con protocollo UDPe porta53. Il traffico UDP in arrivo all'indirizzo IP interno sulla porta53viene gestito dalla regola di forwardingUDP.
- Il terzo bilanciatore del carico ha una regola di forwarding con protocollo L3_DEFAULTe portaALL. Tutto il resto del traffico che non corrisponde alle regole di forwardingTCPoUDPviene gestito dalla regola di forwardingL3_DEFAULT.
- Tutti e tre i bilanciatori del carico condividono lo stesso indirizzo IP interno statico
(internal-lb-ipv4) nelle regole di forwarding.
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
- Crea una regola di forwarding per il servizio di backend. Utilizza l'indirizzo IP interno statico prenotato ( - 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 inviando una richiesta - POSTal metodo- regionBackendServices.insert. Sostituisci- PROJECT_IDcon 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 - POSTrequest to the- forwardingRules.insertmethod:- 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
- Crea una regola di forwarding per il servizio di backend. Utilizza l'indirizzo IP interno statico prenotato ( - 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 inviando una richiesta - POSTal metodo- regionBackendServices.insert. Sostituisci- PROJECT_IDcon 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 inviando una richiesta - POSTal metodo- forwardingRules.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 l'indirizzo IP interno statico prenotato.
gcloud
Crea la regola di forwarding con il protocollo impostato su L3_DEFAULT per gestire
tutto il traffico degli altri protocolli IPv4 supportati. Utilizza l'indirizzo IP interno statico prenotato (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 forwarding 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 della sezione precedente.
Passaggi successivi
- Per informazioni sui concetti importanti, consulta la panoramica del bilanciatore del carico di rete passthrough interno.
- Per informazioni su come configurare il failover, consulta Configura il failover per il bilanciatore del carico di rete passthrough interno.
- Per informazioni sulla configurazione di logging e monitoraggio per i bilanciatori del carico di rete passthrough interni, consulta Logging e monitoraggio del bilanciatore del carico di rete passthrough interno.
- Per informazioni sulla risoluzione dei problemi, vedi Risolvere i problemi relativi ai bilanciatori del carico di rete passthrough interni.
- Pulisci una configurazione del bilanciamento del carico.