Un pool di destinazione è un gruppo di istanze di backend che ricevono traffico in entrata da bilanciatori del carico di rete passthrough esterni. Tutte le istanze di backend di un pool di destinazione devono risiedere nello stesso regione Google Cloud. I bilanciatori del carico di rete passthrough esterni possono: utilizzare un servizio di backend o un pool di destinazione per definire il gruppo di backend di Compute Engine. Se stai creando nuovi bilanciatori del carico di rete passthrough esterni, ti consigliamo di utilizzare i bilanciatori Google Cloud.
In questa pagina vengono descritte le opzioni di configurazione per i backend del pool di destinazione. Quando la regola di forwarding del bilanciatore del carico di rete passthrough esterno indirizza il traffico a un pool di destinazione, Il bilanciatore sceglie un'istanza dal pool di destinazione in base a una hash del indirizzo IP di origine, la porta di origine, l'indirizzo IP di destinazione e e la porta di destinazione.
Se vuoi che il pool di destinazione contenga una singola macchina virtuale (VM), prendi in considerazione l'utilizzo del protocollo di inoltro anziché caricare e del bilanciamento del carico.
Proprietà del pool di destinazione
I pool di destinazione funzionano con le regole di forwarding che gestiscono TCP
e UDP
per via del traffico. Devi creare un pool di destinazione prima di poterlo utilizzare con un forwarding
personalizzata.
I pool di destinazione utilizzano l'integrità HTTP legacy controlli.
Un pool di destinazione è costituito dalle seguenti proprietà:
name
- Il nome di questo pool di destinazione. Il nome deve essere univoco in questo
progetto, con una lunghezza compresa tra 1 e 63 caratteri e corrisponde all'espressione regolare:
[a-z]([-a-z0-9]*[a-z0-9])?
, il che significa che il primo carattere deve essere un lettera minuscola e tutti i caratteri successivi devono essere trattini e minuscoli lettera o cifra, ad eccezione dell'ultimo carattere, che non può essere un trattino. description
- Facoltativo. Una descrizione definita dall'utente di questo pool di destinazione.
region
L'URL completo della regione del pool di destinazione. La regione deve trovarsi nella stessa regione in cui si trovano le istanze di backend. Ad esempio:
"regione" : "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION"
healthChecks[ ]
Facoltativo. Un elenco facoltativo di controlli di integrità per questo pool di destinazione. Solo uno di controllo di integrità può essere collegato a un pool di destinazione specifico. Vedi Salute stai controllando per avere ulteriori informazioni.
instances[ ]
Un elenco di URL di istanza che devono gestire il traffico per questo target piscina. Tutte le istanze devono trovarsi nella stessa regione del pool di destinazione, ma possono appartenere a zone diverse all'interno di una singola regione. Ad esempio:
"instances" : [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE", "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2" ]
sessionAffinity
Facoltativo. Controlla il metodo utilizzato per selezionare una macchina virtuale di backend in esecuzione in un'istanza Compute Engine. Puoi impostare questo valore solo durante la creazione del pool di destinazione. Una volta impostato, non puoi modificare questo valore. Il metodo di hash seleziona un backend su un sottoinsieme dei seguenti 5 valori:
- IP di origine / destinazione
- Porta di origine / destinazione
- Protocollo di livello 4 (TCP, UDP)
Gli hash possibili sono:
NONE
(ovvero nessun hash specificato) (impostazione predefinita)- Hashing a 5 tuple, che utilizza gli IP di origine e di destinazione, e le porte di destinazione e il protocollo. Ogni nuova connessione può terminare tutte le istanze, ma tutto il traffico per una determinata connessione rimarrà nella stessa istanza, se rimane integro.
CLIENT_IP_PROTO
- Hashing a tre tuple, che utilizza gli IP di origine e di destinazione e il protocollo. Tutte le connessioni da un client avranno data la stessa istanza purché utilizzino lo stesso protocollo e l'istanza rimane integro.
CLIENT_IP
- Hashing a due tuple, che utilizza gli IP di origine e di destinazione. Tutti le connessioni da un client finiranno sulla stessa istanza a prescindere dal protocollo, purché l'istanza rimanga integro.
L'hashing a 5 tuple fornisce una buona distribuzione del traffico tra molti nelle macchine virtuali. Tuttavia, una seconda sessione dello stesso client può arrivano su un'altra istanza perché la porta di origine potrebbe cambiare. Se vuoi che tutte le sessioni dello stesso client raggiungano lo stesso backend, purché man mano che il backend rimane integro, puoi specificare
CLIENT_IP_PROTO
CLIENT_IP
opzioni.In generale, se selezioni un metodo a 3 o 2 tuple, verrà fornito un'affinità sessione migliore rispetto al metodo predefinito a 5 tuple, ma nel complesso il traffico potrebbe non essere distribuito uniformemente.
Pacchetti UDP frammentati: se stai bilanciando il carico del traffico UDP che è probabilmente frammentata, imposta l'affinità sessione su
CLIENT_IP_PROTO
oCLIENT_IP
. Non utilizzareNONE
(hashing a 5 tuple). Questo perché I frammenti UDP diversi dal primo non contengono il numero di porta, e il bilanciatore del carico potrebbe eliminare i frammenti senza la porta. Consulta Bilanciamento del carico e UDP frammentato pacchetti per ulteriori informazioni.backupPool
Facoltativo. Un URL completo a un'altra risorsa del pool di destinazione. Un backup pool è un pool di destinazione a cui fa riferimento un altro pool di destinazione. Tu deve definire anche
failoverRatio
per utilizzare questa funzionalità. Se il rapporto di macchine virtuali integre nel pool di destinazione è inferiore afailoverRatio
, il bilanciatore del carico di rete passthrough esterno invia il traffico al backup piscina. Puoi fornire un solo pool di backup per pool di destinazione. La il pool di backup deve trovarsi nella stessa regione del pool di destinazione. Se il rapporto di istanze integre nel pool di destinazione è inferiore a un rapporto di failover configurato, il bilanciatore del carico di rete passthrough esterno utilizza le seguenti regole per indirizzare il traffico:- Se il rapporto tra istanze integre e istanze totali nel pool di destinazione è inferiore al rapporto di failover, il traffico viene inviato alle istanze integre nel pool di backup.
- Se il rapporto tra istanze integre e istanze totali nel pool di destinazione è inferiore al rapporto di failover, ma non esistono le istanze in stato integro rimanenti nel pool di backup, il traffico viene inviato le istanze integre rimanenti nel pool di destinazione.
- Se il pool di destinazione non è vuoto e se tutte le istanze in entrambe le istanze e il pool di backup non supera i controlli di integrità, il traffico viene inviato a tutte le istanze del pool di destinazione, come ultima risorsa.
- Se il pool di destinazione è vuoto e se tutte le istanze nel pool di backup non superano i controlli di integrità, il traffico viene inviato a tutte le istanze pool di backup, come ultima risorsa.
È supportato un solo livello di failover. Ad esempio, se il target Il pool di backup A ha il pool di backup B, mentre il pool di backup B ha il pool di backup C, quindi il traffico destinato al pool di destinazione A può essere indirizzato solo al pool di backup B e non al pool di backup C.
failoverRatio
Facoltativo. Un numero in virgola mobile tra
0.0
e1.0
, che determina quando questo il pool di destinazione è stato dichiarato non integro. Ad esempio, se questo valore è impostato su0.1
, questo pool di destinazione viene dichiarato non integro se il numero di istanze in stato integro sono inferiori a0.1
(10%). Se il rapporto di failover è0.0
, allora almeno uno il backend deve essere integro affinché il pool sia considerato integro. Se il rapporto di failover è impostato su1.0
, tutte le istanze devono essere integre che il pool sia considerato integro. Devi definire questo valore se definisci campobackupPool
.
Condizioni di failover
Condizioni | Le nuove connessioni vanno a |
---|---|
Rapporto di failover !=0, VM integre nel pool di destinazione >= FR | pool di destinazione |
Rapporto di failover =0, VM integre nel pool di destinazione > 0 | pool di destinazione |
Rapporto di failover !=0, VM integre nel pool di destinazione < FR e almeno una VM nel pool di backup è integro | pool di backup |
Rapporto di failover =0, VM integre nel pool di destinazione = 0 e almeno una VM nel pool di backup è integro | pool di backup |
Almeno una VM si trova nel pool di destinazione e tutte le VM nel pool di destinazione non è integro e tutte le VM nel pool di backup sono in stato non integro | pool di destinazione (ultima risorsa) |
Nessuna VM si trova nel pool di destinazione e tutte le VM nel pool di backup lo sono non integro | pool di backup (ultima risorsa) |
Nessuna VM si trova nel pool di destinazione e nessuna VM si trova nel pool di backup | Il traffico è diminuito |
Creare un pool di destinazione
Console
Non è possibile creare pool di destinazione nella console Google Cloud. Puoi creare un pool di destinazione utilizzando Google Cloud CLI o l'API.
Scopri come creare un bilanciatore del carico di rete passthrough esterno basato su pool di destinazione utilizzando il comando Google Cloud CLI, consulta Configurare un bilanciatore del carico di rete passthrough esterno con una destinazione pool.
gcloud
Per utilizzare gcloud compute
per creare un pool di destinazione, usa il comando target-pools
create
:
gcloud compute target-pools create TARGET_POOL \ [--backup-pool=BACKUP_POOL] \ [--description=DESCRIPTION] \ [--failover-ratio=FAILOVER_RATIO] \ [--http-health-check=HEALTH_CHECK] \ [--region=REGION] [--session-affinity=SESSION_AFFINITY; default="NONE"]
Sostituisci quanto segue:
TARGET_POOL
: un nome per il pool di destinazioneBACKUP_POOL
: un nome per il pool di destinazione di backupDESCRIPTION
: una descrizione del pool di destinazioneFAILOVER_RATIO
: un valore compreso tra 0,0 e 1,0, che determina quando il pool di destinazione viene dichiarato non integroHEALTH_CHECK
: un controllo di integrità per questo pool di destinazioneREGION
: una regione del pool di destinazioneSESSION_AFFINITY
: il metodo utilizzato per selezionare un'istanza di macchina virtuale backend
API
Per creare un pool di destinazione nell'API, effettua una richiesta HTTP POST
a
il seguente URI:
https://www.googleapis.com/v1/compute/projects/PROJECT_ID/regions/REGION/targetPools { "name": name, "instances": [ "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE", "https://www.googleapis.com/v1/compute/project/PROJECT_ID/zones/ZONE/instances/INSTANCE-2", ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudZONE
: la zona a cui si riferiscono le istanze del pool di destinazione sono inINSTANCE
,INSTANCE-2
: il valore istanze da aggiungere al pool di destinazione
Aggiungi o rimuovi un'istanza da un pool di destinazione
Console
I pool di destinazione non possono essere modificati nella console Google Cloud. Puoi modificare un pool di destinazione utilizzando Google Cloud CLI o l'API.
gcloud
Per utilizzare gcloud compute
per aggiungere istanze a un pool di destinazione, usa la
Comando target-pools add-instances
:
gcloud compute target-pools add-instances TARGET_POOL \ --instances=INSTANCE,[INSTANCE-2,...]
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazioneINSTANCE
eINSTANCE-2
: il nome dell'istanza (o delle istanze) da aggiungere al pool di destinazione
Per rimuovere le istanze, utilizza
Comando target-pools remove-instances
:
gcloud compute target-pools remove-instances TARGET_POOL \ --instances=INSTANCE,[INSTANCE-2,...]
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazioneINSTANCE
eINSTANCE-2
: il nome dell'istanza (o delle istanze) da rimuovere dal pool di destinazione
API
Nell'API, invia una richiesta POST ai seguenti URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeInstance https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addInstance
Il corpo della richiesta deve includere gli URI completi che vuoi aggiungere o rimuovere:
{ "instances": [ {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE"}, {"instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE-2"} ] }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudTARGET_POOL
: il nome del pool di destinazione da utilizzare aggiornatoREGION
: la regione in cui si trova il pool di destinazioneZONE
: la zona in cui si trovano le istanze aggiornateINSTANCE
,INSTANCE-2
: il valore istanze da aggiungere al pool di destinazione
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API per
targetPools.addInstance
e
targetPools.removeInstance
di classificazione.
Elenca pool di destinazione
Console
Per visualizzare un elenco dei pool di destinazione, utilizza il menu avanzato del bilanciamento del carico.
Nella pagina Bilanciamento del carico avanzato, vai alla scheda Pool di destinazione.
Vai a Pool di destinazione
La pagina mostra un elenco di pool di destinazione.
gcloud
Per utilizzare gcloud compute
per elencare i pool di destinazione esistenti, usa la
Comando target-pools list
:
gcloud compute target-pools list
Per un output più dettagliato, utilizza il comando describe
e specifica
il nome di un pool.
API
Nell'API, invia una richiesta GET al seguente URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudREGION
: la regione in cui si trova il pool di destinazione
Descrizione di un pool di destinazione
Console
Per ottenere informazioni su un pool di destinazione, utilizza il menu avanzato del bilanciamento del carico.
- Nella pagina Bilanciamento del carico avanzato, vai alla scheda Pool di destinazione.
Vai a Pool di destinazione - Per visualizzare informazioni dettagliate, fai clic sul nome del pool di destinazione.
gcloud
Per utilizzare gcloud compute
al fine di ottenere informazioni su un singolo pool di destinazione, utilizza il
Comando target-pools describe
:
gcloud compute target-pools describe TARGET_POOL
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazione
API
Nell'API, invia una richiesta GET vuota al seguente URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudTARGET_POOL
: il nome del pool di destinazione da utilizzare aggiornatoREGION
: la regione in cui si trova il pool di destinazione
Ottieni lo stato di integrità delle istanze
Console
Per ottenere lo stato di integrità delle istanze in un pool di destinazione, utilizza il bilanciamento del carico menu avanzato.
- Nella pagina Bilanciamento del carico avanzato, vai alla scheda Pool di destinazione.
Vai a Pool di destinazione - Fai clic sul nome del pool di destinazione.
- La pagina Dettagli pool di destinazione elenca tutte le istanze e il relativo integrità .
gcloud
Per utilizzare gcloud compute
al fine di controllare lo stato di integrità attuale di un'istanza
nel pool di destinazione o di tutte le istanze nel pool di destinazione, puoi utilizzare
Comando gcloud compute target-pools get-health
:
gcloud compute target-pools get-health TARGET_POOL
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazione
Il comando restituisce lo stato di integrità determinato dalla configurazione che non sia integro o meno.
API
Nell'API, effettua una richiesta POST HTTP al seguente URI con l'istanza specificato nel corpo della richiesta:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/getHealth { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudTARGET_POOL
: il nome del pool di destinazione da utilizzare aggiornatoREGION
: la regione in cui si trova il pool di destinazioneZONE
: la zona in cui si trova l'istanzaINSTANCE
: l'istanza il cui stato del controllo di integrità stai controllando
Elimina un pool di destinazione
Per eliminare un pool di destinazione, devi prima assicurarti che non sia a cui fanno riferimento eventuali regole di forwarding. Se una regola di forwarding è facendo riferimento a un pool di destinazione, devi eliminare la regola di forwarding per rimuovere riferimento.
Console
Per utilizzare la console Google Cloud per eliminare un pool di destinazione, utilizza il comando menu avanzato di bilanciamento del carico.
- Nella pagina Bilanciamento del carico avanzato, vai alla scheda Pool di destinazione.
Vai a Pool di destinazione - Fai clic sul nome del pool di destinazione.
- Fai clic su Elimina.
- Nella finestra Elimina un pool di destinazione, fai clic su Elimina.
gcloud
Per utilizzare gcloud compute
per eliminare un pool di destinazione, usa lo
Comando target-pools delete
:
gcloud compute target-pools delete TARGET_POOL
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazione da utilizzare eliminati
API
Nell'API, invia una richiesta DELETE vuota al seguente URI:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudTARGET_POOL
: il nome del pool di destinazione da utilizzare aggiornatoREGION
: la regione in cui si trova il pool di destinazione
Aggiungi o rimuovi un controllo di integrità da un pool di destinazione
Gli oggetti del controllo di integrità sono risorseglobali autonome che possono essere associate o dissociate da qualsiasi pool di destinazione.
Se a un pool di destinazione non è associato alcun controllo di integrità, il bilanciatore del carico di rete passthrough esterno
tratterà tutte le istanze come in stato integro e invierà il traffico a tutte le istanze del
pool di destinazione. Tuttavia, se esegui una query sullo stato di integrità di un pool di destinazione
senza un controllo di integrità, lo stato verrà ripristinato come unhealthy
per indicare che
il pool di destinazione non ha un controllo di integrità. Ti consigliamo di impostare il tuo target
I pool devono essere associati a controlli di integrità per aiutarti a gestire le istanze.
I bilanciatori del carico di rete passthrough esterni utilizzano l'integrità HTTP legacy controlla per per determinare l'integrità delle istanze nel pool di destinazione. Un bilanciatore del carico di rete passthrough esterno può Utilizzare solo un controllo di integrità HTTP legacy, non un controllo di integrità HTTPS legacy.
Console
Quando utilizzi la console Google Cloud, puoi creare una richiesta HTTP legacy Controllo di integrità durante la creazione di un bilanciatore del carico di rete passthrough esterno con un pool di destinazione di backend.
Non puoi utilizzare la pagina Controlli di integrità della console Google Cloud per creare un controllo di integrità legacy autonomo.
gcloud
Per utilizzare gcloud compute
al fine di aggiungere un controllo di integrità a un pool di destinazione, utilizza il metodo
Comando target-pools add-health-checks
:
gcloud compute target-pools add-health-checks TARGET_POOL \ --http-health-check=HEALTH_CHECK
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazioneHEALTH_CHECK
: l'integrità HTTP precedente da utilizzare con questo pool di destinazione
Per rimuovere un controllo di integrità, utilizza
Comando target-pools remove-health-checks
:
gcloud compute target-pools remove-health-checks TARGET_POOL \ --http-health-check=HEALTH_CHECK
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazioneHEALTH_CHECK
: il controllo di integrità HTTP precedente da eseguire rimosso da questo pool di destinazione
API
Per associare o annullare l'associazione di un controllo di integrità utilizzando l'API, crea un HTTP POST
agli URI appropriati:
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/removeHealthCheck https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/addHealthCheck
Il corpo della richiesta deve contenere il controllo di integrità da associare annulla l'associazione:
{ "healthCheck": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/httpHealthChecks/HEALTH_CHECK" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudTARGET_POOL
: il nome del pool di destinazione da utilizzare aggiornatoREGION
: la regione in cui si trova il pool di destinazioneHEALTH_CHECK
: il controllo di integrità HTTP precedente da eseguire associate o dissociate al pool di destinazione
Per ulteriori informazioni, consulta la documentazione di riferimento delle API per
targetPools.addHealthCheck
e
targetPools.removeHealthCheck
.
Aggiungi o rimuovi un pool di destinazione di backup
Quando crei un pool di destinazione per la prima volta, puoi scegliere di applicare una destinazione di backup che riceve traffico se il pool di destinazione è in stato non integro.
Se non hai mai configurato un pool di destinazione di backup, devi configurare anche controlli di integrità per far funzionare la funzionalità. in modo corretto.
Console
I pool di destinazione non possono essere modificati nella console Google Cloud. Puoi modificare un proxy di destinazione utilizzando Google Cloud CLI o l'API.
gcloud
Per utilizzare gcloud compute
per aggiornare la risorsa del pool di backup, usa il
Comando target-pools set-backup
:
gcloud compute target-pools set-backup TARGET_POOL \ --backup-pool=BACKUP_POOL \ --failover-ratio=FAILOVER_RATIO
Sostituisci quanto segue:
TARGET_POOL
: il nome del pool di destinazioneBACKUP_POOL
: un nome per il pool di destinazione di backupFAILOVER_RATIO
: un valore compreso tra 0,0 e 1,0, che determina quando il pool di destinazione viene dichiarato non integro
API
Per effettuare una richiesta di aggiornamento o rimozione di un pool di backup tramite l'API, invia un Richiesta POST al seguente URI:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL/setBackup?failoverRatio=FAILOVER_RATIO { "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/BACKUP_POOL" }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google CloudTARGET_POOL
: il nome del pool di destinazione da utilizzare aggiornatoREGION
: la regione in cui si trova il pool di destinazioneBACKUP_POOL
: il nome del pool di backup da utilizzare associate al pool di destinazioneFAILOVER_RATIO
: il rapporto di failover
Se definisci una destinazione vuota o non definisci un rapporto di failover, Il comportamento del pool è disabilitato per questo pool di destinazione.
Passaggi successivi
- Per saperne di più sui pool di destinazione, consulta la documentazione di riferimento delle API per
targetPools.setBackup
- Per saperne di più sulle regole di forwarding, consulta Panoramica delle regole di forwarding.