Questa guida utilizza un esempio per insegnarti come configurare il failover per un bilanciatore del carico di rete passthrough interno di Google Cloud. Prima di seguire guida, acquisisci familiarità con quanto segue:
- Concetti sui bilanciatori del carico di rete passthrough interno
- Concetti di failover per i bilanciatori del carico di rete passthrough interni
- Panoramica delle regole firewall
- Concetti sul controllo di integrità
Autorizzazioni
Per seguire questa guida, devi creare le istanze e modificare in un progetto. Dovresti essere un progetto proprietario o editor, oppure includono tutte le seguenti caratteristiche Ruoli IAM di Compute Engine:
Attività | Ruolo richiesto |
---|---|
Creazione di reti, subnet e componenti del bilanciatore del carico | Amministratore rete |
Aggiungi e rimuovi regole firewall | Amministratore sicurezza |
Creazione delle istanze | Amministratore istanze Compute |
Per ulteriori informazioni, consulta le seguenti guide:
Configurazione
Questa guida mostra come configurare e testare un bilanciatore del carico di rete passthrough interno che utilizza di failover. I passaggi in questa sezione descrivono come configurare le seguenti:
- Una rete VPC di esempio con subnet personalizzate
- Regole firewall che consentono le connessioni in entrata alle VM di backend
- VM di backend:
- Un backend principale in un gruppo di istanze non gestite nella zona
us-west1-a
- Un backend di failover in un gruppo di istanze non gestite nella zona
us-west1-c
- Un backend principale in un gruppo di istanze non gestite nella zona
- Una VM client per testare le connessioni e osservare il comportamento di failover
- 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 tra le VM di backend - Una regola di forwarding interno e un indirizzo IP interno per frontend del bilanciatore del carico,
L'architettura per questo esempio è simile alla seguente:
Configurazione di una rete, una regione e una subnet
Questo esempio utilizza la rete VPC, la regione e subnet:
Rete: la rete è un VPC in modalità personalizzata denominata
lb-network
.Regione: la regione è
us-west1
.Subnet: la subnet
lb-subnet
utilizza l'intervallo IP10.1.2.0/24
.
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.
Inserisci
lb-network
come nome.Nella sezione Subnet:
- Imposta Modalità di creazione subnet su Personalizzata.
- Nella sezione Nuova subnet, inserisci le informazioni seguenti:
- .
- Nome:
lb-subnet
- Regione:
us-west1
- Intervallo di indirizzi IP:
10.1.2.0/24
- Fai clic su Fine.
- Nome:
Fai clic su Crea.
gcloud
Crea la rete VPC personalizzata:
gcloud compute networks create lb-network --subnet-mode=custom
Crea una subnet nella rete
lb-network
nella regioneus-west1
:gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
API
Invia una richiesta POST
a
networks.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/global/networks
{ "routingConfig": { "routingMode": "REGIONAL" }, "name": "lb-network", "autoCreateSubnetworks": false }
Invia una richiesta POST
a
subnetworks.insert
. Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/regions/us-west1/subnetworks
{ "name": "lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "privateIpGoogleAccess": false }
Configurazione delle regole del firewall
Questo esempio utilizza le seguenti regole firewall:
fw-allow-lb-subnet
: una regola in entrata, applicabile a tutte le destinazioni in che consente il traffico da origini in Intervallo10.1.2.0/24
. Questa regola consente il traffico in entrata da qualsiasi origine all'interno dilb-subnet
alle istanze (VM) di cui si esegue il bilanciamento del carico.fw-allow-ssh
: una regola in entrata applicata alle istanze in fase di caricamento bilanciata, consentendo 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 gli intervalli IP dei sistemi da cui prevedi avviare sessioni SSH. Questo esempio utilizza il tag targetallow-ssh
per a identificare le VM a cui si applica la regola firewall.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.
Fai clic su Crea regola firewall e inserisci quanto segue. informazioni per creare la regola che consenta il traffico della subnet:
- Nome:
fw-allow-lb-subnet
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: in entrata
- Azione in caso di corrispondenza: consenti
- Destinazioni: Tutte le istanze nella rete
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
10.1.2.0/24
- Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
Fai di nuovo clic su Crea regola firewall per creare la regola e consentire l'accesso Connessioni SSH:
- Nome:
fw-allow-ssh
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: in entrata
- Azione in caso di corrispondenza: consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-ssh
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
0.0.0.0/0
- Protocolli e porte: scegli Protocolli e porte specificati, quindi
tipo:
tcp:22
- Nome:
Fai clic su Crea.
Fai clic su Crea regola firewall una terza volta per creare la regola che consente Controlli di integrità di Google Cloud:
- Nome:
fw-allow-health-check
- Rete:
lb-network
- Priorità:
1000
- Direzione del traffico: in entrata
- Azione in caso di corrispondenza: consenti
- Target: Tag di destinazione specificati
- Tag di destinazione:
allow-health-check
- Filtro di origine: Intervalli IPv4
- Intervalli IPv4 di origine:
130.211.0.0/22
e35.191.0.0/16
- Protocolli e porte: Consenti tutto
- Nome:
Fai clic su Crea.
gcloud
Crea la regola firewall
fw-allow-lb-subnet
per consentire la comunicazione da con la subnet:gcloud compute firewall-rules create fw-allow-lb-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24 \ --rules=tcp,udp,icmp
Crea la regola firewall
fw-allow-ssh
per consentire la connettività SSH 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-subnet
effettuando una richiesta POST
a
firewalls.insert
. Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/global/firewalls
{ "name": "fw-allow-lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "10.1.2.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
firewalls.insert
. Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
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
firewalls.insert
. Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
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 }
Creazione di VM di backend e gruppi di istanze
In questo passaggio creerai le VM di backend e i gruppi di istanze non gestite:
- Il gruppo di istanze
ig-a
inus-west1-a
è un gruppo principale con due VM:- .
vm-a1
vm-a2
- Il gruppo di istanze
ig-c
inus-west1-c
è un failover con due VM:- .
vm-c1
vm-c2
I backend primari e di failover sono posizionati in zone separate la chiarezza e la chiarezza dell'istruzione e la gestione del failover in caso di malfunzionamento di una zona.
Ogni VM principale e di backup è configurata per eseguire un server web Apache su TCP
e le porte 80 e 443. A ogni VM viene assegnato un indirizzo IP interno in lb-subnet
per l'accesso client e un indirizzo IP esterno temporaneo (pubblico) per l'accesso SSH.
Per informazioni sulla rimozione degli indirizzi IP esterni, consulta
rimozione di indirizzi IP esterni dal backend
delle VM.
Per impostazione predefinita, Apache è configurato per associarsi a qualsiasi indirizzo IP. I bilanciatori del carico di rete passthrough interni consegnano i pacchetti mantenendo l'IP di destinazione .
Assicurati che il software del server in esecuzione sulle VM principali e di backup sia in ascolto all'indirizzo IP della regola di forwarding interno del bilanciatore del carico. Se configurare più regole di forwarding interno, assicurati che il software ascolti l'indirizzo IP interno associato su ognuno 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, tutte le VM primarie e di backup eseguono Debian GNU/Linux 10.
Console
Crea VM di backend
Nella console Google Cloud, vai alla pagina Istanze VM.
Ripeti i passaggi seguenti per creare quattro VM con 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, scegli
us-west1
e scegli una Zona come indicato nel passaggio 2.Nella sezione Disco di avvio, assicurati che l'immagine selezionata sia Debian GNU/Linux 10 (buster). Fai clic su Scegli per cambiare l'immagine necessaria.
Fai clic su Opzioni avanzate.
Fai clic su Networking e configura i seguenti campi:
- In Tag di rete, inserisci
allow-health-check
eallow-ssh
. - In Interfacce di rete, seleziona quanto segue:
- .
- Rete:
lb-network
- Subnet:
lb-subnet
- Rete:
- In Tag di rete, inserisci
Fai clic su Gestione. Inserisci lo script seguente nel Script di avvio. I contenuti dello script sono identici tutte e quattro le VM:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
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.
- Gruppo di istanze:
ig-a
, zona:us-west1-a
, VM:vm-a1
evm-a2
- Gruppo di istanze:
ig-c
, zona:us-west1-c
, VM:vm-c1
evm-c2
- 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à, scegli
us-west1
come Regione e quindi scegli una Zona come indicato nel passaggio 2.In Rete, inserisci
lb-network
.In Subnet, inserisci
lb-subnet
.Nella sezione Istanze VM, aggiungi le VM come indicato nel passaggio 2.
Fai clic su Crea.
gcloud
Crea quattro VM eseguendo il comando seguente quattro volte, utilizzando queste quattro combinazioni per
VM_NAME
eZONE
. Contenuti dello script sono identiche per tutte e quattro le VM.VM_NAME
divm-a1
eZONE
dius-west1-a
VM_NAME
divm-a2
eZONE
dius-west1-a
VM_NAME
divm-c1
eZONE
dius-west1-c
VM_NAME
divm-c2
eZONE
dius-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 apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
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
Crea quattro VM di backend effettuando quattro richieste POST
alla
instances.insert
.
Per le quattro VM, utilizza i seguenti nomi e zone di VM:
VM_NAME
divm-a1
eZONE
dius-west1-a
VM_NAME
divm-a2
eZONE
dius-west1-a
VM_NAME
divm-c1
eZONE
dius-west1-c
VM_NAME
divm-c2
eZONE
dius-west1-c
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoZONE
: la zona dell'istanzaDEBIAN_IMAGE_NAME
: il nome dell'immagine Debian per la in esecuzione in un'istanza Compute Engine. È possibile ottenere il valoreDEBIAN_IMAGE_NAME
attuale eseguendo questo comandogcloud
:gcloud compute images list \ --filter="family=debian-12"
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\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\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Crea due gruppi di istanze effettuando una richiesta POST
all'istanza
instanceGroups.insert
. Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/us-west1-a/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
instanceGroups.addInstances
. Sostituisci PROJECT_ID
con l'ID del tuo progetto Google Cloud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/us-west1-a/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" } ] }
Creazione di una VM client
In questo esempio viene creata una VM client (vm-client
) nella stessa regione del carico
con il bilanciatore del carico di rete
passthrough esterno regionale. Il client viene utilizzato per dimostrare il funzionamento del failover.
Console
Nella console Google Cloud, vai alla pagina Istanze VM.
Fai clic su Crea istanza.
Imposta il Nome su
vm-client
.Imposta la Zona su
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 del bilanciatore del carico,
e può utilizzare qualsiasi subnet in quella regione. In questo esempio, il cliente si trova
la zona us-west1-a
, che usa la stessa subnet utilizzata dall'istanza principale
delle VM di backup.
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
instances.insert
.
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoDEBIAN_IMAGE_NAME
: il nome dell'immagine Debian per la in esecuzione in un'istanza Compute Engine. È possibile ottenere il valoreDEBIAN_IMAGE_NAME
attuale eseguendo questo comandogcloud
:gcloud compute images list \ --filter="family=debian-12"
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 }
Configurazione dei 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à: questo esempio utilizza un controllo di integrità HTTP che semplicemente 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é l'esempio trasmette il traffico HTTP tramite bilanciatore del carico di rete, la configurazione specifica TCP, non UDP. A illustra il failover, questo servizio di backend ha un rapporto di failover
0.75
.Regola di forwarding: questo esempio crea una singola regola di forwarding interno.
Indirizzo IP interno: in questo esempio, specifichiamo un indirizzo IP interno
10.1.2.99
, quando creiamo 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
- Imposta il Nome su
be-ilb
. - Imposta Regione su
us-west1
. - Imposta Rete su
lb-network
. - Fai clic su Configurazione backend e apporta le seguenti modifiche:
- .
- In Backend, nella sezione Nuovo elemento, seleziona
ig-a
gruppo di istanze gestite. Assicurati che usa questo gruppo di istanze come failover gruppo per il backup non sia selezionato. Fai clic su Fine. - Fai clic su Aggiungi backend. Nella sezione Nuovo elemento visualizzata,
seleziona il gruppo di istanze
ig-c
. Seleziona Utilizza questo gruppo di istanze come gruppo di failover per il backup. Fai clic su Fine. - In Controllo di integrità, scegli Crea un altro controllo di integrità,
inserisci le informazioni seguenti e fai clic su Salva e continua:
- .
- Nome:
hc-http-80
- Protocollo:
HTTP
- Porta:
80
- Protocollo proxy:
NONE
- Percorso di richiesta:
/
Tieni presente che quando utilizzi la console Google Cloud per creare il carico di integrità, il controllo di integrità è globale. Se vuoi creare un controllo di integrità a livello di regione, usagcloud
o l'API.
- Nome:
- Fai clic su Configurazioni avanzate. Nelle norme di failover
configura quanto segue:
- .
- Rapporto di failover:
0.75
- Seleziona Abilita lo svuotamento della connessione in caso di failover.
- Rapporto di failover:
- Verifica che sia presente un segno di spunta blu accanto a Backend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
- In Backend, nella sezione Nuovo elemento, seleziona
- Fai clic su Configurazione frontend. Nella sezione Nuovi IP e porta frontend
apporta le seguenti modifiche:
- .
- Nome:
fr-ilb
- Subnet:
ilb-subnet
- In IP interno, scegli Prenota un indirizzo IP interno statico,
inserisci le informazioni seguenti e fai clic su Prenota:
- .
- Nome:
ip-ilb
- Indirizzo IP statico: Scelta manuale
- Indirizzo IP personalizzato:
10.1.2.99
- Nome:
- Porte: scegli Singola e inserisci
80
per la Porta. numero. - Verifica che sia presente un segno di spunta blu accanto a Frontend configurazione prima di continuare. In caso contrario, rivedi questo passaggio.
- Nome:
- Fai clic su Esamina e finalizza. Controlla le impostazioni.
- Fai clic su Crea.
gcloud
Crea un nuovo controllo di integrità HTTP per testare la connettività TCP alle VM su 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 \ --failover-ratio 0.75
Aggiungi il backend principale 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
Aggiungi il backend di failover al servizio di backend:
gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-c \ --instance-group-zone=us-west1-c \ --failover
Creare una regola di forwarding per il servizio di backend. Quando crei in una regola di forwarding, specifica
10.1.2.99
per l'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 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
Crea il controllo di integrità effettuando una richiesta POST
all'indirizzo
regionHealthChecks.insert
. Sostituisci PROJECT_ID
con il tuo ID progetto.
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
regionBackendServices.insert
. Sostituisci PROJECT_ID
con il tuo ID progetto.
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" "failover": true } ], "failoverPolicy": { "failoverRatio": 0.75 }, "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
forwardingRules.insert
. Sostituisci PROJECT_ID
con il tuo ID progetto.
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" }
Test
Questi test mostrano come convalidare la configurazione del bilanciatore del carico e apprendono sul suo comportamento previsto.
Procedura di test del client
Questa procedura contatta il bilanciatore del carico dalla VM client. Utilizzerai questo per completare gli altri test.
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 .curl http://10.1.2.99
Osserva il testo restituito dal comando
curl
. Il nome della VM di backend la generazione della risposta viene visualizzata in tale testo; ad esempio:Page served from: vm-a1
Stato iniziale test
Una volta configurato il bilanciatore del carico di esempio, tutte e quattro le VM di backend dovrebbe essere integro:
- le due VM principali,
vm-a1
evm-a2
- le due VM di backup,
vm-c1
evm-c2
Segui la procedura di test del client. Ripeti il secondo passaggio alcune
volte. Il comportamento previsto è che il traffico venga gestito dalle due VM principali.
vm-a1
e vm-a2
, perché sono entrambi integri. Dovresti vedere ogni
la VM principale gestisce una risposta all'incirca la metà delle volte perché nessuna sessione
l'affinità è stata configurata per questo carico
con il bilanciatore del carico di rete
passthrough esterno regionale.
Test del failover in corso...
Questo test simula l'errore di vm-a1
per consentirti di osservare il comportamento di failover.
Connettiti alla VM
vm-a1
.gcloud compute ssh vm-a1 --zone=us-west1-a
Arresta il server web Apache. Dopo dieci secondi, Google Cloud considera che questa VM non è integro. (il controllo di integrità
hc-http-80
che hai creato nella configurazione utilizza l'intervallo di controllo predefinito di cinque secondi. soglia di stato non integro di due probe consecutivi non riusciti.)sudo apachectl stop
Segui la procedura di test del client. Ripeti il secondo passaggio a più volte. Il comportamento previsto è che il traffico venga gestito dalle due VM di backup,
vm-c1
evm-c2
. Poiché solo una VM principale,vm-a2
, stato integro, il rapporto tra VM primarie integre e VM primarie totali è0.5
. Questo numero è inferiore alla soglia di failover di0.75
, quindi Google Cloud ha riconfigurato il pool attivo del bilanciatore del carico in modo da utilizzare delle VM di backup. Dovresti vedere che ogni VM di backup fornisce una risposta approssimativamente metà delle volte purché nessuna affinità sessione sia stata configurate per questo bilanciatore del carico.
Errore del test
Questo test simula il failover riavviando il server Apache su vm-a1
.
Connettiti alla VM
vm-a1
.gcloud compute ssh vm-a1 --zone=us-west1-a
Avvia il server web Apache e attendi 10 secondi.
sudo apachectl start
Segui la procedura di test del client. Ripeti il secondo passaggio a più volte. Il comportamento previsto è che il traffico venga gestito dalle due VM principali,
vm-a1
evm-a2
. Con entrambe le VM primarie in stato integro, il rapporto tra VM primarie integre e VM primarie totali è1.0
, maggiore del soglia di failover di0.75
, quindi Google Cloud ha configurato per utilizzare di nuovo le VM primarie.
Aggiunta di altre VM di backend
Questa sezione estende la configurazione di esempio aggiungendo altre risorse principali le VM di backup nel bilanciatore del carico. Per farlo, vengono creati altri due backend gruppi di istanze per dimostrare la possibilità di distribuire VM primarie e di backup tra più zone nella stessa regione:
- Un terzo gruppo di istanze,
ig-d
inus-west1-c
, funge da gruppo principale con due VM:- .
vm-d1
vm-d2
- Un quarto gruppo di istanze,
ig-b
inus-west1-a
, funge da failover con due VM:- .
vm-b1
vm-b2
L'architettura modificata per questo esempio ha il seguente aspetto:
Crea VM e gruppi di istanze aggiuntivi
Segui questi passaggi per creare le VM principali e di backup aggiuntive e le relative gruppi di istanze non gestite corrispondenti.
Console
Crea VM di backend
Nella console Google Cloud, vai alla pagina Istanze VM.
Ripeti i passaggi seguenti per creare quattro VM con il seguente nome e zone.
- Nome:
vm-b1
, zona:us-west1-a
- Nome:
vm-b2
, zona:us-west1-a
- Nome:
vm-d1
, zona:us-west1-c
- Nome:
vm-d2
, zona:us-west1-c
- Nome:
Fai clic su Crea istanza.
Imposta il Nome come indicato nel passaggio 2.
Per Regione, scegli
us-west1
e scegli una Zona come indicato nel passaggio 2.Nella sezione Disco di avvio, assicurati che l'immagine selezionata sia Debian GNU/Linux 10 (buster). Fai clic su Scegli per cambiare l'immagine necessaria.
Fai clic su Opzioni avanzate e apporta le seguenti modifiche:
- Fai clic su Networking e aggiungi i seguenti tag di rete:
allow-ssh
eallow-health-check
- Fai clic sul pulsante di modifica in Interfacce di rete e
le seguenti modifiche, quindi fai clic su Fine:
- .
- Rete:
lb-network
- Subnet:
lb-subnet
- IP interno principale: Temporaneo (automatico)
- IP esterno: Temporaneo
- Rete:
Fai clic su Gestione. Nel campo Script di avvio, copia e incolla i seguenti contenuti dello script. I contenuti dello script sono identici tutte e quattro le VM:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
- Fai clic su Networking e aggiungi i seguenti tag di rete:
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 in una, utilizzando queste combinazioni.
- Gruppo di istanze:
ig-b
, zona:us-west1-a
, VM:vm-b1
evm-b2
- Gruppo di istanze:
ig-d
, zona:us-west1-c
, VM:vm-d1
evm-d2
- 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à, scegli
us-west1
come Regione e quindi scegli una Zona come indicato nel passaggio 2.In Rete, inserisci
lb-network
.In Subnet, inserisci
lb-subnet
.Nella sezione Istanze VM, aggiungi le VM come indicato nel passaggio 2.
Fai clic su Crea.
gcloud
Crea quattro VM eseguendo il comando seguente quattro volte, utilizzando queste quattro combinazioni per
VM_NAME
eZONE
. Contenuti dello script sono identiche per tutte e quattro le VM.VM_NAME
divm-b1
eZONE
dius-west1-a
VM_NAME
divm-b2
eZONE
dius-west1-a
VM_NAME
divm-d1
eZONE
dius-west1-c
VM_NAME
divm-d2
eZONE
dius-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 apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Crea i due gruppi di istanze non gestite in ciascuna zona:
gcloud compute instance-groups unmanaged create ig-b \ --zone=us-west1-a gcloud compute instance-groups unmanaged create ig-d \ --zone=us-west1-c
Aggiungi le VM ai gruppi di istanze appropriati:
gcloud compute instance-groups unmanaged add-instances ig-b \ --zone=us-west1-a \ --instances=vm-b1,vm-b2 gcloud compute instance-groups unmanaged add-instances ig-d \ --zone=us-west1-c \ --instances=vm-d1,vm-d2
API
Crea quattro VM di backend effettuando quattro richieste POST
alla
instances.insert
.
Per le quattro VM, utilizza i seguenti nomi e zone di VM:
VM_NAME
divm-b1
eZONE
dius-west1-a
VM_NAME
divm-b2
eZONE
dius-west1-a
VM_NAME
divm-d1
eZONE
dius-west1-c
VM_NAME
divm-d2
eZONE
dius-west1-c
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoDEBIAN_IMAGE_NAME
: il nome dell'immagine Debian per la in esecuzione in un'istanza Compute Engine. È possibile ottenere il valoreDEBIAN_IMAGE_NAME
attuale eseguendo questo comandogcloud
:gcloud compute images list \ --filter="family=debian-12"
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\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\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Crea due gruppi di istanze effettuando una richiesta POST
all'istanza
instanceGroups.insert
. Sostituisci PROJECT_ID
con il tuo ID progetto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/us-west1-a/instanceGroups
{ "name": "ig-b", "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-d", "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
instanceGroups.addInstances
. Sostituisci PROJECT_ID
con il tuo ID progetto.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/us-west1-a/instanceGroups/ig-b/addInstances
{ "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-b1", "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-b2" } ] }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/us-west1-c/instanceGroups/ig-d/addInstances
{ "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instances/vm-d1", "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-c/instances/vm-d2" } ] }
Aggiunta di un backend principale
Puoi utilizzare questa procedura come modello per aggiungere un'istanza non gestita
gruppo a un servizio di backend del bilanciatore del carico di rete passthrough interno esistente come
il backend principale. Per la configurazione di esempio, questa procedura mostra come
aggiungi il gruppo di istanze ig-d
come backend principale al bilanciatore del carico be-ilb
.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella scheda Bilanciatori del carico, fai clic sul nome di un TCP interno esistente o UDP interno (in questo esempio,
be-ilb
).Fai clic su Modifica
.In Configurazione backend, fai clic su Aggiungi backend e seleziona un gruppo di istanze non gestite (in questo esempio,
ig-d
).Assicurati che l'opzione Usa questo gruppo di istanze come gruppo di failover per il backup sia non selezionata.
Fai clic su Fine, quindi su Aggiorna.
gcloud
Usa questo comando gcloud
per aggiungere un backend principale
a un servizio di backend del bilanciatore del carico di rete passthrough interno esistente.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatore del carico. Ad esempio, utilizzabe-ilb
.INSTANCE_GROUP_NAME
: il nome dell'istanza gruppo da aggiungere come backend principale. Ad esempio, utilizzaig-d
.INSTANCE_GROUP_ZONE
: è la zona in cui gruppo di istanze gestite. Ad esempio, utilizzaus-west1-c
.REGION
: la regione del bilanciatore del carico. Ad esempio, utilizzaus-west1
.
API
Aggiungi un backend principale a un servizio di backend esistente con
il
regionBackendServices.patch
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "balancingMode": "connection", "failover": false, "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/INSTANCE_GROUP_ZONE/instanceGroups/INSTANCE_GROUP_NAME" } ] }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoREGION
: la regione del bilanciatore del carico. Per Ad esempio, utilizzaus-west1
.BACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatore del carico. Ad esempio, utilizzabe-ilb
.INSTANCE_GROUP_NAME
: il nome dell'istanza gruppo da aggiungere come backend principale. Ad esempio, utilizzaig-d
.INSTANCE_GROUP_ZONE
: la zona in cui gruppo di istanze gestite. Ad esempio, utilizzaus-west1-c
.
Aggiunta di un backend di failover
Puoi utilizzare questa procedura come modello per aggiungere un'istanza non gestita
gruppo a un servizio di backend del bilanciatore del carico di rete passthrough interno esistente come
di failover. Per la configurazione di esempio, questa procedura mostra come
aggiungi il gruppo di istanze ig-b
come backend di failover al bilanciatore del carico be-ilb
.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella scheda Bilanciatori del carico, fai clic sul nome di un bilanciatore del carico di tipo TCP/UDP (interno) (in questo esempio,
be-ilb
).Fai clic su Modifica
.In Configurazione backend, fai clic su Aggiungi backend e seleziona un gruppo di istanze non gestite (in questo esempio,
ig-b
).Seleziona Usa questo gruppo di istanze come gruppo di failover per il backup.
Fai clic su Fine, quindi su Aggiorna.
gcloud
Utilizza il seguente comando gcloud
per aggiungere un backend di failover
a un servizio di backend del bilanciatore del carico di rete passthrough interno esistente.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatore del carico. Ad esempio, utilizzabe-ilb
.INSTANCE_GROUP_NAME
: il nome dell'istanza gruppo da aggiungere come backend principale. Ad esempio, utilizzaig-b
.INSTANCE_GROUP_ZONE
: è la zona in cui gruppo di istanze gestite. Ad esempio, utilizzaus-west1-a
.REGION
è la regione del bilanciatore del carico. Ad esempio, utilizzaus-west1
.
API
Aggiungi un backend di failover a un servizio di backend esistente con
il
regionBackendServices.patch
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "balancingMode": "connection", "failover": true, "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/INSTANCE_GROUP_ZONE/instanceGroups/INSTANCE_GROUP_NAME" } ] }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoBACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatore del carico. Ad esempio, utilizzabe-ilb
.INSTANCE_GROUP_NAME
: il nome dell'istanza gruppo da aggiungere come backend principale. Ad esempio, utilizzaig-b
.INSTANCE_GROUP_ZONE
: è la zona in cui gruppo di istanze gestite. Ad esempio, utilizzaus-west1-a
.REGION
: la regione del bilanciatore del carico. Ad esempio, utilizzaus-west1
.
Conversione di un backend principale o di failover
Puoi usare la conversione di un backend principale in un backend di failover o, viceversa, senza dover rimuovere il gruppo di istanze dal bilanciatore del carico di rete passthrough interno di servizio di backend.
Console
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella scheda Bilanciatori del carico, fai clic sul nome di un bilanciatore del carico esistente bilanciatore del carico di tipo TCP/UDP (interno).
Fai clic su Modifica
.In Configurazione backend, fai clic sul nome di uno dei backend gruppi di istanze. Quindi:
- Per rendere il gruppo di istanze un backend di failover, seleziona Usa questa istanza come gruppo di failover per il backup.
- Per rendere il gruppo di istanze un backend principale, deseleziona Usa questo gruppo di istanze come gruppo di failover per il backup.
Fai clic su Fine, quindi su Aggiorna.
gcloud
Utilizza il seguente comando gcloud
per convertire un backend principale esistente in
un backend di failover:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --failover
Usa il seguente comando gcloud
per convertire un backend di failover esistente in
un backend principale:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ --instance-group INSTANCE_GROUP_NAME \ --instance-group-zone INSTANCE_GROUP_ZONE \ --region REGION \ --no-failover
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatoreINSTANCE_GROUP_NAME
: il nome dell'istanza gruppo da aggiungere come backend principaleINSTANCE_GROUP_ZONE
: la zona in cui di istanze gestite in base al gruppoREGION
: la regione del bilanciatore del carico
API
Converti un backend principale in un backend di failover (o viceversa) utilizzando
regionBackendServices.patch
.
Per convertire un backend principale in un backend di failover:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "failover": true, "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/INSTANCE_GROUP_ZONE/instanceGroups/INSTANCE_GROUP_NAME" } ] }
Per convertire un backend di failover in backend principale:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME { "backends": [ { "failover": false, "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/INSTANCE_GROUP_ZONE/instanceGroups/INSTANCE_GROUP_NAME" } ], }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoBACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatoreINSTANCE_GROUP_NAME
: il nome dell'istanza gruppo da aggiungere come backend principaleINSTANCE_GROUP_ZONE
: la zona in cui di istanze gestite in base al gruppoREGION
: la regione del bilanciatore del carico
Configurazione dei criteri di failover
Questa sezione descrive come gestire un failover per un bilanciatore del carico di rete passthrough interno di servizio di backend. Un criterio di failover è costituito da:
- Rapporto di failover
- Eliminazione del traffico quando tutte le VM di backend sono in stato non integro
- Svuotamento connessioni al failover
Per ulteriori informazioni sul di un criterio di failover, vedi:
- Impostazione di un rapporto di failover
- Abbandono del traffico in assenza di una VM in stato integro
- Svuotamento delle connessioni in caso di failover e failover
Definizione di un criterio di failover
Le istruzioni riportate di seguito descrivono come definire il criterio di failover per un il bilanciatore del carico di rete passthrough interno esistente.
Console
Per definire un criterio di failover utilizzando la console Google Cloud, devi di avere almeno un backend di failover.
Nella console Google Cloud, vai alla pagina Bilanciamento del carico.
Nella scheda Bilanciatori del carico, fai clic sul nome di un bilanciatore del carico di tipo TCP/UDP (interno).
Fai clic su Modifica
.Assicurati di avere almeno un backend di failover. Almeno uno dei carichi i backend del bilanciatore del carico devono disporre del pulsante Usa questo gruppo di istanze come failover per il backup selezionato.
Fai clic su Configurazioni avanzate.
- Per Criterio di failover, imposta il Rapporto di failover su un valore.
tra
0.0
e1.0
inclusi. - Seleziona la casella accanto ad Attiva il ritiro del traffico se vuoi rimuovere del traffico quando tutte le VM attive e tutte le VM di backup sono in stato non integro.
- Seleziona la casella accanto ad Abilita lo svuotamento della connessione in caso di failover se e vuoi terminare rapidamente le connessioni esistenti durante il failover.
- Per Criterio di failover, imposta il Rapporto di failover su un valore.
tra
Fai clic su Esamina e finalizza e poi fai clic su Aggiorna.
gcloud
Per definire un criterio di failover utilizzando gcloud CLI, aggiorna il servizio di backend del bilanciatore del carico:
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION \ --failover-ratio FAILOVER_RATIO \ --drop-traffic-if-unhealthy \ --no-connection-drain-on-failover
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatore del carico. Ad esempio, utilizzabe-ilb
.REGION
: la regione del bilanciatore del carico. Ad esempio, utilizzaus-west1
.FAILOVER_RATIO
: il rapporto di failover. Possibile sono compresi tra0.0
e1.0
(inclusi). Ad esempio, utilizza0.75
.--drop-traffic-if-unhealthy
indica al bilanciatore del carico di eliminare il traffico quando tutte le VM principali e tutte le VM di backup sono in stato non integro. Cambia in--no-drop-traffic-if-unhealthy
se vuoi distribuire il traffico tra se tutte le VM di backend sono in stato non integro.--no-connection-drain-on-failover
indica al bilanciatore del carico di e terminare rapidamente le connessioni TCP esistenti durante il failover. Utilizza le funzionalità di--connection-drain-on-failover
per abilitare lo svuotamento della connessione durante di failover.
API
Utilizza la
regionBackendServices.patch
per definire il criterio di failover.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME { "failoverPolicy": { "failoverRatio": FAILOVER_RATIO, "dropTrafficIfUnhealthy": [true|false], "disableConnectionDrainOnFailover": [true|false] } }
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoREGION
: la regione del bilanciatore del caricoBACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatoreFAILOVER_RATIO
: il rapporto di failover. Possibile sono compresi tra0.0
e1.0
(inclusi).- L'impostazione di
dropTrafficIfUnhealthy
sutrue
indica al bilanciatore del carico di quando tutte le VM principali e tutte le VM di backup sono in stato non integro. Imposta afalse
se vuoi distribuire il traffico tra tutte le VM principali se tutte le VM di backend sono in stato non integro. - L'impostazione di
disableConnectionDrainOnFailover
sutrue
indica il caricamento di accesso rapido per terminare rapidamente le connessioni TCP esistenti durante di failover. Imposta questo valore sufalse
per abilitare lo svuotamento della connessione durante di failover.
Visualizzazione di un criterio di failover
Le istruzioni riportate di seguito descrivono come visualizzare il criterio di failover esistente un bilanciatore del carico di rete passthrough interno.
Console
La console Google Cloud mostra le impostazioni esistenti dei criteri di failover quando modificherai un bilanciatore del carico di rete passthrough interno. Fai riferimento alla definizione di un failover per istruzioni.
gcloud
Per elencare le impostazioni dei criteri di failover utilizzando gcloud CLI, usa questo comando. Le impostazioni non definite in un criterio di failover utilizzano valori predefiniti del criterio di failover.
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION \ --format="get(failoverPolicy)"
Sostituisci quanto segue:
BACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatoreREGION
: la regione del bilanciatore del carico
API
Utilizza la
regionBackendServices.get
per visualizzare il criterio di failover.
La risposta alla richiesta API mostra il criterio di failover. Un è mostrato di seguito.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoREGION
: la regione del bilanciatore del caricoBACKEND_SERVICE_NAME
: il nome del caricamento servizio di backend del bilanciatore
{ ... "failoverPolicy": { "disableConnectionDrainOnFailover": false, "dropTrafficIfUnhealthy": false, "failoverRatio": 0.75 ... }
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.
- Vedi Configurare un bilanciatore del carico di rete passthrough interno per un Esempio di configurazione 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 il bilanciatore del carico di rete passthrough interno.
- 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.