Questa guida utilizza un esempio per insegnare le nozioni di base di Google Cloud bilanciatori del carico di rete passthrough interni. Prima di seguire questa guida, con quanto segue:
- Concetti sui bilanciatori del carico di rete passthrough interno
- Come funzionano i bilanciatori del carico di rete passthrough interni
- Panoramica delle regole firewall
- Concetti sul controllo di integrità
Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:
Autorizzazioni
Per seguire questa guida, devi creare le istanze e modificare in un progetto. Devi essere il proprietario o il proprietario di un progetto Editor o dovresti avere tutti dei seguenti ruoli IAM di Compute Engine:
Attività | Ruolo richiesto |
---|---|
Creazione di reti, subnet e componenti del bilanciatore del carico | Amministratore rete |
Aggiungi e rimuovi regole firewall | Amministratore sicurezza |
Creazione delle istanze | Amministratore istanze Compute |
Per ulteriori informazioni, consulta le seguenti guide:
Configura il bilanciatore del carico con subnet a stack singolo
Questa guida mostra come configurare e testare un bilanciatore del carico di rete passthrough interno. I passaggi in questa sezione descrivono come configurare quanto segue:
- Un esempio che utilizza un VPC in modalità personalizzata
denominata
lb-network
. - Una subnet a stack singolo (
stack-type
impostata suIPv4
), obbligatorio per il traffico IPv4. Quando crei una subnet a stack singolo su una rete VPC in modalità personalizzata, scegli un Intervallo di subnet IPv4 per la subnet. - Regole firewall che consentono le connessioni in entrata alle VM di backend.
- Il gruppo di istanza di backend, che si trova nella seguente regione
e una subnet per questo esempio:
- Regione:
us-west1
- Subnet:
lb-subnet
, con intervallo di indirizzi IPv4 principale10.1.2.0/24
.
- Regione:
- Quattro VM di backend: due VM in un gruppo di istanze non gestite nella zona
us-west1-a
e due VM in un gruppo di istanze non gestite nella zonaus-west1-c
. Per dimostrare l'accesso globale, In questo esempio viene creata una seconda VM client di test in una regione e una subnet diverse:- .
- Regione:
europe-west1
- Subnet:
europe-subnet
, con intervallo di indirizzi IP principali10.3.4.0/24
- Regione:
- Una VM client per testare le connessioni.
- I seguenti componenti del bilanciatore del carico di rete passthrough interno:
- Un controllo di integrità per il servizio di backend.
- Un servizio di backend interno nella regione
us-west1
da gestire distribuzione delle connessioni ai due gruppi di istanze a livello di zona. - Una regola di forwarding interno e un indirizzo IP interno per il frontend del bilanciatore del carico.
L'architettura per questo esempio è simile alla seguente:
Configura una rete, una regione e una subnet
Per creare la rete e la subnet di esempio, segui questi passaggi.
Console
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
lb-network
.Nella sezione Subnet, segui questi passaggi:
- 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 Aggiungi subnet e inserisci le informazioni seguenti:
- .
- Nome:
europe-subnet
- Regione:
europe-west1
- Tipo di stack IP: IPv4 (stack singolo)
- Intervallo di indirizzi IP:
10.3.4.0/24
- Nome:
- Fai clic su Fine.
Fai clic su Crea.
gcloud
Crea la rete VPC personalizzata:
gcloud compute networks create lb-network --subnet-mode=custom
Nella rete
lb-network
, crea una subnet per i backend in Regioneus-west1
:gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Nella rete
lb-network
, crea un'altra subnet per testare l'accesso globale nella regioneeurope-west1
:gcloud compute networks subnets create europe-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=europe-west1
API
Invia una richiesta POST
a
Metodo networks.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "routingConfig": { "routingMode": "REGIONAL" }, "name": "lb-network", "autoCreateSubnetworks": false }
Effettua due richieste POST
alla
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 }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/europe-west1/subnetworks { "name": "europe-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.3.4.0/24", "privateIpGoogleAccess": false }
Configurazione delle regole del firewall
Questo esempio utilizza le seguenti regole firewall:
fw-allow-lb-access
: una regola in entrata, applicabile a tutte le destinazioni in che consente il traffico da origini in Intervalli10.1.2.0/24
e10.3.4.0/24
. Questa regola consente il traffico in entrata da qualsiasi client che si trovi in una delle due subnet. In seguito, potrai configurare e testare l'accesso globale.fw-allow-ssh
: una regola in entrata, applicabile alle istanze da caricare bilanciata, che consente la connettività SSH in entrata sulla porta TCP 22 da qualsiasi . Puoi scegliere un intervallo IP di origine più restrittivo per questa regola. della 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 .
Senza queste regole firewall, il campo di blocco predefinito una regola in entrata blocca in entrata alle istanze di backend.
Console
Nella console Google Cloud, vai alla pagina Criteri firewall.
Per consentire il traffico della subnet, fai clic su Crea regola firewall e inserisci le informazioni seguenti:
- Nome:
fw-allow-lb-access
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- Destinazioni: tutte le istanze nella rete
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
10.1.2.0/24
- Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
Per consentire le connessioni SSH in arrivo, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:
- Nome:
fw-allow-ssh
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- 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: seleziona Protocolli e porte specificati,
Seleziona la casella di controllo TCP, quindi inserisci
22
in Porte.
- Nome:
Fai clic su Crea.
Per consentire i controlli di integrità di Google Cloud, fai clic su Crea regola firewall una terza volta e inserisci le seguenti informazioni:
- Nome:
fw-allow-health-check
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- 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
- Nome:
Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-lb-access
per consentire la comunicazione da all'interno della subnet:gcloud compute firewall-rules create fw-allow-lb-access \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24,10.3.4.0/24 \ --rules=tcp,udp,icmp
Crea la regola firewall
fw-allow-ssh
per consentire la connettività SSH a VM con il tag di reteallow-ssh
. Se omettisource-ranges
, Google Cloud interpreta la regola nel significato che Fonte.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Crea la regola
fw-allow-health-check
per consentire a Google Cloud e controlli di integrità.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
API
Crea la regola firewall fw-allow-lb-access
effettuando una richiesta POST
a
il metodo firewalls.insert
.
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", "10.3.4.0/24" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Crea la regola firewall fw-allow-ssh
effettuando una richiesta POST
a
il 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 }
Crea la regola firewall fw-allow-health-check
effettuando una richiesta POST
a
il 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 }
Creare VM di backend e gruppi di istanze
Questo esempio utilizza due gruppi di istanze non gestite, ciascuno con due backend
(server). Per dimostrare la natura regionale dei bilanciatori del carico di rete passthrough interni:
i due gruppi di istanze sono collocati in zone separate, us-west1-a
e us-west1-c
.
- Il gruppo di istanze
ig-a
contiene le seguenti due VM:vm-a1
vm-a2
- Il gruppo di istanze
ig-c
contiene le seguenti due VM:vm-c1
vm-c2
Il traffico verso tutte e quattro le VM di backend è con bilanciamento del carico.
Per supportare questo esempio e le opzioni di configurazione aggiuntive, ciascuna quattro VM eseguono un server web Apache in ascolto sulle seguenti porte TCP: 80, 8008, 8080, 8088, 443 e 8443.
A ogni VM viene assegnato un indirizzo IP interno in lb-subnet
e un indirizzo IP temporaneo
all'indirizzo IP esterno (pubblico). Puoi rimuovere gli indirizzi IP esterni
in un secondo momento.
L'indirizzo IP esterno per le VM di backend non è obbligatorio. tuttavia, utili per questo esempio perché consentono alle VM di backend di scaricare Apache da internet e possono connettersi tramite SSH.
Per impostazione predefinita, Apache è configurato per associarsi a qualsiasi indirizzo IP. I bilanciatori del carico di rete passthrough interni consegnano i pacchetti preservando IP di destinazione. Assicurati che il software del server in esecuzione sulle VM di backend sia in ascolto sull'IP dell'indirizzo IP della regola di forwarding interno del bilanciatore del carico. Se configuri più regole di forwarding interno, assicurati che il software ascolti l'indirizzo IP interno associato a ciascuno di essi. L'indirizzo IP di destinazione di un pacchetto consegnato a una VM di backend da un il bilanciatore del carico di rete passthrough interno è l'indirizzo IP interno della regola di forwarding.
Per semplificare la didattica, queste VM di backend eseguono Debian Debian GNU/Linux 10.
Console
Crea VM di backend
Nella console Google Cloud, vai alla pagina Istanze VM.
Ripeti i passaggi da 3 a 8 per ogni VM, utilizzando il seguente nome e zone.
- Nome:
vm-a1
, zona:us-west1-a
- Nome:
vm-a2
, zona:us-west1-a
- Nome:
vm-c1
, zona:us-west1-c
- Nome:
vm-c2
, zona:us-west1-c
- Nome:
Fai clic su Crea istanza.
Imposta il Nome come indicato nel passaggio 2.
Per Regione, seleziona
us-west1
e scegli una Zona come indicato nel passaggio 2.Nella sezione Disco di avvio, assicurati che Per il disco di avvio è selezionata l'opzione Debian GNU/Linux 12 (bookworm) le opzioni di CPU e memoria disponibili. Se necessario, fai clic su Cambia per cambiare l'immagine.
Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
eallow-health-check
. - In Interfacce di rete, seleziona quanto segue:
- .
- Rete:
lb-network
- Subnet:
lb-subnet
- Tipo di stack IP: IPv4 (stack singolo)
- Indirizzo IPv4 interno principale: temporaneo (automatico)
- Indirizzo IPv4 esterno: temporaneo
- Rete:
- In Tag di rete, inserisci
Fai clic su Gestione e inserisci il seguente script nel campo Script di avvio. I contenuti dello script sono identici per tutte e quattro le VM.
#! /bin/bash if [ -f /etc/startup_script_completed ]; then exit 0 fi apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl file_ports="/etc/apache2/ports.conf" file_http_site="/etc/apache2/sites-available/000-default.conf" file_https_site="/etc/apache2/sites-available/default-ssl.conf" http_listen_prts="Listen 80\nListen 8008\nListen 8080\nListen 8088" http_vh_prts="*:80 *:8008 *:8080 *:8088" https_listen_prts="Listen 443\nListen 8443" https_vh_prts="*:443 *:8443" 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 prt_conf="$(cat "$file_ports")" prt_conf_2="$(echo "$prt_conf" | sed "s|Listen 80|${http_listen_prts}|")" prt_conf="$(echo "$prt_conf_2" | sed "s|Listen 443|${https_listen_prts}|")" echo "$prt_conf" | tee "$file_ports" http_site_conf="$(cat "$file_http_site")" http_site_conf_2="$(echo "$http_site_conf" | sed "s|*:80|${http_vh_prts}|")" echo "$http_site_conf_2" | tee "$file_http_site" https_site_conf="$(cat "$file_https_site")" https_site_conf_2="$(echo "$https_site_conf" | sed "s|_default_:443|${https_vh_prts}|")" echo "$https_site_conf_2" | tee "$file_https_site" systemctl restart apache2 touch /etc/startup_script_completed
Fai clic su Crea.
Crea gruppi di istanze
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Ripeti i passaggi seguenti per creare due gruppi di istanze non gestite ciascuno con due VM al loro interno, usando queste combinazioni.
- Nome gruppo di istanze:
ig-a
, zona:us-west1-a
, VM:vm-a1
evm-a2
- Nome gruppo di istanze:
ig-c
, zona:us-west1-c
, VM:vm-c1
evm-c2
- Nome gruppo di istanze:
Fai clic su Crea gruppo di istanze.
Fai clic su Nuovo gruppo di istanze non gestite.
Imposta Nome come indicato nel passaggio 2.
Nella sezione Località, seleziona
us-west1
per Regione e quindi scegli una Zona come indicato nel passaggio 2.In corrispondenza di Rete, seleziona
lb-network
.In corrispondenza di Subnet, seleziona
lb-subnet
.Nella sezione Istanze VM, aggiungi le VM come indicato nel passaggio 2.
Fai clic su Crea.
gcloud
Crea le quattro VM eseguendo il comando seguente quattro volte, utilizzando queste quattro combinazioni per
[VM-NAME]
e[ZONE]
. Contenuti dello script sono identiche per tutte e quattro le VM.VM-NAME
:vm-a1
,ZONE
:us-west1-a
VM-NAME
:vm-a2
,ZONE
:us-west1-a
VM-NAME
:vm-c1
,ZONE
:us-west1-c
VM-NAME
:vm-c2
,ZONE
:us-west1-c
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check \ --subnet=lb-subnet \ --metadata=startup-script='#! /bin/bash if [ -f /etc/startup_script_completed ]; then exit 0 fi apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl file_ports="/etc/apache2/ports.conf" file_http_site="/etc/apache2/sites-available/000-default.conf" file_https_site="/etc/apache2/sites-available/default-ssl.conf" http_listen_prts="Listen 80\nListen 8008\nListen 8080\nListen 8088" http_vh_prts="*:80 *:8008 *:8080 *:8088" https_listen_prts="Listen 443\nListen 8443" https_vh_prts="*:443 *:8443" 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 prt_conf="$(cat "$file_ports")" prt_conf_2="$(echo "$prt_conf" | sed "s|Listen 80|${http_listen_prts}|")" prt_conf="$(echo "$prt_conf_2" | sed "s|Listen 443|${https_listen_prts}|")" echo "$prt_conf" | tee "$file_ports" http_site_conf="$(cat "$file_http_site")" http_site_conf_2="$(echo "$http_site_conf" | sed "s|*:80|${http_vh_prts}|")" echo "$http_site_conf_2" | tee "$file_http_site" https_site_conf="$(cat "$file_https_site")" https_site_conf_2="$(echo "$https_site_conf" | sed "s|_default_:443|${https_vh_prts}|")" echo "$https_site_conf_2" | tee "$file_https_site" systemctl restart apache2 touch /etc/startup_script_completed'
Crea i due gruppi di istanze non gestite in ciascuna zona:
gcloud compute instance-groups unmanaged create ig-a \ --zone=us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone=us-west1-c
Aggiungi le VM ai gruppi di istanze appropriati:
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone=us-west1-a \ --instances=vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone=us-west1-c \ --instances=vm-c1,vm-c2
API
Per le quattro VM, utilizza i seguenti nomi e zone di VM:
VM-NAME
:vm-a1
,ZONE
:us-west1-a
VM-NAME
:vm-a2
,ZONE
:us-west1-a
VM-NAME
:vm-c1
,ZONE
:us-west1-c
VM-NAME
:vm-c2
,ZONE
:us-west1-c
Puoi ottenere l'attuale DEBIAN_IMAGE_NAME
eseguendo questo
Comando gcloud
:
gcloud compute images list \ --filter="family=debian-12"
Crea quattro VM di backend effettuando quattro richieste POST
alla
Metodo instances.insert
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM-NAME", "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": [ { "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-NAME", "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\nfile_ports=\"/etc/apache2/ports.conf\"\nfile_http_site=\"/etc/apache2/sites-available/000-default.conf\"\nfile_https_site=\"/etc/apache2/sites-available/default-ssl.conf\"\nhttp_listen_prts=\"Listen 80\\nListen 8008\\nListen 8080\\nListen 8088\"\nhttp_vh_prts=\"*:80 *:8008 *:8080 *:8088\"\nhttps_listen_prts=\"Listen 443\\nListen 8443\"\nhttps_vh_prts=\"*:443 *:8443\"\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\nprt_conf=\"$(cat \"$file_ports\")\"\nprt_conf_2=\"$(echo \"$prt_conf\" | sed \"s|Listen 80|${http_listen_prts}|\")\"\nprt_conf=\"$(echo \"$prt_conf_2\" | sed \"s|Listen 443|${https_listen_prts}|\")\"\necho \"$prt_conf\" | tee \"$file_ports\"\nhttp_site_conf=\"$(cat \"$file_http_site\")\"\nhttp_site_conf_2=\"$(echo \"$http_site_conf\" | sed \"s|*:80|${http_vh_prts}|\")\"\necho \"$http_site_conf_2\" | tee \"$file_http_site\"\nhttps_site_conf=\"$(cat \"$file_https_site\")\"\nhttps_site_conf_2=\"$(echo \"$https_site_conf\" | sed \"s|_default_:443|${https_vh_prts}|\")\"\necho \"$https_site_conf_2\" | tee \"$file_https_site\"\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Crea due gruppi di istanze effettuando una richiesta POST
all'istanza
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" }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instanceGroups { "name": "ig-c", "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
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", "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a2" } ] }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instanceGroups/ig-c/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instances/vm-c1", "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instances/vm-c2" } ] }
Configura i componenti del bilanciatore del carico
Questi passaggi configurano tutto il bilanciatore del carico di rete passthrough interno componenti, che iniziano con l'integrità di controllo e di servizio di backend, quindi i componenti frontend:
Controllo di integrità: in questo esempio, utilizzi un controllo di integrità HTTP che verifica la presenza di una risposta HTTP
200
(OK). Per ulteriori informazioni, consulta sezione relativa ai controlli di integrità del bilanciatore del carico di rete passthrough interno Panoramica.Servizio di backend: poiché devi trasmettere il traffico HTTP attraverso il bilanciatore del carico interno, devi utilizzare TCP, anziché UDP.
Regola di forwarding: questo esempio crea una singola regola di forwarding interno.
Indirizzo IP interno: in questo esempio, specifichi un indirizzo IP interno
10.1.2.99
, quando crei la regola di forwarding.
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico e fai clic su Avanti.
- Per Pubblico o interno, seleziona Interno e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
Nella pagina Crea bilanciatore del carico di rete passthrough interno, inserisci le seguenti informazioni:
- Nome bilanciatore del carico:
be-ilb
- Regione:
us-west1
- Rete:
lb-network
Configura i backend
- Fai clic su Configurazione backend.
- Per gestire solo il traffico IPv4, nella sezione Nuovo backend di Backend, seleziona IPv4 (stack singolo) come tipo di stack IP.
- In Gruppo di istanze, seleziona il gruppo di istanze
ig-c
e fai clic su Fine. - Fai clic su Aggiungi un backend e ripeti il passaggio per aggiungere
ig-a
. Nell'elenco Controllo di integrità, seleziona Crea un controllo di integrità. inserisci le seguenti informazioni e fai clic su Salva.
- Nome:
hc-http-80
- Protocollo:
HTTP
- Porta:
80
- Protocollo proxy:
NONE
- Percorso di richiesta:
/
Tieni presente che quando utilizzi la console Google Cloud per creare il carico di integrità, il controllo di integrità è globale. Se vuoi creare un controllo di integrità a livello di regione, usa
gcloud
o l'API.- Nome:
Verifica che sia presente un segno di spunta blu accanto a Backend configurazione prima di continuare.
Configura il frontend
- Fai clic su Configurazione frontend.
- Nella sezione Nuovo IP e porta frontend, segui questi passaggi:
- .
- In Nome, inserisci
fr-ilb
. - In Subnet, seleziona
lb-subnet
. - Nella sezione Scopo IP interno, nell'elenco Indirizzo IP,
seleziona Crea indirizzo IP, inserisci le seguenti informazioni e
e poi fai clic su Prenota.
- Nome:
ip-ilb
- Versione IP: IPv4
- Indirizzo IP statico:Fammi scegliere
- Indirizzo IP personalizzato:
10.1.2.99
- Nome:
- In Trasferimenti, seleziona Più e, in Numeri di porta,inserisci
80
,8008
,8080
e8088
. - Prima di continuare, verifica che sia presente un segno di spunta blu accanto a Configurazione frontend.
- In Nome, inserisci
Rivedi la configurazione
- Fai clic su Esamina e finalizza.
- Rivedi le impostazioni di configurazione del bilanciatore del carico.
- (Facoltativo) Fai clic su Codice equivalente per visualizzare la richiesta API REST. che verrà utilizzato per creare il bilanciatore del carico.
- Fai clic su Crea.
gcloud
Crea un nuovo controllo di integrità HTTP a livello di regione per testare la connettività HTTP al VM sulla porta 80.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Crea il servizio di backend per il traffico HTTP:
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 i due gruppi 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 gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-c \ --instance-group-zone=us-west1-c
Creare una regola di forwarding per il servizio di backend. Quando crei per la regola di forwarding, specifica
10.1.2.99
per l'indirizzo IP interno in una subnet.gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=TCP \ --ports=80,8008,8080,8088 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Crea il controllo di integrità effettuando una richiesta POST
all'indirizzo
Metodo regionHealthChecks.insert
.
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 a livello di regione effettuando una richiesta POST
all'istanza
Metodo regionBackendServices.insert
.
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" }, { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instanceGroups/ig-c", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "connectionDraining": { "drainingTimeoutSec": 0 } }
Crea la regola di forwarding effettuando una richiesta POST
all'oggetto
Metodo forwardingRules.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "10.1.2.99", "IPProtocol": "TCP", "ports": [ "80", "8008", "8080", "8088" ], "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" }
Testa il bilanciatore del carico
Questi test mostrano come convalidare la configurazione del bilanciatore del carico e apprendono sul suo comportamento previsto.
Crea una VM client
In questo esempio viene creata una VM client (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
test.
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
In Nome, inserisci
vm-client
.In corrispondenza di Regione, seleziona
us-west1
.In Zona, seleziona
us-west1-a
.Fai clic su Opzioni avanzate.
Fai clic su 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
.
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 }
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. Il comportamento previsto riguarda il traffico verso la distribuzione tra le quattro VM di backend perché non è stata configurato.
Connettiti all'istanza VM client.
gcloud compute ssh vm-client --zone=us-west1-a
Effettua una richiesta web al bilanciatore del carico utilizzando
curl
per contattare il relativo IP . Ripeti la richiesta per vedere che le risposte provengono diverse VM di backend. Il nome della VM che genera la risposta è visualizzato nel testo della risposta HTML, in virtù dei contenuti/var/www/html/index.html
su ogni VM di backend. Ad esempio, le risposte previste sono simili aPage served from: vm-a1
ePage served from: vm-a2
.curl http://10.1.2.99
La regola di forwarding è configurata per gestire le porte
80
,8008
,8080
e8088
. Per inviare il traffico a queste altre porte, aggiungi i due punti (:
) e la di porta dopo l'indirizzo IP, in questo modo:curl http://10.1.2.99:8008
Se aggiungi un'etichetta di servizio alla regola di forwarding interno, puoi utilizzare il DNS interno per contattare il bilanciatore del carico utilizzando il nome del servizio.
curl http://web-test.fr-ilb.il4.us-west1.lb.PROJECT_ID.internal
Invia un ping all'indirizzo IP del bilanciatore del carico
Questo test dimostra un comportamento previsto: non è possibile inviare un ping all'indirizzo IP del bilanciatore del carico. Questo è dovuto al fatto che i bilanciatori del carico di rete passthrough interni implementate nella programmazione delle reti virtuali, non sono dispositivi mobili.
Connettiti all'istanza VM client.
gcloud compute ssh vm-client --zone=us-west1-a
Prova a inviare un ping all'indirizzo IP del bilanciatore del carico. Tieni presente che ricevere una risposta e che il comando
ping
scada dopo 10 secondi in questa esempio.timeout 10 ping 10.1.2.99
Invia richieste da VM con bilanciamento del carico
Questo test dimostra che quando una VM di backend invia pacchetti all'indirizzo IP di dalla regola di forwarding del bilanciatore del carico, le richieste vengono instradate a se stesso. Questo avviene indipendentemente dallo stato del controllo di integrità della VM di backend.
I bilanciatori del carico di rete passthrough interni vengono implementati tramite la programmazione della rete virtuale e configurazione VM nel sistema operativo guest. Sulle VM Linux, l'oggetto dell'ambiente crea una route Indirizzo IP del bilanciatore del carico nella tabella di routing locale del sistema operativo.
Poiché questa route locale si trova all'interno della VM stessa (non una route rete VPC), i pacchetti inviati all'indirizzo IP del bilanciatore del carico vengono non elaborati dalla rete VPC. Invece, i pacchetti inviati l'indirizzo IP del bilanciatore del carico rimane all'interno del sistema operativo della VM.
Connettiti a una VM di backend, ad esempio
vm-a1
:gcloud compute ssh vm-a1 --zone=us-west1-a
Effettua una richiesta web al bilanciatore del carico (tramite indirizzo IP o nome di servizio) utilizzando
curl
. La risposta proviene dalla stessa VM di backend che effettua la richiesta. Le richieste ripetute ricevono una risposta nello stesso modo. La risposta prevista quando i test divm-a1
sono semprePage served from: vm-a1
.curl http://10.1.2.99
Controlla la tabella di routing locale, cercando una destinazione che corrisponda alla Indirizzo IP del bilanciatore del carico stesso,
10.1.2.99
. Questo percorso è un parte necessaria di un bilanciatore del carico di rete passthrough interno, ma dimostra anche il motivo per cui una VM dietro il bilanciatore del carico riceve sempre una risposta la stessa VM.ip route show table local | grep 10.1.2.99
Quando una VM di backend per un bilanciatore del carico di rete passthrough interno invia pacchetti al bilanciatore del carico nella regola di forwarding, i pacchetti vengono sempre instradati alla VM che invia la richiesta. Questo perché un bilanciatore del carico di rete passthrough interno è un carico passthrough e viene implementato creando una route locale per l'IP del bilanciatore all'interno del sistema operativo guest della VM, come indicato in questa sezione. Se disponi di un caso d'uso in cui i backend con bilanciamento del carico devono inviare il traffico TCP al dell'indirizzo IP del bilanciatore del carico e ti serve che il traffico venga distribuito provenienti da un backend senza bilanciamento del carico, valuta la possibilità di utilizzare Bilanciatore del carico di rete proxy interno regionale.
Per ulteriori informazioni, vedi Bilanciatori del carico di rete passthrough interni come successivo hop.
Configura il bilanciatore del carico con subnet a doppio stack
Questa guida mostra come configurare e testare un bilanciatore del carico di rete passthrough interno. I passaggi in questa sezione descrivono come configurare quanto segue:
- L'esempio in questa pagina utilizza un VPC in modalità personalizzata
denominata
lb-network-dual-stack
. IPv6 traffico richiede una subnet in modalità personalizzata. - Una subnet dual-stack (
stack-type
impostata suIPv4_IPv6
), obbligatorio per il traffico IPv6. Quando crei una subnet a doppio stack su una rete VPC in modalità personalizzata, scegli un tipo di accesso IPv6 per una subnet. Per questo esempio, impostiamo il parametroipv6-access-type
della subnet suINTERNAL
. Ciò significa che le nuove VM su questa subnet possono essere assegnate indirizzi IPv4 e indirizzi IPv6 interni. Per istruzioni, vedi Documentazione VPC sull'aggiunta di un doppio stack subnet. - Regole firewall che consentono le connessioni in entrata alle VM di backend.
- Il gruppo di istanza di backend, che si trova nella seguente regione
e una subnet per questo esempio:
- Regione:
us-west1
- Subnet:
lb-subnet
, con intervallo di indirizzi IPv4 principale10.1.2.0/24
. Anche se scegli quale intervallo di indirizzi IPv4 nella subnet, l'intervallo di indirizzi IPv6 viene assegnato automaticamente. Google fornisce un blocco CIDR IPv6 di dimensioni fisse (/64
).
- Regione:
- Quattro backend a doppio stack
VM: due VM in un gruppo di istanze non gestite nella zona
us-west1-a
e due VM in un gruppo di istanze non gestite nella zonaus-west1-c
. Per dimostrare l'accesso globale, in questo esempio viene creata una seconda VM client di test in un'altra regione subnet:- .
- Regione:
europe-west1
- Subnet:
europe-subnet
, con intervallo di indirizzi IP principali10.3.4.0/24
- Regione:
- Una VM client per testare le connessioni.
- I seguenti componenti del bilanciatore del carico di rete passthrough interno:
- Un controllo di integrità per il servizio di backend.
- Un servizio di backend interno nella regione
us-west1
da gestire distribuzione delle connessioni ai due gruppi di istanze a livello di zona. - Due regole di forwarding interno per il frontend del bilanciatore del carico.
Il seguente diagramma mostra l'architettura per questo esempio:
Configura una rete, una regione e una subnet
Il bilanciatore del carico di rete passthrough interno di esempio descritto in questa pagina viene creato in un
rete VPC in modalità personalizzata denominata
lb-network-dual-stack
.
Per configurare le subnet con intervalli IPv6 interni, abilita un VPC nell'intervallo IPv6 interno ULA della rete. Gli intervalli di subnet IPv6 interne vengono allocati questo intervallo.
Console
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
In Nome, inserisci
lb-network-dual-stack
.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:
- Nome:
lb-subnet
- Regione:
us-west1
- Tipo di stack IP: IPv4 e IPv6 (stack doppio)
- Intervallo IPv4:
10.1.2.0/24
. - Tipo di accesso IPv6: Interno
- Nome:
Fai clic su Fine.
Fai clic su Aggiungi subnet e inserisci le informazioni seguenti:
- Nome:
europe-subnet
- Regione:
europe-west1
- Tipo di stack IP: IPv4 (stack singolo)
- Intervallo di indirizzi IP:
10.3.4.0/24
- Nome:
Fai clic su Fine.
Fai clic su Crea.
gcloud
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. Se vuoi selezionare l'intervallo IPv6/48
assegnato, usa il flag--internal-ipv6-range
per specificare un intervallo.gcloud compute networks create lb-network-dual-stack \ --subnet-mode=custom \ --enable-ula-internal-ipv6 \ --internal-ipv6-range=ULA_IPV6_RANGE \ --bgp-routing-mode=regional
Sostituisci
ULA_IPV6_RANGE
con un prefisso/48
all'interno di Intervallofd20::/20
utilizzato da Google per gli intervalli di subnet IPv6 interni. Se non usare il flag--internal-ipv6-range
, Google seleziona un prefisso/48
per la rete, ad esempiofd20:bc7:9a1c::/48
.All'interno della rete
NETWORK
, crea una subnet per i backend nella regioneus-west1
e un'altra subnet per testare l'accesso globale regioneeurope-west1
.Per creare le subnet, esegui Comando
gcloud compute networks subnets create
.gcloud compute networks subnets create lb-subnet \ --network=lb-network-dual-stack \ --range=10.1.2.0/24 \ --region=us-west1 \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL
gcloud compute networks subnets create europe-subnet \ --network=lb-network-dual-stack \ --range=10.3.4.0/24 \ --region=europe-west1 \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL
API
Crea una nuova rete VPC in modalità personalizzata.
Per configurare intervalli IPv6 interni su qualsiasi subnet in questo
imposta enableUlaInternalIpv6
su true. Questa opzione assegna un /48
compreso nell'intervallo fd20::/20
utilizzato da Google per l'IPv6 interno
di subnet. Se vuoi selezionare l'intervallo IPv6 /48
assegnato,
usa anche il campo internalIpv6Range
per specificare un intervallo.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "lb-network-dual-stack", "mtu": MTU, "enableUlaInternalIpv6": true, "internalIpv6Range": "ULA_IPV6_RANGE", "routingConfig": { "routingMode": "DYNAMIC_ROUTING_MODE" } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui è disponibile il VPC viene creata la rete.MTU
: l'unità massima di trasmissione della rete. La MTU può essere1460
(valore predefinito) o1500
. Controllare il numero massimo di trasmissioni dell'unità di elaborazione prima di impostare la MTU su1500
.ULA_IPV6_RANGE
: un prefisso/48
all'interno di Intervallofd20::/20
utilizzato da Google per gli intervalli di subnet IPv6 interni. Se non fornire un valore perinternalIpv6Range
, Google seleziona un prefisso/48
per la rete.DYNAMIC_ROUTING_MODE
:global
oregional
per controlla il comportamento degli annuncio di route dei router Cloud in ogni rete. Per ulteriori informazioni, consulta l'articolo sul routing dinamico. .Per ulteriori informazioni, consulta Metodo
networks.insert
.
Effettua due richieste POST
alla
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-dual-stack", "name": "lb-subnet" "stackType": IPV4_IPV6, "ipv6AccessType": Internal }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "10.3.4.0/24", "network": "lb-network-dual-stack", "name": "europe-subnet" "stackType": IPV4_IPV6, "ipv6AccessType": Internal }
Configurazione delle regole del firewall
Questo esempio utilizza le seguenti regole firewall:
fw-allow-lb-access
: una regola in entrata, applicabile a tutte le destinazioni in rete VPC, che consente il traffico da origini in Intervalli10.1.2.0/24
e10.3.4.0/24
. Questa regola consente il traffico in entrata da qualsiasi client che si trovi in una delle due subnet. In seguito, puoi configurare e testare l'accesso globale.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 trovi in una delle due subnet. In seguito, puoi configurare e testare l'accesso globale.fw-allow-ssh
: una regola in entrata, applicabile alle istanze da caricare bilanciata, che consente la connettività SSH in entrata sulla porta TCP 22 da qualsiasi . Puoi scegliere un intervallo IP di origine più restrittivo per questa regola. della 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 con bilanciamento del carico, che consente il traffico proveniente dall'integrità di Google Cloud di controllo (2600:2d00:1:b029::/64
). Questo esempio utilizza la classe il tag di destinazioneallow-health-check-ipv6
per identificare le istanze a cui devono essere applicati.
Senza queste regole firewall, il campo di blocco predefinito una regola in entrata blocca in entrata alle istanze di backend.
Console
Nella console Google Cloud, vai alla pagina Criteri firewall.
Per creare la regola che consenta il traffico della subnet, fai clic su Crea regola firewall e inserisci le informazioni seguenti:
- Nome:
fw-allow-lb-access
- Rete:
lb-network-dual-stack
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- Destinazioni: tutte le istanze nella rete
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
10.1.2.0/24
e10.3.4.0/24
- Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
Per consentire il traffico della subnet IPv6, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:
- Nome:
fw-allow-lb-access-ipv6
- Rete:
lb-network-dual-stack
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- Destinazioni: tutte le istanze nella rete
- Filtro di origine: Intervalli IPv6
- Intervalli IPv6 di origine: IPV6_ADDRESS assegnati nel
lb-subnet
- Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
Per consentire le connessioni SSH in arrivo, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:
- Nome:
fw-allow-ssh
- Rete:
lb-network-dual-stack
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- 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: seleziona Protocolli e porte specificati,
Seleziona la casella di controllo TCP, quindi inserisci
22
in Porte.
- Nome:
Fai clic su Crea.
Per consentire i controlli di integrità IPv6 di Google Cloud, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:
- Nome:
fw-allow-health-check-ipv6
- Rete:
lb-network-dual-stack
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- 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
- Nome:
Fai clic su Crea.
Per consentire i controlli di integrità di Google Cloud, fai di nuovo clic su Crea regola firewall e inserisci le seguenti informazioni:
- Nome:
fw-allow-health-check
- Rete:
lb-network-dual-stack
- Priorità:
1000
- Direzione del traffico: ingress
- Azione in caso di corrispondenza: allow
- 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
- Nome:
Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-lb-access
per consentire la comunicazione con la subnet:gcloud compute firewall-rules create fw-allow-lb-access \ --network=lb-network-dual-stack \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24,10.3.4.0/24 \ --rules=all
Crea la regola firewall
fw-allow-lb-access-ipv6
per consentire la comunicazione con la subnet:gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=lb-network-dual-stack \ --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-ssh
per consentire la connettività SSH a VM con il tag di reteallow-ssh
. Se omettisource-ranges
, Google Cloud interpreta la regola nel significato che Fonte.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network-dual-stack \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Crea la regola
fw-allow-health-check-ipv6
per consentire Controlli di integrità IPv6 di Google Cloud.gcloud compute firewall-rules create fw-allow-health-check-ipv6 \ --network=lb-network-dual-stack \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp
Crea la regola
fw-allow-health-check
per consentire a Google Cloud e controlli di integrità.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network-dual-stack \ --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
API
Crea la regola firewall
fw-allow-lb-access
effettuando una richiestaPOST
a il metodofirewalls.insert
.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-dual-stack", "priority": 1000, "sourceRanges": [ "10.1.2.0/24", "10.3.4.0/24" ], "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-dual-stack", "priority": 1000, "sourceRanges": [ "IPV6_ADDRESS" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Sostituisci
IPV6_ADDRESS
con l'indirizzo IPv6 assegnato nellb-subnet
.Crea la regola firewall
fw-allow-ssh
effettuando una richiestaPOST
a il 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-dual-stack", "priority": 1000, "sourceRanges": [ "0.0.0.0/0" ], "targetTags": [ "allow-ssh" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Crea la regola firewall
fw-allow-health-check-ipv6
effettuando una richiestaPOST
a il 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-dual-stack", "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 la regola firewall
fw-allow-health-check
effettuando una richiestaPOST
a il 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-dual-stack", "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 }
Creare VM di backend e gruppi di istanze
Questo esempio utilizza due gruppi di istanze non gestite, ciascuno con due backend
(server). Per dimostrare la natura regionale dei bilanciatori del carico di rete passthrough interni:
i due gruppi di istanze sono collocati in zone separate, us-west1-a
e us-west1-c
.
- Il gruppo di istanze
ig-a
contiene le seguenti due VM:vm-a1
vm-a2
- Il gruppo di istanze
ig-c
contiene le seguenti due VM:vm-c1
vm-c2
Il traffico verso tutte e quattro le VM di backend è con bilanciamento del carico.
Per supportare questo esempio e le opzioni di configurazione aggiuntive, ciascuna
quattro VM eseguono un server web Apache in ascolto sulle seguenti porte TCP: 80
,8008
, 8080
, 8088
, 443
e 8443
.
A ogni VM viene assegnato un indirizzo IP interno in lb-subnet
e un indirizzo IP temporaneo
all'indirizzo IP esterno (pubblico). Puoi rimuovere gli indirizzi IP esterni
in un secondo momento.
L'indirizzo IP esterno per le VM di backend non è obbligatorio. tuttavia, utili per questo esempio perché consentono alle VM di backend di scaricare Apache da internet e possono connettersi tramite SSH.
Per impostazione predefinita, Apache è configurato per associarsi a qualsiasi indirizzo IP. I bilanciatori del carico di rete passthrough interni consegnano i pacchetti preservando IP di destinazione.
Assicurati che il software del server in esecuzione sulle VM di backend sia in ascolto sull'IP dell'indirizzo IP della regola di forwarding interno del bilanciatore del carico. Se configuri più regole di forwarding interno, assicurati che il software ascolti l'indirizzo IP interno associato a ciascuno di essi. L'indirizzo IP di destinazione di un pacchetto consegnato a una VM di backend da un il bilanciatore del carico di rete passthrough interno è l'indirizzo IP interno della regola di forwarding.
Assicurati che il tipo di stack della subnet corrisponda al tipo di stack dell'istanza e i modelli utilizzati dai gruppi di istanze gestite. La subnet deve essere a doppio stack se il gruppo di istanze gestite utilizza un modello di istanza a doppio stack.
Per semplificare la didattica, queste VM di backend eseguono Debian GNU/Linux 10.
Console
Crea VM di backend
Nella console Google Cloud, vai alla pagina Istanze VM.
Ripeti i passaggi da 3 a 8 per ogni VM, utilizzando il seguente nome e zone.
- Nome:
vm-a1
, zona:us-west1-a
- Nome:
vm-a2
, zona:us-west1-a
- Nome:
vm-c1
, zona:us-west1-c
- Nome:
vm-c2
, zona:us-west1-c
- Nome:
Fai clic su Crea istanza.
Imposta il Nome come indicato nel passaggio 2.
Per Regione, seleziona
us-west1
e scegli una Zona come indicato nel passaggio 2.Nella sezione Disco di avvio, assicurati che Per il disco di avvio è selezionata l'opzione Debian GNU/Linux 12 (bookworm) le opzioni di CPU e memoria disponibili. Se necessario, fai clic su Cambia per cambiare l'immagine.
Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
eallow-health-check-ipv6
. - In Interfacce di rete, seleziona quanto segue:
- .
- Rete:
lb-network-dual-stack
- Subnet:
lb-subnet
- Tipo di stack IP: IPv4 e IPv6 (stack doppio)
- Indirizzo IPv4 interno principale: temporaneo (automatico)
- Indirizzo IPv4 esterno: temporaneo
- Rete:
Fai clic su Gestione e inserisci il seguente script nel campo Script di avvio. I contenuti dello script sono identici per tutte e quattro le VM.
#! /bin/bash if [ -f /etc/startup_script_completed ]; then exit 0 fi apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl file_ports="/etc/apache2/ports.conf" file_http_site="/etc/apache2/sites-available/000-default.conf" file_https_site="/etc/apache2/sites-available/default-ssl.conf" http_listen_prts="Listen 80\nListen 8008\nListen 8080\nListen 8088" http_vh_prts="*:80 *:8008 *:8080 *:8088" https_listen_prts="Listen 443\nListen 8443" https_vh_prts="*:443 *:8443" 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 prt_conf="$(cat "$file_ports")" prt_conf_2="$(echo "$prt_conf" | sed "s|Listen 80|${http_listen_prts}|")" prt_conf="$(echo "$prt_conf_2" | sed "s|Listen 443|${https_listen_prts}|")" echo "$prt_conf" | tee "$file_ports" http_site_conf="$(cat "$file_http_site")" http_site_conf_2="$(echo "$http_site_conf" | sed "s|*:80|${http_vh_prts}|")" echo "$http_site_conf_2" | tee "$file_http_site" https_site_conf="$(cat "$file_https_site")" https_site_conf_2="$(echo "$https_site_conf" | sed "s|_default_:443|${https_vh_prts}|")" echo "$https_site_conf_2" | tee "$file_https_site" systemctl restart apache2 touch /etc/startup_script_completed
- In Tag di rete, inserisci
Fai clic su Crea.
Crea gruppi di istanze
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Ripeti i passaggi seguenti per creare due gruppi di istanze non gestite ciascuno con due VM al loro interno, usando queste combinazioni.
- Nome gruppo di istanze:
ig-a
, zona:us-west1-a
, VM:vm-a1
evm-a2
- Nome gruppo di istanze:
ig-c
, zona:us-west1-c
, VM:vm-c1
evm-c2
- Nome gruppo di istanze:
Fai clic su Crea gruppo di istanze.
Fai clic su Nuovo gruppo di istanze non gestite.
Imposta Nome come indicato nel passaggio 2.
Nella sezione Località, seleziona
us-west1
come Regione e quindi scegli una Zona come indicato nel passaggio 2.In Rete, seleziona
lb-network-dual-stack
.In Subnet, seleziona
lb-subnet
.Nella sezione Istanze VM, aggiungi le VM come indicato nel passaggio 2.
Fai clic su Crea.
gcloud
Per creare le quattro VM, esegui Comando
gcloud compute instances create
quattro volte, utilizzando queste quattro combinazioni per[VM-NAME]
e[ZONE]
. Contenuti dello script sono identiche per tutte e quattro le VM.VM-NAME
:vm-a1
,ZONE
:us-west1-a
VM-NAME
:vm-a2
,ZONE
:us-west1-a
VM-NAME
:vm-c1
,ZONE
:us-west1-c
VM-NAME
:vm-c2
,ZONE
:us-west1-c
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check-ipv6 \ --subnet=lb-subnet \ --stack-type=IPV4_IPV6 \ --metadata=startup-script='#! /bin/bash if [ -f /etc/startup_script_completed ]; then exit 0 fi apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl file_ports="/etc/apache2/ports.conf" file_http_site="/etc/apache2/sites-available/000-default.conf" file_https_site="/etc/apache2/sites-available/default-ssl.conf" http_listen_prts="Listen 80\nListen 8008\nListen 8080\nListen 8088" http_vh_prts="*:80 *:8008 *:8080 *:8088" https_listen_prts="Listen 443\nListen 8443" https_vh_prts="*:443 *:8443" 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 prt_conf="$(cat "$file_ports")" prt_conf_2="$(echo "$prt_conf" | sed "s|Listen 80|${http_listen_prts}|")" prt_conf="$(echo "$prt_conf_2" | sed "s|Listen 443|${https_listen_prts}|")" echo "$prt_conf" | tee "$file_ports" http_site_conf="$(cat "$file_http_site")" http_site_conf_2="$(echo "$http_site_conf" | sed "s|*:80|${http_vh_prts}|")" echo "$http_site_conf_2" | tee "$file_http_site" https_site_conf="$(cat "$file_https_site")" https_site_conf_2="$(echo "$https_site_conf" | sed "s|_default_:443|${https_vh_prts}|")" echo "$https_site_conf_2" | tee "$file_https_site" systemctl restart apache2 touch /etc/startup_script_completed'
Crea i due gruppi di istanze non gestite in ciascuna zona:
gcloud compute instance-groups unmanaged create ig-a \ --zone=us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone=us-west1-c
Aggiungi le VM ai gruppi di istanze appropriati:
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone=us-west1-a \ --instances=vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone=us-west1-c \ --instances=vm-c1,vm-c2
api
Per le quattro VM, utilizza i seguenti nomi e zone di VM:
VM-NAME
:vm-a1
,ZONE
:us-west1-a
VM-NAME
:vm-a2
,ZONE
:us-west1-a
VM-NAME
:vm-c1
,ZONE
:us-west1-c
VM-NAME
:vm-c2
,ZONE
:us-west1-c
Puoi ottenere il valore DEBIAN_IMAGE_NAME
attuale eseguendo
seguente comando gcloud
:
gcloud compute images list \ --filter="family=debian-12"
Crea quattro VM di backend effettuando quattro richieste POST
alla
Metodo instances.insert
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM-NAME", "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-dual-stack", "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-NAME", "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\nfile_ports=\"/etc/apache2/ports.conf\"\nfile_http_site=\"/etc/apache2/sites-available/000-default.conf\"\nfile_https_site=\"/etc/apache2/sites-available/default-ssl.conf\"\nhttp_listen_prts=\"Listen 80\\nListen 8008\\nListen 8080\\nListen 8088\"\nhttp_vh_prts=\"*:80 *:8008 *:8080 *:8088\"\nhttps_listen_prts=\"Listen 443\\nListen 8443\"\nhttps_vh_prts=\"*:443 *:8443\"\nvm_hostname=\"$(curl -H \"Metadata-Flavor:Google\" \\\nhttp://169.254.169.254/computeMetadata/v1/instance/name)\"\necho \"Page served from: $vm_hostname\" | \\\ntee /var/www/html/index.html\nprt_conf=\"$(cat \"$file_ports\")\"\nprt_conf_2=\"$(echo \"$prt_conf\" | sed \"s|Listen 80|${http_listen_prts}|\")\"\nprt_conf=\"$(echo \"$prt_conf_2\" | sed \"s|Listen 443|${https_listen_prts}|\")\"\necho \"$prt_conf\" | tee \"$file_ports\"\nhttp_site_conf=\"$(cat \"$file_http_site\")\"\nhttp_site_conf_2=\"$(echo \"$http_site_conf\" | sed \"s|*:80|${http_vh_prts}|\")\"\necho \"$http_site_conf_2\" | tee \"$file_http_site\"\nhttps_site_conf=\"$(cat \"$file_https_site\")\"\nhttps_site_conf_2=\"$(echo \"$https_site_conf\" | sed \"s|_default_:443|${https_vh_prts}|\")\"\necho \"$https_site_conf_2\" | tee \"$file_https_site\"\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Crea due gruppi di istanze effettuando una richiesta POST
all'istanza
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-dual-stack", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet" }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instanceGroups { "name": "ig-c", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network-dual-stack", "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
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", "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a2" } ] }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instanceGroups/ig-c/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instances/vm-c1", "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instances/vm-c2" } ] }
Configura i componenti del bilanciatore del carico
Questi passaggi configurano tutto il bilanciatore del carico di rete passthrough interno componenti, che iniziano con l'integrità di controllo e di servizio di backend, quindi i componenti frontend:
Controllo di integrità: in questo esempio, viene utilizzato un controllo di integrità HTTP che verifica la presenza di una risposta HTTP
200
(OK). Per ulteriori informazioni, vedi sezione relativa ai controlli di integrità della panoramica del bilanciatore del carico di rete passthrough interno.Servizio di backend:poiché devi passare il traffico HTTP tramite bilanciatore del carico interno, devi utilizzare TCP, non UDP.
Regola di forwarding: questo esempio crea due regole di forwarding interno per il traffico IPv4 e IPv6.
Indirizzo IP interno: in questo esempio, specifichi un indirizzo IP interno
10.1.2.99
, quando crei la regola di forwarding IPv4. Per maggiori informazioni le informazioni, vedi Indirizzo IP interno. Anche se scegli l'indirizzo IPv4 configurato, l'indirizzo IPv6 viene assegnato automaticamente.
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico e fai clic su Avanti.
- Per Pubblico o interno, seleziona Interno e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
Nella pagina Crea bilanciatore del carico di rete passthrough interno, inserisci le seguenti informazioni:
- Nome bilanciatore del carico:
be-ilb
- Regione:
us-west1
- Rete:
lb-network-dual-stack
Configurazione backend
- Fai clic su Configurazione backend.
- Nella sezione Nuovo backend di Backend, seleziona il tipo di stack IP IPv4 e IPv6 (stack doppio).
- In Gruppo di istanze, seleziona il gruppo di istanze
ig-a
e fai clic su Fine. - Fai clic su Aggiungi un backend e ripeti il passaggio per aggiungere
ig-c
. - Nell'elenco Controllo di integrità, seleziona Crea un controllo di integrità.
inserisci le seguenti informazioni e fai clic su Salva:
- .
- Nome:
hc-http-80
. - Ambito: A livello di regione.
- Protocollo:
HTTP
. - Porta:
80
. - Protocollo proxy:
NONE
. - Percorso di richiesta:
/
.
- Nome:
- Verifica che venga visualizzato un segno di spunta blu accanto a Backend configurazione.
Configurazione frontend
- Fai clic su Configurazione frontend. Nella sezione Nuovo IP e porta frontend, segui questi passaggi:
- .
- In Nome, inserisci
fr-ilb-ipv6
. - Per gestire il traffico IPv6, segui questi passaggi:
- Per Versione IP, seleziona IPv6.
- In corrispondenza di Subnet, seleziona
lb-subnet
. L'intervallo di indirizzi IPv6 nella regola di forwarding è sempre temporaneo. - In Trasferimenti, seleziona Più e, nel campo Numero porta, inserisci
80
,8008
,8080
,8088
. - Fai clic su Fine.
- Per gestire il traffico IPv4:
- Fai clic su Aggiungi IP e porta frontend.
- In Nome, inserisci
fr-ilb
. - In Subnet, seleziona
lb-subnet
. - Nella sezione Scopo IP interno, dall'elenco Indirizzo IP, seleziona Crea indirizzo IP,
inserisci le seguenti informazioni e poi fai clic su Prenota.
- Nome:
ip-ilb
- Versione IP: IPv4
- Indirizzo IP statico:Fammi scegliere
- Indirizzo IP personalizzato:
10.1.2.99
- Nome:
- Per Trasferimenti, seleziona Più, quindi in Numeri di porta, inserisci
80
,8008
,8080
e8088
. - Fai clic su Fine.
- Prima di continuare, verifica che sia presente un segno di spunta blu accanto a Configurazione frontend.
- In Nome, inserisci
Rivedi la configurazione
- Fai clic su Esamina e finalizza. Controlla tutte le impostazioni.
- Se le impostazioni sono corrette, fai clic su Crea. L'aggiornamento il bilanciatore del carico di rete passthrough interno da creare.
gcloud
Crea un nuovo controllo di integrità HTTP a livello di regione per testare la connettività HTTP al VM sulla porta 80.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Crea il servizio di backend per il traffico HTTP:
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 i due gruppi 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 gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-c \ --instance-group-zone=us-west1-c
Creare due regole di forwarding per il servizio di backend. Quando crei Per la regola di forwarding IPv4, specifica
10.1.2.99
per l'indirizzo IP interno in la subnet per gli indirizzi IPv4.gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=TCP \ --ports=80,8008,8080,8088 \ --backend-service=be-ilb \ --backend-service-region=us-west1
gcloud compute forwarding-rules create fr-ilb-ipv6 \ --region=us-west1 \ --load-balancing-scheme=internal \ --subnet=lb-subnet \ --ip-protocol=TCP \ --ports=80,8008,8080,8088 \ --backend-service=be-ilb \ --backend-service-region=us-west1 \ --ip-version=IPV6
api
Crea il controllo di integrità effettuando una richiesta POST
all'indirizzo
Metodo regionHealthChecks.insert
.
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 a livello di regione effettuando una richiesta POST
all'istanza
Metodo regionBackendServices.insert
.
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" }, { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instanceGroups/ig-c", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "connectionDraining": { "drainingTimeoutSec": 0 } }
Crea la regola di forwarding effettuando una richiesta POST
all'oggetto
Metodo forwardingRules.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-ipv6", "IPProtocol": "TCP", "ports": [ "80", "8008", "8080", "8088" ], "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", "ipVersion": "IPV6", "networkTier": "PREMIUM" }
Crea la regola di forwarding effettuando una richiesta POST
all'oggetto
Metodo forwardingRules.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "10.1.2.99", "IPProtocol": "TCP", "ports": [ "80", "8008", "8080", "8088" ], "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", "networkTier": "PREMIUM" }
Testa il bilanciatore del carico
Per testare il bilanciatore del carico, crea una VM client nella stessa regione del bilanciatore del carico, quindi invia il traffico dal client al bilanciatore del carico.
Crea una VM client
In questo esempio viene creata una VM client (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
test.
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
In Nome, inserisci
vm-client
.In corrispondenza di Regione, seleziona
us-west1
.In Zona, seleziona
us-west1-a
.Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
. - In Interfacce di rete, seleziona quanto segue:
- .
- Rete:
lb-network-dual-stack
- Subnet:
lb-subnet
- Tipo di stack IP: IPv4 e IPv6 (stack doppio)
- IP interno principale: temporaneo (automatico)
- IP esterno: temporaneo
- Rete:
- Fai clic su Fine.
- 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 \ --stack-type=IPV4_IPV6 \ --tags=allow-ssh \ --subnet=lb-subnet
api
Invia una richiesta POST
a
Metodo instances.insert
.
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": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network-dual-stack", "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 }
Testa la connessione
Questo test contatta il bilanciatore del carico da una VM client separata, ovvero non da una VM di backend del bilanciatore del carico. Il comportamento previsto riguarda il traffico verso da distribuire tra le quattro VM di backend.
Connettiti all'istanza VM client.
gcloud compute ssh vm-client --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
Descrivi la regola di forwarding IPv4
fr-ilb
.gcloud compute forwarding-rules describe fr-ilb --region=us-west1
Dai client con connettività IPv6, esegui questo comando:
$ 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 questo aspetto:$ curl -m 10 -s http://[fd20:1db0:b882:802:0:46:0:0]:80
Dai client con connettività IPv4, esegui questo comando:
$ curl -m 10 -s http://10.1.2.99:80
Sostituisci i segnaposto con valori validi:
IPV6_ADDRESS
è l'indirizzo IPv6 temporaneo nellafr-ilb-ipv6
regola di forwarding.
Opzioni di configurazione aggiuntive
Questa sezione si espande sull'esempio di configurazione per fornire un'alternativa e opzioni di configurazione aggiuntive. Tutte le attività sono facoltative. Puoi eseguirle in qualsiasi ordine.
Abilita accesso globale
Puoi abilitare l'accesso globale per
il bilanciatore del carico di rete passthrough interno di esempio per renderlo accessibile ai client in tutte le regioni.
I backend del bilanciatore del carico di esempio devono trovarsi in una regione
(us-west1
).
Per configurare l'accesso globale, apporta le seguenti modifiche alla configurazione.
Console
Modifica la regola di forwarding del bilanciatore del carico
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella colonna Nome, fai clic sul bilanciatore del carico di rete passthrough interno. Il caricamento di esempio il bilanciatore del carico si chiama
be-ilb
.Fai clic su Configurazione frontend.
Fai clic su Modifica
.In Accesso globale, seleziona Attiva.
Fai clic su Fine.
Fai clic su Aggiorna.
Nella pagina Dettagli bilanciatore del carico, verifica che la configurazione frontend
indica A livello di regione (REGION
) con accesso globale.
gcloud
Aggiorna la regola di forwarding del bilanciatore del carico di esempio
fr-ilb
per includere il flag--allow-global-access
.gcloud compute forwarding-rules update fr-ilb \ --region=us-west1 \ --allow-global-access
Puoi utilizzare il comando
forwarding-rules describe
per determinare se è abilitato l'accesso globale per una regola di forwarding. Ad esempio:gcloud compute forwarding-rules describe fr-ilb \ --region=us-west1 \ --format="get(name,region,allowGlobalAccess)"
La parola
True
compare nell'output, dopo il nome e la regione del quando è abilitato l'accesso globale.
API
Invia una richiesta PATCH
a
Metodo forwardingRules/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules/fr-ilb { "allowGlobalAccess": true }
Crea un client VM per testare l'accesso globale
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta il Nome su
vm-client2
.Imposta la Regione su
europe-west1
.Imposta Zona su
europe-west1-b
.Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
. - In Interfacce di rete, seleziona quanto segue:
- .
- Rete:
lb-network
- Subnet:
europe-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 europe-west1-b
e utilizza lo stesso
come VM di backend.
gcloud compute instances create vm-client2 \ --zone=europe-west1-b \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=europe-subnet
API
Invia una richiesta POST
a
Metodo instances.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/europe-west1-b/instances { "name": "vm-client2", "tags": { "items": [ "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/europe-west1-b/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/europe-west1/subnetworks/europe-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-client2", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/debian-image-name", "diskType": "projects/PROJECT_ID/zones/europe-west1-b/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "scheduling": { "preemptible": false }, "deletionProtection": false }
Connettiti al client VM e verifica la connettività
Per verificare la connettività, esegui questo comando:
gcloud compute ssh vm-client2 --zone=europe-west1-b
Verifica la connessione al bilanciatore del carico su tutte le porte configurate, come hai fatto
da vm-client
nella regione us-west1
. Testa
Connettività HTTP sulle quattro porte configurate nella regola di forwarding:
curl http://10.1.2.99 curl http://10.1.2.99:8008 curl http://10.1.2.99:8080 curl http://10.1.2.99:8088
Configura i gruppi di istanze gestite
La configurazione di esempio ha creato due istanze non gestite gruppi di lavoro. In alternativa, puoi utilizzare gruppi di istanze, inclusi i gruppi di istanze gestite a livello di zona e di regione, come backend bilanciatori del carico di rete passthrough interni.
Per i gruppi di istanze gestite è necessario creare un modello di istanza. Questo illustra come sostituire i due gruppi di istanze non gestite a livello di zona dell'esempio con un singolo gruppo di istanze gestite a livello di regione. A livello di regione un gruppo di istanze gestite crea automaticamente VM in più zone regione, semplificando la distribuzione del traffico di produzione tra le zone.
I gruppi di istanze gestite supportano anche scalabilità automatica e riparazione automatica. Se utilizzi la scalabilità automatica con bilanciatori del carico di rete passthrough interni, non puoi scalare in base al bilanciamento del carico.
Questa procedura mostra come modificare il servizio di backend per l'esempio bilanciatore del carico di rete passthrough interno in modo da utilizzare un'istanza gestita a livello di regione gruppo.
Console
Modello di istanza
Nella console Google Cloud, vai alla pagina Modelli di istanza VM.
Fai clic su Crea modello istanza.
Imposta il Nome su
template-vm-ilb
.Scegli un tipo di macchina.
Nella sezione Disco di avvio, assicurati che Per il disco di avvio è selezionata l'opzione Debian GNU/Linux 12 (bookworm) le opzioni di CPU e memoria disponibili. Se necessario, fai clic su Cambia per cambiare l'immagine.
Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-ssh
eallow-health-check
. - In Interfacce di rete, seleziona quanto segue:
- .
- Rete:
lb-network
- Subnet:
lb-subnet
- Rete:
- In Tag di rete, inserisci
Fai clic su Gestione e inserisci il seguente script nel campo Script di avvio:
#! /bin/bash if [ -f /etc/startup_script_completed ]; then exit 0 fi apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl file_ports="/etc/apache2/ports.conf" file_http_site="/etc/apache2/sites-available/000-default.conf" file_https_site="/etc/apache2/sites-available/default-ssl.conf" http_listen_prts="Listen 80\nListen 8008\nListen 8080\nListen 8088" http_vh_prts="*:80 *:8008 *:8080 *:8088" https_listen_prts="Listen 443\nListen 8443" https_vh_prts="*:443 *:8443" 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 prt_conf="$(cat "$file_ports")" prt_conf_2="$(echo "$prt_conf" | sed "s|Listen 80|${http_listen_prts}|")" prt_conf="$(echo "$prt_conf_2" | sed "s|Listen 443|${https_listen_prts}|")" echo "$prt_conf" | tee "$file_ports" http_site_conf="$(cat "$file_http_site")" http_site_conf_2="$(echo "$http_site_conf" | sed "s|*:80|${http_vh_prts}|")" echo "$http_site_conf_2" | tee "$file_http_site" https_site_conf="$(cat "$file_https_site")" https_site_conf_2="$(echo "$https_site_conf" | sed "s|_default_:443|${https_vh_prts}|")" echo "$https_site_conf_2" | tee "$file_https_site" systemctl restart apache2 touch /etc/startup_script_completed
Fai clic su Crea.
Gruppo di istanze gestite
Nella console Google Cloud, vai alla pagina Gruppi di istanze.
Fai clic su Crea gruppo di istanze.
Imposta il Nome su
ig-ilb
.In Località, scegli Multizona e imposta Regione su
us-west1
.Imposta Modello di istanza su
template-vm-ilb
.(Facoltativo) Configura la scalabilità automatica. Tu impossibile scalare automaticamente il gruppo di istanze in base all'utilizzo del bilanciamento del carico HTTP perché il gruppo di istanze è un backend per il bilanciatore del carico di rete passthrough interno.
Imposta il Numero minimo di istanze su
1
e il Numero massimo di istanze a6
.(Facoltativo) Configura riparazione automatica. Se configuri la riparazione automatica, usa lo stesso controllo di integrità usato dal backend per il bilanciatore del carico di rete passthrough interno. In questo esempio, utilizza
hc-http-80
.Fai clic su Crea.
gcloud
Creare il modello di istanza. Facoltativamente, puoi impostare altre parametri, come il tipo di macchina, per l'immagine modello da utilizzare.
gcloud compute instance-templates create template-vm-ilb \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check \ --subnet=lb-subnet \ --region=us-west1 \ --network=lb-network \ --metadata=startup-script='#! /bin/bash if [ -f /etc/startup_script_completed ]; then exit 0 fi apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl file_ports="/etc/apache2/ports.conf" file_http_site="/etc/apache2/sites-available/000-default.conf" file_https_site="/etc/apache2/sites-available/default-ssl.conf" http_listen_prts="Listen 80\nListen 8008\nListen 8080\nListen 8088" http_vh_prts="*:80 *:8008 *:8080 *:8088" https_listen_prts="Listen 443\nListen 8443" https_vh_prts="*:443 *:8443" 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 prt_conf="$(cat "$file_ports")" prt_conf_2="$(echo "$prt_conf" | sed "s|Listen 80|${http_listen_prts}|")" prt_conf="$(echo "$prt_conf_2" | sed "s|Listen 443|${https_listen_prts}|")" echo "$prt_conf" | tee "$file_ports" http_site_conf="$(cat "$file_http_site")" http_site_conf_2="$(echo "$http_site_conf" | sed "s|*:80|${http_vh_prts}|")" echo "$http_site_conf_2" | tee "$file_http_site" https_site_conf="$(cat "$file_https_site")" https_site_conf_2="$(echo "$https_site_conf" | sed "s|_default_:443|${https_vh_prts}|")" echo "$https_site_conf_2" | tee "$file_https_site" systemctl restart apache2 touch /etc/startup_script_completed'
Crea un gruppo di istanze gestite a livello di regione utilizzando il modello:
gcloud compute instance-groups managed create ig-ilb \ --template=template-vm-ilb \ --region=us-west1 \ --size=6
Aggiungi il gruppo di istanze gestite a livello di regione come backend del backend che hai già creato:
gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-ilb \ --instance-group-region=us-west1
Disconnetti i due gruppi di istanze non gestite (a livello di zona) dal backend servizio:
gcloud compute backend-services remove-backend be-ilb \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a gcloud compute backend-services remove-backend be-ilb \ --region=us-west1 \ --instance-group=ig-c \ --instance-group-zone=us-west1-c
Rimuovi gli indirizzi IP esterni dalle VM di backend
Quando hai creato le VM di backend, a ciascuna è stato assegnato un indirizzo IP esterno temporaneo per poter scaricare Apache utilizzando uno script di avvio. Poiché le VM di backend vengono utilizzate solo bilanciatore del carico di rete passthrough interno, puoi rimuovere i relativi indirizzi IP esterni. Rimozione dell'IP esterno impediscono alle VM di backend di accedere direttamente a internet.
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Ripeti i passaggi seguenti per ogni VM di backend.
Fai clic sul nome della VM di backend, ad esempio
vm-a1
.Fai clic su
Modifica.Nella sezione Interfacce di rete, fai clic sulla rete.
Dall'elenco IP esterno, seleziona Nessuno e fai clic su Fine.
Fai clic su Salva.
gcloud
Per cercare un'istanza nella zona, ad esempio, se usi una gruppo di istanze gestite a livello di regione esegui questo comando per ogni istanza al fine di determinare zona di destinazione. Sostituisci
[SERVER-VM]
con il nome della VM da cercare.gcloud compute instances list --filter="name=[SERVER-VM]"
Ripeti il passaggio seguente per ogni VM di backend. Sostituisci
[SERVER-VM]
con il nome della VM e sostituisci e[ZONE]
con la zona della VM.gcloud compute instances delete-access-config [SERVER-VM] \ --zone=[ZONE] \ --access-config-name=external-nat
API
Invia una richiesta POST
a
instances.deleteAccessConfig
metodo per ogni VM di backend, sostituendovm-a1
con il nome della VM e sostituendo e us-west1-a
con la zona della VM.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a1/deleteAccessConfig?accessConfig=external-nat&networkInterface=None
Utilizza un indirizzo IP interno riservato
Quando crei VM di backend e gruppi di istanze, l'istanza VM utilizza un indirizzo IPv4 o IPv6 interno temporaneo.
I passaggi seguenti mostrano come promuovere un indirizzo IPv4 o IPv6 interno a un indirizzo IPv4 o IPv6 interno statico e quindi aggiornare l'istanza VM per utilizzare l'indirizzo IP interno statico:
- Promuovi un indirizzo IPv4 o IPv6 interno temporaneo in uso a un indirizzo statico .
- Cambiare o assegnare un indirizzo IPv6 interno a un indirizzo IPv6 esistente in esecuzione.
In alternativa, i seguenti passaggi mostrano come prenotare un nuovo indirizzo IPv4 o IPv6 interno statico, quindi aggiorna l'istanza VM per utilizzare l'indirizzo IP interno statico:
Prenota un nuovo IPv4 interno statico o Indirizzo IPv6.
A differenza della prenotazione IPv4 interna, la prenotazione IPv6 interna non supporta prenotare un indirizzo IP specifico dalla subnet. Invece, un URL
/96
interno L'intervallo di indirizzi IPv6 viene allocato automaticamente dall'IPv6 interno/64
della subnet di indirizzi IP esterni.Cambiare o assegnare un indirizzo IPv6 interno a un indirizzo IPv6 esistente in esecuzione.
Per ulteriori informazioni, consulta Come prenotare un indirizzo IP interno statico .
Accetta il traffico su tutte le porte
La regola di forwarding del bilanciatore del carico, non il suo servizio di backend, determina una o più porte su cui il bilanciatore del carico accetta il traffico. Per informazioni su lo scopo di ogni componente, consulta Componenti.
Quando hai creato questo esempio di forwarding del bilanciatore del carico
regola, hai configurato le porte 80
, 8008
, 8080
,
e 8088
. Anche lo script di avvio che installa Apache lo configura
accetta connessioni HTTPS sulle porte 443
e 8443
.
Per supportare queste sei porte, puoi configurare la regola di forwarding in modo che accetti e il traffico su tutte le porte. Con questa strategia puoi anche configurare una o più regole che consentono le connessioni in entrata alle VM di backend consentire alcune porte.
Questa procedura mostra come eliminare l'attuale forwarding del bilanciatore del carico e creane una nuova che accetti il traffico su tutte le porte.
Per ulteriori informazioni su quando utilizzare questa configurazione, vedi Bilanciatori del carico di rete passthrough interni e regole di forwarding con un IP comune .
Console
Elimina la regola di forwarding e creane una nuova
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul bilanciatore del carico
be-ilb
e poi su Modifica.Fai clic su Configurazione frontend.
Tieni il puntatore sopra la regola di forwarding di
10.1.2.9
e fai clic su Elimina.Fai clic su Aggiungi IP e porta frontend.
Nella sezione Nuovi IP e porta frontend inserisci le seguenti informazioni e fai clic su Fine:
- Nome:
fr-ilb
- Subnet:
lb-subnet
- IP interno:
ip-ilb
- Porte: Tutte.
- Nome:
Verifica che sia presente un segno di spunta blu accanto a Frontend configurazione prima di continuare.
Fai clic su Rivedi e finalizza e rivedi le impostazioni di configurazione del bilanciatore del carico.
Fai clic su Crea.
gcloud
Elimina la regola di forwarding esistente
fr-ilb
.gcloud compute forwarding-rules delete fr-ilb \ --region=us-west1
Crea una regola di forwarding sostitutiva, con lo stesso nome, la cui porta utilizza la parola chiave
ALL
. Gli altri parametri per il parametro regola di forwarding invariate.gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=TCP \ --ports=ALL \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Elimina la regola di forwarding effettuando una richiesta DELETE
alla
Metodo forwardingRules.delete
.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules/fr-ilb
Crea la regola di forwarding effettuando una richiesta POST
all'oggetto
Metodo forwardingRules.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "10.1.2.99", "IPProtocol": "TCP", "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", "networkTier": "PREMIUM" }
Testa la configurazione del traffico su tutte le porte
Connettiti all'istanza VM client e testa le connessioni HTTP e HTTPS.
Connettiti alla VM client:
gcloud compute ssh vm-client --zone=us-west1-a
Verifica la connettività HTTP su tutte e quattro le porte:
curl http://10.1.2.99 curl http://10.1.2.99:8008 curl http://10.1.2.99:8080 curl http://10.1.2.99:8088
Testa la connettività HTTPS sulle porte
443
e8443
.--insecure
perché ogni server Apache nella configurazione di esempio utilizza un certificato autofirmato.curl https://10.1.2.99 --insecure curl https://10.1.2.99:8443 --insecure
Osserva che le richieste HTTP (su tutte e quattro le porte) e le richieste HTTPS (su entrambe le porte) sono distribuite tra tutte le VM di backend.
Accetta il traffico su più porte utilizzando due regole di forwarding
Quando hai creato questo esempio di forwarding del bilanciatore del carico
regola, hai configurato le porte 80
, 8008
, 8080
,
e 8088
. Anche lo script di avvio che installa Apache lo configura
accetta connessioni HTTPS sulle porte 443
e 8443
.
Una strategia alternativa alla configurazione di una singola regola di forwarding per accettare il traffico su tutte le porte è la creazione di più regole di forwarding, supportando al massimo cinque porte.
Questa procedura mostra come sostituire il forwarding del bilanciatore del carico di esempio
regola con due regole di forwarding, una per la gestione del traffico sulle porte 80
, 8008
8080
e 8088
e l'altro che gestisce il traffico sulle porte 443
e 8443
.
Per ulteriori informazioni su quando utilizzare questa configurazione, vedi Bilanciatori del carico di rete passthrough interni e regole di forwarding con un IP comune .
Console
Nella console Google Cloud, vai alla pagina Regole di forwarding.
Nella colonna Nome, fai clic su
fr-ilb
e poi su Elimina.Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella colonna Nome, fai clic su
be-ilb
.Fai clic su Modifica.
Fai clic su Configurazione frontend.
Fai clic su Aggiungi IP e porta frontend.
Nella sezione Nuovi IP e porta frontend procedi nel seguente modo:
- In Nome, inserisci
fr-ilb-http
. - In corrispondenza di Subnet, seleziona
lb-subnet
. - In Scopo IP interno, seleziona Condiviso.
- Dall'elenco Indirizzo IP, seleziona Crea indirizzo IP.
inserisci le informazioni seguenti e fai clic su Prenota:
- .
- Nome:
internal-10-1-2-99
- Indirizzo IP statico: Fammi scegliere
- Indirizzo IP personalizzato:
10.1.2.99
- Nome:
- Per Trasferimenti, seleziona Più, quindi in Numeri di porta, inserisci
80
,8008
,8080
e8088
. - Fai clic su Fine.
- In Nome, inserisci
Fai clic su Aggiungi IP e porta frontend.
Nella sezione Nuovi IP e porta frontend procedi nel seguente modo:
- In Nome, inserisci
fr-ilb-https
. - In corrispondenza di Subnet, seleziona
lb-subnet
. - In Scopo IP interno, seleziona Condiviso.
- Dall'elenco Indirizzi IP, seleziona
internal-10-1-2-99
. - Per Trasferimenti, seleziona Più, quindi in Numeri di porta, inserisci
443
e8443
. - Fai clic su Fine.
- In Nome, inserisci
Fai clic su Rivedi e finalizza e rivedi le impostazioni di configurazione del bilanciatore del carico.
Fai clic su Aggiorna.
gcloud
Elimina la regola di forwarding esistente
fr-ilb
.gcloud compute forwarding-rules delete fr-ilb \ --region=us-west1
Crea un indirizzo IP interno statico (prenotato) per
10.1.2.99
e impostalo il flag--purpose
aSHARED_LOADBALANCER_VIP
. Il flag--purpose
in modo che due regole di forwarding interno possano usare lo stesso all'indirizzo IP interno.gcloud compute addresses create internal-10-1-2-99 \ --region=us-west1 \ --subnet=lb-subnet \ --addresses=10.1.2.99 \ --purpose=SHARED_LOADBALANCER_VIP
- Crea due regole di forwarding sostitutive con i seguenti parametri:
gcloud compute forwarding-rules create fr-ilb-http \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=TCP \ --ports=80,8008,8080,8088 \ --backend-service=be-ilb \ --backend-service-region=us-west1
gcloud compute forwarding-rules create fr-ilb-https \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=TCP \ --ports=443,8443 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Elimina la regola di forwarding effettuando una richiesta DELETE
alla
Metodo forwardingRules.delete
.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules/fr-ilb
Crea un indirizzo IP interno statico (prenotato) per 10.1.2.99
e impostane lo scopo su SHARED_LOADBALANCER_VIP
inviando una richiesta POST
al
metodo addresses.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/addresses { "name": "internal-10-1-2-99", "address": "10.1.2.99", "prefixLength": 32, "addressType": INTERNAL, "purpose": SHARED_LOADBALANCER_VIP, "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet" }
Crea due regole di forwarding effettuando due richieste POST
all'oggetto
Metodo forwardingRules.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-http", "IPAddress": "10.1.2.99", "IPProtocol": "TCP", "ports": [ "80", "8008", "8080", "8088" ], "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" }
{ "name": "fr-ilb-https", "IPAddress": "10.1.2.99", "IPProtocol": "TCP", "ports": [ "443", "8443" ], "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" }
Testa la configurazione del traffico su più porte
Connettiti all'istanza VM client e testa le connessioni HTTP e HTTPS.
Connettiti alla VM client:
gcloud compute ssh vm-client --zone=us-west1-a
Verifica la connettività HTTP su tutte e quattro le porte:
curl http://10.1.2.99 curl http://10.1.2.99:8008 curl http://10.1.2.99:8080 curl http://10.1.2.99:8088
Testa la connettività HTTPS sulle porte
443
e8443
.--insecure
perché ogni server Apache nella configurazione di esempio utilizza un certificato autofirmato.curl https://10.1.2.99 --insecure curl https://10.1.2.99:8443 --insecure
Osserva che le richieste HTTP (su tutte e quattro le porte) e le richieste HTTPS (su entrambe le porte) sono distribuite tra tutte le VM di backend.
Utilizza affinità sessione
La configurazione di esempio crea un backend senza affinità sessione.
Questa procedura mostra come aggiornare il servizio di backend per l'esempio il bilanciatore del carico di rete passthrough interno in modo che utilizzi l'affinità sessione in base a un hash creato gli indirizzi IP del client e l'indirizzo IP del server interno del bilanciatore di una regola di forwarding.
Per i tipi di affinità sessione supportati, consulta Affinità sessione opzioni.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic su be-ilb (il nome del servizio di backend per il quale hai creato questo esempio) e fai clic su Modifica.
Nella pagina Modifica bilanciatore del carico di rete passthrough interno, fai clic su Configurazione backend.
Nell'elenco Affinità sessione, seleziona IP client.
Fai clic su Aggiorna.
gcloud
Usa questo comando gcloud
per aggiornare il servizio di backend be-ilb
,
specifica l'affinità sessione IP client:
gcloud compute backend-services update be-ilb \ --region=us-west1 \ --session-affinity CLIENT_IP
API
Invia una richiesta PATCH
a
Metodo regionBackendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb { "sessionAffinity": "CLIENT_IP" }
Configurare un criterio per il monitoraggio delle connessioni
Questa sezione mostra come aggiornare il servizio di backend per modificare il carico il criterio predefinito di monitoraggio delle connessioni del bilanciatore del carico.
Un criterio per il monitoraggio delle connessioni include le seguenti impostazioni:
- Modalità di monitoraggio
- Persistenza della connessione in stato non integro backend
- Timeout di inattività
gcloud
Utilizza il seguente comando gcloud compute
backend-services
per aggiornare il criterio di monitoraggio delle connessioni per il servizio di backend:
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --tracking-mode=TRACKING_MODE \ --connection-persistence-on-unhealthy-backends=CONNECTION_PERSISTENCE_BEHAVIOR \ --idle-timeout-sec=IDLE_TIMEOUT_VALUE
Sostituisci i segnaposto con valori validi:
BACKEND_SERVICE
: il servizio di backend che stai aggiornamento in corsoREGION
: la regione del servizio di backend che stai aggiornamento in corsoTRACKING_MODE
: la modalità di monitoraggio della connessione da utilizzare per i pacchetti in entrata; per l'elenco dei valori supportati, vedi Modalità di monitoraggioCONNECTION_PERSISTENCE_BEHAVIOR
: la connessione un comportamento di persistenza quando i backend sono in stato non integro; per consultare l'elenco valori supportati. Consulta Persistenza della connessione in stato non integro backendIDLE_TIMEOUT_VALUE
: il numero di secondi necessari la voce della tabella di monitoraggio della connessione deve essere mantenuta dopo il bilanciatore del carico elabora l'ultimo pacchetto che corrisponde alla vocePuoi modificare questa proprietà solo se il monitoraggio delle connessioni è inferiore di tuple (ovvero, quando l'affinità sessione è configurata per essere
CLIENT_IP
oCLIENT_IP_PROTO
e la modalità di rilevamento èPER_SESSION
).Il valore predefinito è 600 secondi (10 minuti). Il numero massimo configurabile il valore di timeout per inattività è pari a 57.600 secondi (16 ore).
Crea una regola di forwarding in un'altra subnet
Questa procedura crea un secondo indirizzo IP e una regola di forwarding in un per dimostrare che è possibile creare più istanze di per un bilanciatore del carico di rete passthrough interno. La regione della regola di forwarding deve corrispondere a quella del servizio di backend.
Soggetti alle regole firewall, i client in qualsiasi subnet nel regione può contattare l'indirizzo IP del bilanciatore del carico di rete passthrough interno.
Console
Aggiungi la seconda subnet
Nella console Google Cloud, vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
Fai clic su
lb-network
.Nella sezione Subnet, segui questi passaggi:
- Fai clic su Aggiungi subnet.
- Nella sezione Nuova subnet, inserisci le informazioni seguenti:
- .
- Nome:
second-subnet
- Regione:
us-west1
- Intervallo di indirizzi IP:
10.5.6.0/24
- Nome:
- Fai clic su Aggiungi.
Aggiungere la seconda regola di forwarding
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Fai clic sul bilanciatore del carico
be-ilb
e poi su Modifica.Fai clic su Configurazione frontend.
Fai clic su Aggiungi IP e porta frontend.
Nella sezione Nuovi IP e porta frontend imposta i seguenti campi e fai clic su Fine:
- Nome:
fr-ilb-2
- Versione IP: IPv4
- Subnet:
second-subnet
- IP interno:
ip-ilb
- Porte:
80
e443
- Nome:
Verifica che sia presente un segno di spunta blu accanto a Frontend configurazione prima di continuare.
Fai clic su Rivedi e finalizza e rivedi le impostazioni di configurazione del bilanciatore del carico.
Fai clic su Crea.
gcloud
Crea una seconda subnet nella rete
lb-network
inus-west1
regione:gcloud compute networks subnets create second-subnet \ --network=lb-network \ --range=10.5.6.0/24 \ --region=us-west1
Crea una seconda regola di forwarding per le porte 80 e 443. L'altro parametri per questa regola, tra cui l'indirizzo IP e il servizio di backend, sono come per la regola di forwarding principale
fr-ilb
.gcloud compute forwarding-rules create fr-ilb-2 \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=second-subnet \ --address=10.5.6.99 \ --ip-protocol=TCP \ --ports=80,443 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Effettua una richiesta POST
alla
Metodo subnetworks.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "second-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.5.6.0/24", "privateIpGoogleAccess": false }
Crea la regola di forwarding effettuando una richiesta POST
all'oggetto
Metodo forwardingRules.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-2", "IPAddress": "10.5.6.99", "IPProtocol": "TCP", "ports": [ "80", "443" ], "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" }
Testa la nuova regola di forwarding
Connettiti all'istanza VM client e testa le connessioni HTTP e HTTPS agli indirizzi IP.
Connettiti alla VM client:
gcloud compute ssh vm-client --zone=us-west1-a
Verifica la connettività HTTP agli indirizzi IP:
curl http://10.1.2.99 curl http://10.5.6.99
Testa la connettività HTTPS. È necessario utilizzare
--insecure
perché La configurazione del server Apache nella configurazione di esempio utilizza un certificati.curl https://10.1.2.99 --insecure curl https://10.5.6.99 --insecure
Osserva che le richieste sono gestite da tutte le VM di backend, a prescindere dal protocollo (HTTP o HTTPS) o dall'indirizzo IP utilizzato.
Usa creazione secondaria del backend
La configurazione di esempio crea un backend senza sottoinsiemi.
Questa procedura mostra come abilitare l'impostazione secondaria nel servizio di backend per esempio di bilanciatore del carico di rete passthrough interno in modo che il deployment possa scalare a un numero maggiore delle istanze di backend.
Abilita l'impostazione secondaria solo se devi supportare più di 250 backend su un singolo bilanciatore del carico.
Per ulteriori informazioni su questo caso d'uso, vedi sottoinsiemi di backend.
gcloud
Usa questo comando gcloud
per aggiornare il servizio di backend be-ilb
,
che specifica il criterio di sottoinsiemi:
gcloud compute backend-services update be-ilb \ --subsetting-policy=CONSISTENT_HASH_SUBSETTING
API
Invia una richiesta PATCH
a
Metodo regionBackendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb { "subsetting": { "policy": CONSISTENT_HASH_SUBSETTING } }
Creare un bilanciatore del carico per Mirroring pacchetto
Mirroring pacchetto consente di copiare e raccogliere di pacchetti di dati da istanze specifiche in un VPC. I dati raccolti può aiutarti a rilevare le minacce alla sicurezza e a monitorare le prestazioni delle applicazioni.
Mirroring pacchetto richiede un bilanciatore del carico di rete passthrough interno per bilanciare a un gruppo di istanze di destinazioni dei raccoglitori. Per creare un il bilanciatore del carico di rete passthrough interno per Mirroring pacchetto:
Console
Avvia la configurazione
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
- Fai clic su Crea bilanciatore del carico.
- Per Tipo di bilanciatore del carico, seleziona Bilanciatore del carico di rete (TCP/UDP/SSL) e fai clic su Avanti.
- Per Proxy o passthrough, seleziona Carico passthrough bilanciatore del carico e fai clic su Avanti.
- Per Pubblico o interno, seleziona Interno e fai clic su Avanti.
- Fai clic su Configura.
Configurazione di base
- In Nome bilanciatore del carico, inserisci un nome.
- In Regione, seleziona la regione delle istanze VM in cui vuoi eseguire il mirroring dei pacchetti.
- In Rete, seleziona la rete in cui vuoi eseguire il mirroring dei pacchetti.
- Fai clic su Configurazione backend.
- Nella sezione Nuovo backend, in Gruppo di istanze, seleziona il gruppo di istanze a cui inoltrare i pacchetti.
- Nell'elenco Controllo di integrità, seleziona Crea un controllo di integrità.
inserisci le seguenti informazioni e fai clic su Salva:
- .
- In Nome, inserisci un nome per il controllo di integrità.
- In Protocollo, seleziona
HTTP
. - In Porta, inserisci
80
.
- Fai clic su Configurazione frontend.
- Nella sezione Nuovo IP e porta frontend, segui questi passaggi:
- .
- In Nome, inserisci un nome.
- Per Subnet, seleziona una subnet nella stessa regione della di Compute Engine.
- In Porte, seleziona Tutte.
- Fai clic su Configurazioni avanzate e seleziona la casella di controllo Attiva questo bilanciatore del carico per il mirroring pacchetto.
- Fai clic su Fine.
- Fai clic su Crea.
gcloud
Crea un nuovo controllo di integrità HTTP a livello di regione per testare la connettività HTTP a un gruppo di istanze sulla porta 80:
gcloud compute health-checks create http HEALTH_CHECK_NAME \ --region=REGION \ --port=80
Sostituisci quanto segue:
HEALTH_CHECK_NAME
: il nome del controllo di integrità.REGION
: la regione delle istanze VM che per cui vuoi eseguire il mirroring dei pacchetti.
Crea un servizio di backend per il traffico HTTP:
gcloud compute backend-services create COLLECTOR_BACKEND_SERVICE \ --region=REGION \ --health-checks-region=REGION \ --health-checks=HEALTH_CHECK_NAME \ --load-balancing-scheme=internal \ --protocol=tcp
Sostituisci quanto segue:
COLLECTOR_BACKEND_SERVICE
: il nome del di servizio di backend.REGION
: la regione delle istanze VM in cui vuoi eseguire il mirroring dei pacchetti.HEALTH_CHECK_NAME
: il nome del controllo di integrità.
Aggiungi un gruppo di istanze al servizio di backend:
gcloud compute backend-services add-backend COLLECTOR_BACKEND_SERVICE \ --region=REGION \ --instance-group=INSTANCE_GROUP \ --instance-group-zone=ZONE
Sostituisci quanto segue:
COLLECTOR_BACKEND_SERVICE
: il nome del di servizio di backend.REGION
: la regione del gruppo di istanze.INSTANCE_GROUP
: il nome del gruppo di istanze.ZONE
: la zona del gruppo di istanze.
Crea una regola di forwarding per il servizio di backend:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --region=REGION \ --network=NETWORK \ --subnet=SUBNET \ --backend-service=COLLECTOR_BACKEND_SERVICE \ --load-balancing-scheme=internal \ --ip-protocol=TCP \ --ports=all \ --is-mirroring-collector
Sostituisci quanto segue:
FORWARDING_RULE_NAME
: il nome dell'inoltro personalizzata.REGION
: la regione per la regola di forwarding.NETWORK
: la rete per la regola di forwarding.SUBNET
: una subnet nella regione delle VM in cui vuoi eseguire il mirroring dei pacchetti.COLLECTOR_BACKEND_SERVICE
: il servizio di backend per questo bilanciatore del carico.
Passaggi successivi
- Per informazioni importanti, consulta Panoramica del bilanciatore del carico di rete passthrough interno i concetti fondamentali.
- Consulta i concetti del failover per i bilanciatori del carico di rete passthrough interni per informazioni importanti sul failover.
- Consulta Bilanciamento del carico interno e nomi DNS per scoprire le opzioni disponibili per i nomi DNS utilizzabili dal bilanciatore del carico.
- Consulta Configurazione del failover per i bilanciatori del carico di rete passthrough interni per passaggi per la configurazione e un esempio di configurazione di failover del bilanciatore del carico di rete passthrough interno.
- Consulta Logging del bilanciatore del carico di rete passthrough interno e Monitoring per informazioni sulla configurazione Logging e Monitoring per bilanciatori del carico di rete passthrough interni.
- Vedi Bilanciatori del carico di rete passthrough interni e connessione reti per informazioni sull'accesso ai bilanciatori del carico di rete passthrough interni da reti peer è connesso alla rete VPC.
- Vedi Risolvere i problemi dei bilanciatori del carico di rete passthrough interni per e informazioni su come risolvere i problemi relativi al bilanciatore del carico di rete passthrough interno.
- Esegui la pulizia della configurazione del bilanciatore del carico.