Un servizio di backend definisce la modalità di distribuzione del traffico di Cloud Load Balancing. La configurazione del servizio di backend contiene un insieme di valori, ad esempio il protocollo utilizzato per connettersi ai backend, varie impostazioni di distribuzione e sessione, controlli di integrità e timeout. Queste impostazioni forniscono un controllo granulare sul comportamento del bilanciatore del carico. Per iniziare, la maggior parte delle impostazioni ha valori predefiniti che consentono una configurazione rapida. Un servizio di backend è globale o regionale.
I bilanciatori del carico, i proxy Envoy e i client gRPC senza proxy utilizzano le informazioni di configurazione nella risorsa del servizio di backend per:
- Indirizza il traffico ai backend corretti, ovvero gruppi di istanze o gruppi di endpoint di rete (NEG).
- Distribuisci il traffico in base a una modalità di bilanciamento, che è un'impostazione per ogni backend.
- Determina quale controllo di integrità monitora l'integrità dei backend.
- Specifica l'affinità sessione.
- Determina se sono attivati altri servizi, inclusi i seguenti
servizi disponibili solo per determinati bilanciatori
del carico:
- Cloud CDN
- Criteri di sicurezza di Google Cloud Armor
- Identity-Aware Proxy
- Designa i servizi di backend globali e regionali come servizio nelle applicazioni App Hub.
Questi valori vengono impostati quando crei un servizio di backend o aggiungi un backend al servizio di backend.
Nota: se utilizzi il bilanciatore del carico delle applicazioni esterno globale o il bilanciatore del carico delle applicazioni classico e i tuoi backend pubblicano contenuti statici, valuta la possibilità di utilizzare i bucket di backend anziché i servizi di backend. Consulta bucket di backend per il bilanciatore del carico delle applicazioni esterno globale o bucket di backend per il bilanciatore del carico delle applicazioni classico.La tabella seguente riepiloga i bilanciatori del carico che utilizzano i servizi di backend. Il prodotto che utilizzi determina anche il numero massimo di servizi di backend, l'ambito di un servizio di backend, il tipo di backend supportati e lo schema di bilanciamento del carico del servizio di backend. Lo schema di bilanciamento del carico è un identificatore che Google utilizza per classificare le regole di forwarding e i servizi di backend. Ogni prodotto di bilanciamento del carico utilizza uno schema di bilanciamento del carico per le regole di forwarding e i servizi di backend. Alcuni schemi sono condivisi tra i prodotti.
| Prodotto | Numero massimo di servizi di backend | Ambito del servizio di backend | Tipi di backend supportati | Schema di bilanciamento del carico |
|---|---|---|---|---|
| Bilanciatore del carico delle applicazioni esterno globale | Multiplo | Globale | Ogni servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL_MANAGED |
| Bilanciatore del carico delle applicazioni classico | Multiplo | Globale‡ | Ogni servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL# |
| Bilanciatore del carico delle applicazioni esterno regionale | Multiplo | Regionale | Ogni servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL_MANAGED |
| Bilanciatore del carico delle applicazioni interno tra regioni | Multiplo | Globale | Ogni servizio di backend supporta una delle seguenti combinazioni di backend:
|
INTERNAL_MANAGED |
| Bilanciatore del carico delle applicazioni interno regionale | Multiplo | Regionale | Ogni servizio di backend supporta una delle seguenti combinazioni di backend:
|
INTERNAL_MANAGED |
| Bilanciatore del carico di rete proxy esterno globale | 1 | Globale‡ | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL_MANAGED |
| Bilanciatore del carico di rete proxy classico | 1 | Globale‡ | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL |
| Bilanciatore del carico di rete proxy esterno regionale | 1 | Regionale | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL_MANAGED |
| Bilanciatore del carico di rete proxy interno regionale | 1 | Regionale | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
INTERNAL_MANAGED |
| Bilanciatore del carico di rete proxy interno tra regioni | Multiplo | Globale | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
INTERNAL_MANAGED |
| Bilanciatore del carico di rete passthrough esterno | 1 | Regionale | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
EXTERNAL |
| Bilanciatore del carico di rete passthrough interno | 1 | Regionale, ma configurabile per essere accessibile a livello globale | Il servizio di backend supporta una delle seguenti combinazioni di backend:
|
INTERNAL |
| Cloud Service Mesh | Multiplo | Globale | Ogni servizio di backend supporta una delle seguenti combinazioni di backend:
|
INTERNAL_SELF_MANAGED |
GCE_VM_IP_PORT.
- La regola di forwarding e il relativo indirizzo IP esterno sono regionali.
- Tutti i backend connessi al servizio di backend devono trovarsi nella stessa regione della regola di forwarding.
EXTERNAL_MANAGED servizi di backend a
EXTERNAL regole di forwarding. Tuttavia, i servizi di backend EXTERNAL non possono essere collegati alle regole di forwarding EXTERNAL_MANAGED.
Per usufruire delle nuove funzionalità disponibili
solo con il bilanciatore del carico delle applicazioni esterno globale, ti
consigliamo di eseguire la migrazione delle risorse EXTERNAL esistenti a
EXTERNAL_MANAGED utilizzando la procedura di migrazione descritta in
Eseguire la migrazione
delle risorse dal bilanciatore del carico delle applicazioni esterno classico a quello globale.
Denominazione del bilanciatore del carico
Per i bilanciatori del carico di rete proxy e i bilanciatori del carico di rete passthrough, il nome del bilanciatore del carico è sempre uguale al nome del servizio di backend. Il comportamento per ciascuna Google Cloud interfaccia è il seguente:
- ConsoleGoogle Cloud . Se crei un bilanciatore del carico di rete proxy o un bilanciatore del carico di rete passthrough utilizzando la console Google Cloud , al servizio di backend viene assegnato automaticamente lo stesso nome che hai inserito per il nome del bilanciatore del carico.
- Google Cloud CLI o API. Se crei un bilanciatore del carico di rete proxy o un bilanciatore del carico di rete pass-through utilizzando gcloud CLI o l'API, inserisci un nome a tua scelta durante la creazione del servizio di backend. Il nome di questo servizio di backend viene poi visualizzato nella console Google Cloud come nome del bilanciatore del carico.
Per scoprire di più sul funzionamento della denominazione per i bilanciatori del carico delle applicazioni, consulta Panoramica delle mappe URL: denominazione del bilanciatore del carico.
Backend
Un backend è uno o più endpoint che ricevono traffico da un bilanciatore del carico Google Cloud, da un proxy Envoy configurato con Cloud Service Mesho da un client gRPC senza proxy. Esistono diversi tipi di backend:
- Un gruppo di istanze contenente istanze di macchine virtuali (VM). Un gruppo di istanze può essere un gruppo di istanze gestite (MIG), con o senza scalabilità automatica, oppure può essere un gruppo di istanze non gestite. Più di un servizio di backend può fare riferimento a un gruppo di istanze, ma tutti i servizi di backend che fanno riferimento al gruppo di istanze devono utilizzare modalità di bilanciamento compatibili. Per ulteriori informazioni, consulta la sezione Restrizioni e indicazioni per i gruppi di istanze di questo documento.
- NEG a livello di zona
- NEG serverless
- NEG Private Service Connect
- NEG internet
- NEG connettività ibrida
- NEG mappatura porte
- Service Directory service bindings
Non puoi eliminare un gruppo di istanza di backend o un NEG associato a un servizio di backend. Prima di eliminare un gruppo di istanze o un NEG, devi prima rimuoverlo come backend da tutti i servizi di backend che vi fanno riferimento.
Gruppi di istanze
Questa sezione descrive il funzionamento dei gruppi di istanze con il servizio di backend.
VM di backend e indirizzi IP esterni
Le VM di backend nei servizi di backend non richiedono indirizzi IP esterni:
- Per i bilanciatori del carico delle applicazioni esterni globali e
i bilanciatori del carico di rete proxy esterni: i client comunicano con un Google Front End (GFE) che
ospita l'indirizzo IP esterno del bilanciatore del carico. I GFE comunicano con le VM o gli endpoint di backend inviando pacchetti a un indirizzo interno creato unendo un identificatore per la rete VPC del backend all'indirizzo IPv4 interno del backend. La comunicazione tra GFE e VM o endpoint di backend è facilitata da route speciali.
- Per i backend dei gruppi di istanze, l'indirizzo IPv4 interno è sempre l'indirizzo IPv4 interno principale che corrisponde all'interfaccia
nic0della VM. - Per gli endpoint
GCE_VM_IP_PORTin un NEG zonale, puoi specificare l'indirizzo IP dell'endpoint come indirizzo IPv4 primario associato a qualsiasi interfaccia di rete di una VM o qualsiasi indirizzo IPv4 da un intervallo di indirizzi IP alias associato a qualsiasi interfaccia di rete di una VM.
- Per i backend dei gruppi di istanze, l'indirizzo IPv4 interno è sempre l'indirizzo IPv4 interno principale che corrisponde all'interfaccia
Per i bilanciatori del carico delle applicazioni esterni regionali:i client comunicano con un proxy Envoy che ospita l'indirizzo IP esterno del bilanciatore del carico. I proxy Envoy comunicano con le VM o gli endpoint di backend inviando pacchetti a un indirizzo interno creato unendo un identificatore per la rete VPC del backend con l'indirizzo IPv4 interno del backend.
- Per i backend dei gruppi di istanze, l'indirizzo IPv4 interno è sempre l'indirizzo IPv4 interno principale che corrisponde all'interfaccia
nic0della VM enic0deve trovarsi nella stessa rete del bilanciatore del carico. - Per gli endpoint
GCE_VM_IP_PORTin un NEG zonale, puoi specificare l'indirizzo IP dell'endpoint come indirizzo IPv4 primario associato a qualsiasi interfaccia di rete di una VM o qualsiasi indirizzo IPv4 di un intervallo di indirizzi IP alias associato a qualsiasi interfaccia di rete di una VM, a condizione che l'interfaccia di rete si trovi nella stessa rete del bilanciatore del carico.
- Per i backend dei gruppi di istanze, l'indirizzo IPv4 interno è sempre l'indirizzo IPv4 interno principale che corrisponde all'interfaccia
Per i bilanciatori del carico di rete passthrough esterni:i client comunicano direttamente con i backend tramite l'infrastruttura di bilanciamento del carico passthrough Maglev di Google. I pacchetti vengono instradati e recapitati ai backend con gli indirizzi IP di origine e destinazione originali conservati. I backend rispondono ai client utilizzando il ritorno diretto del server. I metodi utilizzati per selezionare un backend e monitorare le connessioni sono configurabili.
- Per i backend dei gruppi di istanze, i pacchetti vengono sempre inviati all'interfaccia
nic0della VM. - Per gli endpoint
GCE_VM_IPin un NEG zonale, i pacchetti vengono inviati all'interfaccia di rete della VM che si trova nella subnet associata al NEG.
- Per i backend dei gruppi di istanze, i pacchetti vengono sempre inviati all'interfaccia
Porte denominate
L'attributo porta denominata del servizio di backend è applicabile solo ai bilanciatori del carico basati su proxy (bilanciatori del carico delle applicazioni e bilanciatori del carico di rete proxy) che utilizzano backend di gruppi di istanze. La porta denominata definisce la porta di destinazione utilizzata per la connessione TCP tra il proxy (GFE o Envoy) e l'istanza di backend.
Le porte denominate sono configurate nel seguente modo:
In ogni backend del gruppo di istanze, devi configurare una o più porte denominate utilizzando coppie chiave-valore. La chiave rappresenta un nome di porta significativo che scegli e il valore rappresenta il numero di porta che assegni al nome. La mappatura dei nomi ai numeri viene eseguita singolarmente per ogni backend del gruppo di istanze.
Nel servizio di backend, specifica una singola porta denominata utilizzando solo il nome della porta (
--port-name).
In base al backend di ogni gruppo di istanze, il servizio di backend traduce il nome della porta in un numero di porta. Quando la porta denominata di un gruppo di istanze corrisponde a --port-name del servizio di backend, quest'ultimo utilizza questo numero di porta per la comunicazione con le VM del gruppo di istanze.
Ad esempio, puoi impostare la porta denominata su un gruppo di istanze con il nome
my-service-name e la porta 8888:
gcloud compute instance-groups unmanaged set-named-ports my-unmanaged-ig \
--named-ports=my-service-name:8888
Poi fai riferimento alla porta denominata nella configurazione del servizio di backend con
--port-name impostato su my-service-name nel servizio di backend:
gcloud compute backend-services update my-backend-service \
--port-name=my-service-name
Un servizio di backend può utilizzare un numero di porta diverso quando comunica con le VM in gruppi di istanze diversi se ogni gruppo di istanze specifica un numero di porta diverso per lo stesso nome di porta.
Il numero di porta risolto utilizzato dal servizio di backend del bilanciatore del carico proxy non deve corrispondere al numero di porta utilizzato dalle regole di forwarding del bilanciatore del carico. Un bilanciatore del carico proxy è in attesa di connessioni TCP inviate all'indirizzo IP e alla porta di destinazione delle relative regole di forwarding. Poiché il proxy apre una seconda connessione TCP ai suoi backend, la porta di destinazione della seconda connessione TCP può essere diversa.
Le porte denominate sono applicabili solo ai backend dei gruppi di istanze. I NEG di zona con endpoint GCE_VM_IP_PORT, i NEG ibridi con endpoint NON_GCP_PRIVATE_IP_PORT e i NEG internet definiscono le porte utilizzando un meccanismo diverso, ovvero sugli endpoint stessi. I NEG serverless fanno riferimento ai servizi Google e i NEG PSC fanno riferimento agli allegati di servizio utilizzando astrazioni che non prevedono la specifica di una porta di destinazione.
I bilanciatori del carico di rete passthrough interni e i bilanciatori del carico di rete passthrough esterni non utilizzano porte denominate. Questo perché sono bilanciatori del carico pass-through che instradano le connessioni direttamente ai backend anziché crearne di nuove. I pacchetti vengono inviati ai backend conservando l'indirizzo IP e la porta di destinazione della regola di forwarding del bilanciatore del carico.
Per scoprire come creare porte denominate, segui queste istruzioni:
- Gruppi di istanze non gestite: utilizzo delle porte denominate
- Gruppi di istanze gestite: assegnazione di porte denominate a gruppi di istanze gestite
Limitazioni e indicazioni per i gruppi di istanze
Quando utilizzi i backend di gruppo di istanze, tieni presente quanto segue:
Un'istanza VM può appartenere a un solo gruppo di istanze con bilanciamento del carico. Ad esempio, una VM può far parte di due gruppi di istanze non gestite oppure di un gruppo di istanze gestite e di un gruppo di istanze non gestite. Quando una VM è membro di due o più gruppi di istanze, solo uno dei gruppi di istanze può essere referenziato da uno o più servizi di backend del bilanciatore del carico.
Lo stesso gruppo di istanze può essere utilizzato da due o più servizi di backend. Ogni mapping tra un gruppo di istanze e un servizio di backend può utilizzare una modalità di bilanciamento diversa, ad eccezione delle combinazioni di modalità di bilanciamento incompatibili.
Le combinazioni di modalità di bilanciamento incompatibili sono le seguenti:
La modalità di bilanciamento
UTILIZATIONnon è compatibile con tutte le altre modalità di bilanciamento. Se un gruppo di istanze è un backend di più servizi di backend, deve utilizzare la modalità di bilanciamentoUTILIZATIONsu ogni servizio di backend.La modalità di bilanciamento
CUSTOM_METRICSnon è compatibile con tutte le altre modalità di bilanciamento. Se un gruppo di istanze è un backend di più servizi di backend, deve utilizzare la modalità di bilanciamentoCUSTOM_METRICSsu ogni servizio di backend.
A causa delle combinazioni di modalità di bilanciamento incompatibili, se un gruppo di istanze utilizza la modalità di bilanciamento
UTILIZATIONoCUSTOM_METRICScome backend per almeno un servizio di backend, lo stesso gruppo di istanze non può essere utilizzato come backend per un bilanciatore del carico di rete pass-through perché i bilanciatori del carico di rete pass-through richiedono la modalità di bilanciamentoCONNECTION.
Non esiste un singolo comando che possa modificare la modalità di bilanciamento dello stesso gruppo di istanze su più servizi di backend. Per modificare la modalità di bilanciamento del carico per un gruppo di istanze che è il backend di due o più servizi di backend, puoi utilizzare questa tecnica:
- Rimuovi il gruppo di istanze come backend da tutti i servizi di backend, tranne uno.
- Modifica la modalità di bilanciamento del gruppo di istanze per l'unico servizio di backend rimanente.
- Aggiungi di nuovo il gruppo di istanze come backend agli altri servizi di backend.
Prendi in esame le seguenti best practice, che offrono opzioni più flessibili:
Evita di utilizzare lo stesso gruppo di istanze come backend per due o più servizi di backend. Utilizza invece più NEG.
A differenza dei gruppi di istanze, una VM può avere un endpoint in due o più NEG con bilanciamento del carico.
Ad esempio, se una VM deve essere contemporaneamente un backend di un bilanciatore del carico di rete passthrough e di un bilanciatore del carico di rete proxy o di un bilanciatore del carico delle applicazioni, utilizza più NEG con bilanciamento del carico. Inserisci un endpoint VM in un NEG univoco compatibile con ogni tipo di bilanciatore del carico. Poi associa ogni NEG al servizio di backend del bilanciatore del carico corrispondente.
Non aggiungere un gruppo di istanze gestite con scalabilità automatica a più di un servizio di backend quando utilizzi la metrica di scalabilità automatica Utilizzo del bilanciamento del carico HTTP. Due o più servizi di backend che fanno riferimento allo stesso gruppo di istanze gestite con scalabilità automatica possono contraddirsi a vicenda, a meno che la metrica di scalabilità automatica non sia correlata all'attività del bilanciatore del carico.
Gruppi di endpoint di rete a livello di zona
Gli endpoint di rete rappresentano i servizi in base al loro indirizzo IP o a una combinazione di indirizzo IP e porta, anziché fare riferimento a una VM in un gruppo di istanze. Un gruppo di endpoint di rete (NEG) è un raggruppamento logico di endpoint di rete.
I NEG di zona sono risorse zonali che rappresentano raccolte di indirizzi IP o combinazioni di indirizzi IP e porte per risorseGoogle Cloud all'interno di una singola subnet.
Un servizio di backend che utilizza i NEG zonali come backend distribuisce il traffico tra le applicazioni o i container in esecuzione all'interno delle VM.
Sono disponibili due tipi di endpoint di rete per i NEG zonali:
- endpoint
GCE_VM_IP(supportati solo con i bilanciatori del carico di rete passthrough interni e i bilanciatori del carico di rete passthrough esterni basati su servizio di backend). GCE_VM_IP_PORTendpoint.
Per vedere quali prodotti supportano i backend NEG zonali, consulta Tabella: servizi di backend e tipi di backend supportati.
Per maggiori dettagli, vedi la panoramica dei NEG zonali.
Gruppi di endpoint di rete internet
I NEG internet sono risorse che definiscono i backend esterni. Un backend esterno è un backend ospitato all'interno di un'infrastruttura on-premise o su un'infrastruttura fornita da terze parti.
Un NEG internet è una combinazione di un nome host o un indirizzo IP, più una porta facoltativa. Esistono due tipi di endpoint di rete disponibili per i NEG internet: INTERNET_FQDN_PORT e INTERNET_IP_PORT.
Per maggiori dettagli, consulta la panoramica del gruppo di endpoint di rete internet.
Gruppi di endpoint di rete serverless
Un gruppo di endpoint di rete (NEG) specifica un gruppo di endpoint di backend per un bilanciatore del carico. Un NEG serverless è un backend che punta a una risorsa Cloud Run, App Engine, Cloud Run Functions o API Gateway.
Un NEG serverless può rappresentare uno dei seguenti elementi:
- Una risorsa Cloud Run o un gruppo di risorse.
- Una funzione Cloud Run o un gruppo di funzioni (in precedenza Cloud Run Functions2ª generazionen.).
- Una funzione Cloud Run (1ª generazione.) o un gruppo di funzioni
- Un'app dell'ambiente standard di App Engine o dell'ambiente flessibile di App Engine, un servizio specifico all'interno di un'app, una versione specifica di un'app o un gruppo di servizi.
- Un API Gateway che fornisce l'accesso ai tuoi servizi tramite un'API REST coerente in tutti i servizi, indipendentemente dall'implementazione del servizio. Questa funzionalità è in anteprima.
Per configurare un NEG serverless per applicazioni serverless che condividono un pattern URL, utilizza una maschera
URL. Una maschera URL
è un modello dello schema URL (ad esempio, example.com/<service>). Il
NEG serverless utilizzerà questo modello per estrarre il nome <service> dall'URL
della richiesta in entrata e indirizzare la richiesta al servizio
Cloud Run, Cloud Run Functions o App Engine
corrispondente con lo stesso nome.
Per vedere quali bilanciatori del carico supportano i backend NEG serverless, consulta la tabella: servizi di backend e tipi di backend supportati.
Per saperne di più sui NEG serverless, consulta la panoramica dei gruppi di endpoint di rete serverless.
Associazioni dei servizi
Un'associazione dei servizi è un backend che stabilisce una connessione tra un servizio di backend in Cloud Service Mesh e un servizio registrato in Service Directory. Un servizio di backend può fare riferimento a diversi service binding. Un servizio di backend con un'associazione dei servizi non può fare riferimento a nessun altro tipo di backend.
Backend misti
Quando aggiungi diversi tipi di backend a un singolo servizio di backend, si applicano le seguenti considerazioni sull'utilizzo:
- Un singolo servizio di backend non può utilizzare contemporaneamente gruppi di istanze e NEG di zona.
- Puoi utilizzare una combinazione di diversi tipi di gruppi di istanze nello stesso servizio di backend. Ad esempio, un singolo servizio di backend può fare riferimento a una combinazione di gruppi di istanze gestite e non gestite. Per informazioni complete sui backend compatibili con i servizi di backend, consulta la tabella nella sezione precedente.
- Con alcuni bilanciatori del carico proxy, puoi utilizzare una combinazione di NEG di zona (con endpoint
GCE_VM_IP_PORT) e NEG di connettività ibrida (con endpointNON_GCP_PRIVATE_IP_PORT) per configurare il bilanciamento del carico ibrido. Per scoprire quali bilanciatori del carico dispongono di questa funzionalità, consulta la tabella: servizi di backend e tipi di backend supportati.
Protocollo per i backend
Quando crei un servizio di backend, devi specificare il protocollo utilizzato per comunicare con i backend. Puoi specificare un solo protocollo per servizio di backend. Non puoi specificare un protocollo secondario da utilizzare come fallback.
I protocolli validi dipendono dal tipo di bilanciatore del carico o dal fatto che tu stia utilizzando Cloud Service Mesh.
| Prodotto | Opzioni di protocollo del servizio di backend |
|---|---|
| Bilanciatore del carico delle applicazioni | HTTP, HTTPS, HTTP/2 |
| Bilanciatore del carico di rete proxy | TCP o SSL I bilanciatori del carico di rete proxy regionali supportano solo TCP. |
| Bilanciatore del carico di rete passthrough | TCP, UDP o UNSPECIFIED |
| Cloud Service Mesh | HTTP, HTTPS, HTTP/2, gRPC, TCP |
La modifica del protocollo di un servizio di backend rende i backend inaccessibili tramite i bilanciatori del carico per alcuni minuti.
Policy di selezione degli indirizzi IP
Questo campo è applicabile ai bilanciatori del carico proxy. Devi utilizzare la policy di selezione dell'indirizzo IP per specificare il tipo di traffico inviato dal servizio di backend ai tuoi backend.
Quando selezioni il criterio di selezione dell'indirizzo IP, assicurati che i backend supportino il tipo di traffico selezionato. Per saperne di più, vedi Tabella: servizi di backend e tipi di backend supportati.
La norma di selezione dell'indirizzo IP viene utilizzata quando vuoi convertire il servizio di backend del bilanciatore del carico per supportare un tipo di traffico diverso. Per ulteriori informazioni, consulta Eseguire la conversione da single-stack a dual-stack.
Puoi specificare i seguenti valori per la policy di selezione degli indirizzi IP:
| Policy di selezione degli indirizzi IP | Descrizione |
|---|---|
| Solo IPv4 | Invia solo traffico IPv4 ai backend del servizio di backend, indipendentemente dal traffico dal client al GFE. Per controllare l'integrità dei backend vengono utilizzati solo controlli di integrità IPv4. |
| Preferisci IPv6 | Dai la priorità alla connessione IPv6 del backend rispetto alla connessione IPv4 (a condizione che esista un backend integro con indirizzi IPv6). I controlli di integrità monitorano periodicamente le connessioni IPv6 e IPv4 dei backend. GFE tenta prima la connessione IPv6; se la connessione IPv6 è interrotta o lenta, GFE utilizza happy eyeballs per eseguire il failover e connettersi a IPv4. Anche se una delle connessioni IPv6 o IPv4 non è integra, il backend viene comunque considerato integro ed entrambe le connessioni possono essere provate da GFE, con happy eyeballs che alla fine seleziona quella da utilizzare. |
| Solo IPv6 | Invia solo traffico IPv6 ai backend del servizio di backend, indipendentemente dal traffico dal client al proxy. Per controllare l'integrità dei backend vengono utilizzati solo i controlli di integrità IPv6. Non è prevista alcuna convalida per verificare se il tipo di traffico di backend corrisponde al
criterio di selezione degli indirizzi IP. Ad esempio, se hai backend solo IPv4
e selezioni |
Crittografia tra il bilanciatore del carico e i backend
Per informazioni sulla crittografia tra il bilanciatore del carico e i backend, vedi Crittografia verso i backend.
Modalità di bilanciamento, capacità target e gestore della scalabilità della capacità
Per i bilanciatori del carico delle applicazioni, Cloud Service Mesh e i bilanciatori del carico di rete proxy, la modalità di bilanciamento, la capacità di destinazione e lo scalatore di capacità sono parametri che fornisci quando aggiungi un backend supportato a un servizio di backend. I bilanciatori del carico utilizzano questi parametri per gestire la distribuzione di nuove richieste o nuove connessioni alle zone che contengono backend supportati:
- La modalità di bilanciamento definisce il modo in cui il bilanciatore del carico misura la capacità.
Google Cloud ha le seguenti modalità di bilanciamento:
CONNECTION: definisce la capacità in base al numero di nuove connessioni TCP.RATE: definisce la capacità in base alla frequenza delle nuove richieste HTTP.IN-FLIGHT(Anteprima): definisce la capacità in base al numero di richieste HTTP in corso anziché alla frequenza delle richieste HTTP. Utilizza questa modalità di bilanciamento invece diRATEse le richieste richiedono più di un secondo per essere completate.UTILIZATION: definisce la capacità in base all'utilizzo approssimativo della CPU delle VM in una zona di un gruppo di istanze.CUSTOM_METRICS: definisce la capacità in base alle metriche personalizzate definite dall'utente.
- La capacità target definisce il numero della capacità target.
- La capacità target non è un interruttore di sicurezza.
- Quando l'utilizzo della capacità raggiunge la capacità target, il bilanciatore del carico indirizza nuove richieste o nuove connessioni a una zona diversa se i backend sono configurati in due o più zone.
- I bilanciatori del carico delle applicazioni esterni globali, i bilanciatori del carico di rete proxy esterni globali, i bilanciatori del carico delle applicazioni interni tra regioni e i bilanciatori del carico di rete proxy interni tra regioni utilizzano anche la capacità per indirizzare le richieste alle zone in regioni diverse, se hai configurato i backend in più di una regione.
- Quando tutte le zone hanno raggiunto la capacità target, le nuove richieste o le nuove connessioni vengono distribuite in modo proporzionale.
- Il gestore della scalabilità della capacità consente di scalare manualmente la capacità target.
I valori per lo scalatore di capacità sono i seguenti:
0: indica che il backend è completamente scarico. Non puoi utilizzare un valore di0se un servizio di backend ha un solo backend.0.1(10%) -1.0(100%): indica la percentuale di capacità di backend in uso.
I bilanciatori del carico di rete passthrough utilizzano simbolicamente la modalità di bilanciamento CONNECTION, ma non supportano una capacità target o uno strumento di scalabilità della capacità. Per saperne di più su come i bilanciatori del carico di rete passthrough distribuiscono le nuove
connessioni, consulta quanto segue:
- Distribuzione del traffico per i bilanciatori del carico di rete passthrough interni
- Distribuzione del traffico per i bilanciatori del carico di rete passthrough esterni
Backend supportati
Per i bilanciatori del carico delle applicazioni, Cloud Service Mesh e i bilanciatori del carico di rete proxy, i seguenti tipi di backend supportano i parametri modalità di bilanciamento, capacità target e scalatore di capacità:
- Backend di gruppi di istanze
- NEG a livello di zona con endpoint
GCE_VM_IP_PORT - NEG connettività ibrida zonale
I NEG di internet, i NEG serverless e i NEG di Private Service Connect non supportano i parametri modalità di bilanciamento, capacità target e scalabilità della capacità.
Modalità di bilanciamento per i bilanciatori del carico delle applicazioni e Cloud Service Mesh
Le modalità di bilanciamento disponibili per i backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh dipendono dal tipo di backend supportato e da un'impostazione della durata del traffico (anteprima).
Impostazione della durata del traffico
Per i backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh, puoi specificare facoltativamente un'impostazione della durata del traffico. Questa impostazione è univoca per il mapping tra un backend supportato e un servizio di backend. L'impostazione della durata del traffico ha due valori validi:
SHORT: consigliato per le richieste HTTP a cui viene risposto con risposte dai backend in meno di un secondo. Se non specifichi esplicitamente una durata del traffico, il bilanciatore del carico funziona come se avessi specificatoSHORT.LONG: consigliato per le richieste HTTP per le quali il backend impiega più di un secondo per generare risposte.
Per impostare esplicitamente la durata del traffico quando aggiungi un backend a un servizio di backend, esegui una delle seguenti operazioni:
- Esegui il comando
gcloud compute backend-services add-backendcon il flag--traffic-duration. - Crea un servizio di backend o aggiornalo con l'attributo
trafficDuration.
Modalità di bilanciamento per una breve durata del traffico
Se l'impostazione della durata del traffico non è specificata o è impostata su
SHORT(anteprima),
le modalità di bilanciamento disponibili per i backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh
dipendono dal tipo di backend supportato.
| Backend supportato | Modalità di bilanciamento | ||||
|---|---|---|---|---|---|
CONNECTION |
RATE |
IN_FLIGHT |
UTILIZATION |
CUSTOM_METRICS |
|
| Gruppi di istanze | |||||
NEG a livello di zona con endpoint GCE_VM_IP_PORT |
|||||
| NEG di connettività ibrida a livello di zona | |||||
Modalità di bilanciamento per traffico di lunga durata
Quando l'impostazione della durata del traffico è LONG, le modalità di bilanciamento disponibili per i backend di bilanciamento del carico delle applicazioni e Cloud Service Mesh dipendono dal tipo di backend supportato.
| Backend supportato | Modalità di bilanciamento | ||||
|---|---|---|---|---|---|
CONNECTION |
RATE |
IN_FLIGHT |
UTILIZATION |
CUSTOM_METRICS |
|
| Gruppi di istanze | |||||
NEG a livello di zona con endpoint GCE_VM_IP_PORT |
|||||
| NEG di connettività ibrida a livello di zona | |||||
Modalità di bilanciamento per i bilanciatori del carico di rete proxy
Le modalità di bilanciamento disponibili per i backend del bilanciatore del carico di rete proxy dipendono dal tipo di backend supportato.
| Backend supportato | Modalità di bilanciamento | ||||
|---|---|---|---|---|---|
CONNECTION |
RATE |
IN_FLIGHT |
UTILIZATION |
CUSTOM_METRICS |
|
| Gruppi di istanze | |||||
NEG a livello di zona con endpoint GCE_VM_IP_PORT |
|||||
| NEG di connettività ibrida a livello di zona | |||||
Specifiche della capacità target
Le specifiche della capacità di destinazione sono pertinenti per i backend del bilanciatore del carico delle applicazioni, di Cloud Service Mesh e del bilanciatore del carico di rete proxy che supportano le impostazioni di modalità di bilanciamento, capacità di destinazione e fattore di scalabilità della capacità.
Le specifiche della capacità target non sono pertinenti per i bilanciatori del carico di rete passthrough.
Modalità di bilanciamento della connessione
I backend del bilanciatore del carico di rete proxy possono utilizzare la modalità di bilanciamento CONNECTION con uno dei seguenti parametri di capacità di destinazione obbligatori:
| Parametro di capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
max-connectionsConnessioni TCP di destinazione per zona di backend |
||||
max-connections-per-instanceConnessioni TCP di destinazione per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare le connessioni TCP di destinazione per zona di backend. |
||||
max-connections-per-endpointConnessioni TCP di destinazione per endpoint NEG. Cloud Load Balancing utilizza questo parametro per calcolare le connessioni TCP di destinazione per zona di backend. |
||||
Utilizzo del parametro max-connections
Quando specifichi il parametro max-connections, il valore che fornisci definisce
la capacità per un'intera zona.
Per un gruppo di istanze di zona con
Nistanze totali ehistanze integre (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-connectionssuX, la capacità target di zona èX. - Il numero medio di connessioni per istanza è
X / h.
- Se imposti
I gruppi di istanze gestite a livello di regione non supportano il parametro
max-connectionsperché sono costituiti da più zone. Utilizza invece il parametromax-connections-per-instance.Per un NEG zonale con
Nendpoint totali ehendpoint integri (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-connectionssuX, la capacità target di zona èX. - La media delle connessioni per endpoint è
X / h.
- Se imposti
Utilizzo del parametro max-connections-per-instance o max-connections-per-endpoint
Quando specifichi il parametro max-connections-per-instance o
max-connections-per-endpoint, il bilanciatore del carico utilizza il valore che
fornisci per calcolare una capacità per zona:
Per un gruppo di istanze di zona con
Nistanze totali ehistanze integre (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-connections-per-instancesuX, la capacità target di zona èN * X. Equivale a impostaremax-connectionssuN * X. - Il numero medio di connessioni per istanza è
(N * X) / h.
- Se imposti
Per un gruppo di istanze gestite a livello di regione, se imposti
max-connections-per-instancesuX, Google Cloud calcola una capacità target per zona per ogni zona del gruppo di istanze. In ogni zona, se ci sonoKistanze totali ehistanze integre (doveh≤K), i calcoli sono i seguenti:- La capacità target della zona è
K * X. - Le connessioni medie per istanza nella zona sono
(K * X) / h.
- La capacità target della zona è
Per un NEG zonale con
Nendpoint totali ehendpoint integri (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-connections-per-endpointsuX, la capacità target di zona èN * X. Equivale a impostaremax-connectionssuN * X. - La media delle connessioni per endpoint è
(N * X) / h.
- Se imposti
Modalità di bilanciamento della velocità
I backend di bilanciamento del carico delle applicazioni e Cloud Service Mesh con un'impostazione di durata del traffico non specificata o breve (anteprima) possono utilizzare la modalità di bilanciamento RATE con uno dei seguenti parametri di capacità di destinazione obbligatori:
| Parametro di capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
max-rateTasso di richieste HTTP di destinazione per zona di backend |
||||
max-rate-per-instancetasso di richieste HTTP di destinazione per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare tasso di richieste HTTP target per zona di backend. |
||||
max-rate-per-endpointTasso di richieste HTTP di destinazione per endpoint NEG. Cloud Load Balancing utilizza questo parametro per calcolare tasso di richieste HTTP target per zona di backend. |
||||
Utilizzo del parametro max-rate
Quando specifichi il parametro max-rate, il valore che fornisci definisce la
capacità per un'intera zona.
Per un gruppo di istanze di zona con
Nistanze totali ehistanze integre (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-ratesuX, la capacità target zonale è diXrichieste al secondo. - La media di richieste al secondo per istanza è
X / h.
- Se imposti
I gruppi di istanze gestite a livello di regione non supportano il parametro
max-rateperché sono costituiti da più zone. Utilizza invece il parametromax-rate-per-instance.Per un NEG zonale con
Nendpoint totali ehendpoint integri (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-ratesuX, la capacità target zonale è diXrichieste al secondo. - La media di richieste al secondo per endpoint è
X / h.
- Se imposti
Utilizzo del parametro max-rate-per-instance o max-rate-per-endpoint
Quando specifichi il parametro max-rate-per-instance o max-rate-per-endpoint, il bilanciatore del carico utilizza il valore che fornisci per calcolare una capacità per zona:
Per un gruppo di istanze di zona con
Nistanze totali ehistanze integre (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-rate-per-instancesuX, la capacità target zonale èN * Xrichieste al secondo. Equivale a impostaremax-ratesuN * X. - La media di richieste al secondo per istanza è
(N * X) / h.
- Se imposti
Per un gruppo di istanze gestite a livello di regione, se imposti
max-rate-per-instancesuX, Google Cloud calcola una capacità target per zona per ogni zona del gruppo di istanze. In ogni zona, se ci sonoKistanze totali ehistanze integre (doveh≤K), i calcoli sono i seguenti:- La capacità target della zona è di
K * Xrichieste al secondo. - La media di richieste al secondo per istanza nella zona è
(K * X) / h.
- La capacità target della zona è di
Per un NEG di zona con
Nendpoint totali ehendpoint integri (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-rate-per-endpointsuX, la capacità target zonale èN * Xrichieste al secondo. Equivale a impostaremax-ratesuN * X. - La media di richieste al secondo per endpoint è
(N * X) / h.
- Se imposti
Modalità di bilanciamento in volo
I backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh con un'impostazione di durata del
traffico lunga possono utilizzare la modalità di bilanciamento IN_FLIGHT con uno dei seguenti parametri di capacità di destinazione obbligatori:
| Parametro di capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
max-in-flight-requestsNumero target di richieste HTTP in corso per zona di backend |
||||
max-in-flight-requests-per-instanceNumero target di richieste HTTP in corso per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare il numero target di richieste HTTP in corso per zona di backend. |
||||
max-in-flight-requests-per-endpointNumero target di richieste HTTP in corso per endpoint NEG. Il bilanciamento del carico utilizza questo parametro per calcolare il numero target di richieste HTTP in corso per zona di backend. |
||||
Utilizzo del parametro max-in-flight-requests
Quando specifichi il parametro max-in-flight-requests, il valore che fornisci
definisce la capacità di un'intera zona.
Per un gruppo di istanze di zona con
Nistanze totali ehistanze integre (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-in-flight-requestssuX, la capacità di destinazione zonale èXrichieste HTTP in corso. - Il numero medio di richieste HTTP in corso per istanza è
X / h.
- Se imposti
I gruppi di istanze gestite a livello di regione non supportano il parametro
max-in-flight-requestsperché sono costituiti da più zone. Utilizza invece il parametromax-in-flight-requests-per-instance.Per un NEG di zona con
Nendpoint totali ehendpoint integri (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-in-flight-requestssuX, la capacità di destinazione zonale èXrichieste HTTP in corso. - Il numero medio di richieste HTTP in corso per endpoint è
X / h.
- Se imposti
Utilizzo dei parametri max-in-flight-requests-per-instance o max-in-flight-requests-per-endpoint
Quando specifichi il parametro max-in-flight-requests-per-instance o
max-in-flight-requests-per-endpoint, il bilanciatore del carico utilizza il
valore che fornisci per calcolare una capacità per zona:
Per un gruppo di istanze di zona con
Nistanze totali ehistanze integre (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-in-flight-requests-per-instancesuX, la capacità di destinazione zonale èN * Xrichieste HTTP in corso. Equivale a impostaremax-in-flight-requestssuN * X. - La media delle richieste HTTP in corso per istanza è
(N * X) / h.
- Se imposti
Per un gruppo di istanze gestite a livello di regione, se imposti
max-in-flight-requests-per-instancesuX, Google Cloud calcola una capacità target per zona per ogni zona del gruppo di istanze. In ogni zona, se ci sonoKistanze totali ehistanze integre (doveh≤K), i calcoli sono i seguenti:- La capacità target della zona è di
K * Xrichieste HTTP in corso. - La media delle richieste HTTP in corso per istanza nella zona è
(K * X) / h.
- La capacità target della zona è di
Per un NEG di zona con
Nendpoint totali ehendpoint integri (doveh≤N), i calcoli sono i seguenti:- Se imposti
max-in-flight-requests-per-endpointsuX, la capacità di destinazione zonale èN * Xrichieste HTTP in corso. Equivale a impostaremax-in-flight-requestssuN * X. - La media delle richieste HTTP in corso per endpoint è
(N * X) / h.
- Se imposti
Modalità di bilanciamento dell'utilizzo
I backend del bilanciatore del carico delle applicazioni, di Cloud Service Mesh e del gruppo di istanze del bilanciatore del carico di rete proxy possono utilizzare la modalità di bilanciamento UTILIZATION. I backend NEG non supportano
questa modalità di bilanciamento.
La modalità di bilanciamento UTILIZATION dipende dall'utilizzo della CPU della VM e da altri
fattori. Quando questi fattori fluttuano, il bilanciatore del carico potrebbe calcolare
l'utilizzo in modo tale che alcune VM ricevano più richieste o
connessioni rispetto ad altre. Pertanto, tieni presente quanto segue:
Utilizza solo la modalità di bilanciamento
UTILIZATIONcon l'affinità sessione impostata suNONE. Se il tuo servizio di backend utilizza un'affinità sessione diversa daNONE, utilizza invece le modalità di bilanciamentoRATE,IN-FLIGHToCONNECTION.Se l'utilizzo medio delle VM in tutti i gruppi di istanze è inferiore al 10%, alcuni bilanciatori del carico preferiscono distribuire nuove richieste o connessioni a zone specifiche. Questa preferenza zonale diventa meno prevalente quando la frequenza delle richieste o il numero di connessioni aumenta.
La modalità di bilanciamento UTILIZATION non prevede un'impostazione obbligatoria della capacità target, ma
puoi definire facoltativamente una capacità target utilizzando uno dei parametri
o le combinazioni di parametri della capacità target descritti nelle
sezioni seguenti.
Parametri di capacità target di utilizzo per i backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh con un'impostazione di durata del traffico non specificata o breve
I backend di Application Load Balancer e Cloud Service Mesh con un'impostazione della durata del traffico non specificata o breve (anteprima) possono utilizzare la modalità di bilanciamento UTILIZATION con uno dei seguenti parametri di capacità di destinazione o combinazioni di parametri:
| Parametro o combinazione di parametri della capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
max-utilizationUtilizzo target per zona di backend |
||||
max-rateTasso di richieste HTTP di destinazione per zona di backend |
||||
max-rate e max-utilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-rate-per-instancetasso di richieste HTTP di destinazione per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare tasso di richieste HTTP target per zona di backend. |
||||
max-rate-per-instance e
max-utilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
Per saperne di più sui parametri di capacità target max-rate e max-rate-per-instance, consulta la sezione Modalità di bilanciamento della velocità di questo documento.
Parametri di capacità target di utilizzo per i backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh con un'impostazione di durata del traffico lunga
I backend del bilanciatore del carico delle applicazioni e di Cloud Service Mesh con un'impostazione di durata del traffico lunga (anteprima) possono utilizzare la modalità di bilanciamento UTILIZATION con uno dei seguenti parametri di capacità target o combinazioni di parametri:
| Parametro o combinazione di parametri della capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
max-utilizationUtilizzo target per zona di backend |
||||
max-in-flight-requestsNumero target di richieste HTTP in corso per zona di backend |
||||
max-in-flight-requests e max-utilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-in-flight-requests-per-instanceNumero target di richieste HTTP in corso per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare il numero target di richieste HTTP in corso per zona di backend. |
||||
max-in-flight-requests-per-instance e
max-utilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
Per ulteriori informazioni sui parametri di capacità target max-in-flight-requests e max-in-flight-requests-per-instance, consulta la sezione Modalità di bilanciamento in volo di questo documento.
Parametri di capacità target di utilizzo per i bilanciatori del carico di rete proxy
I backend dei gruppi di istanze dei bilanciatori del carico di rete proxy possono utilizzare la modalità di bilanciamento UTILIZATION con uno dei seguenti parametri o combinazioni di parametri di capacità target.
| Parametro o combinazione di parametri della capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
max-utilizationUtilizzo target per zona di backend |
||||
max-connectionsConnessioni TCP di destinazione per zona di backend |
||||
max-connections e max-utilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-connections-per-instanceConnessioni TCP di destinazione per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare le connessioni TCP di destinazione per zona di backend. |
||||
max-connections-per-instance e
max-utilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
Per saperne di più sui parametri di capacità target max-connections e max-connections-per-instance, consulta la sezione Modalità di bilanciamento delle connessioni di questo documento.
Modalità di bilanciamento delle metriche personalizzate
I backend del bilanciatore del carico delle applicazioni e del bilanciatore del carico di rete proxy possono
<x0A>utilizzare la modalità di bilanciamento CUSTOM_METRICS. Le metriche personalizzate ti consentono di definire la capacità target in base ai dati dell'applicazione o dell'infrastruttura più importanti per te. Per ulteriori informazioni, consulta Metriche personalizzate per i bilanciatori del carico delle applicazioni.
La modalità di bilanciamento CUSTOM_METRICS non prevede un'impostazione obbligatoria della capacità target,
ma puoi definire facoltativamente una capacità target utilizzando uno dei parametri di capacità target o combinazioni di parametri di capacità target descritti nelle sezioni seguenti.
Parametri di capacità target delle metriche personalizzate per i backend del bilanciatore del carico delle applicazioni con un'impostazione di durata del traffico non specificata o breve
I backend del bilanciatore del carico delle applicazioni con un'impostazione della durata del traffico non specificata o breve (anteprima) possono utilizzare la modalità di bilanciamento CUSTOM_METRICS con uno dei seguenti parametri di capacità di destinazione o combinazioni di parametri:
| Parametro o combinazione di parametri della capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
backends[].customMetrics[].maxUtilizationUtilizzo della metrica personalizzata target per zona di backend |
||||
max-rateTasso di richieste HTTP di destinazione per zona di backend |
||||
max-rate e
backends[].customMetrics[].maxUtilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-rate-per-instancetasso di richieste HTTP di destinazione per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare tasso di richieste HTTP target per zona di backend. |
||||
max-rate-per-instance e
backends[].customMetrics[].maxUtilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-rate-per-endpointTasso di richieste HTTP di destinazione per endpoint NEG. Cloud Load Balancing utilizza questo parametro per calcolare tasso di richieste HTTP target per zona di backend. |
||||
max-rate-per-endpoint e
backends[].customMetrics[].maxUtilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
Per ulteriori informazioni sui parametri di capacità target max-rate, max-rate-per-instance e
max-rate-per-endpoint, consulta la sezione
Modalità di bilanciamento della velocità di questo documento.
Parametri di capacità target delle metriche personalizzate per i backend del bilanciatore del carico delle applicazioni con un'impostazione di durata del traffico lunga
I backend del bilanciatore del carico delle applicazioni con un'impostazione di durata del
traffico lunga possono utilizzare la modalità di bilanciamento CUSTOM_METRICS con uno dei seguenti parametri di capacità target o combinazioni di parametri:
| Parametro o combinazione di parametri della capacità target | Backend supportato | |||
|---|---|---|---|---|
| Gruppi di istanze (gestite o non gestite) a livello di zona | Gruppi di istanze gestite regionali | NEG a livello di zona con endpoint GCE_VM_IP_PORT |
NEG di connettività ibrida a livello di zona | |
backends[].customMetrics[].maxUtilizationUtilizzo della metrica personalizzata target per zona di backend |
||||
max-in-flight-requestsNumero target di richieste HTTP in corso per zona di backend |
||||
max-in-flight-requests e
backends[].customMetrics[].maxUtilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-in-flight-requests-per-instanceNumero target di richieste HTTP in corso per istanza VM. Cloud Load Balancing utilizza questo parametro per calcolare il numero target di richieste HTTP in corso per zona di backend. |
||||
max-in-flight-requests-per-instance e
backends[].customMetrics[].maxUtilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
max-in-flight-requests-per-endpointNumero target di richieste HTTP in corso per endpoint NEG. Il bilanciamento del carico utilizza questo parametro per calcolare il numero target di richieste HTTP in corso per zona di backend. |
||||
max-in-flight-requests-per-endpoint e
backends[].customMetrics[].maxUtilizationIl target è il primo a essere raggiunto nella zona di backend:
|
||||
Per ulteriori informazioni sui parametri di capacità target max-in-flight-requests, max-in-flight-requests-per-instance e max-flight-requests-per-endpoint, consulta la sezione Modalità di bilanciamento in volo.
Policy di bilanciamento del carico del servizio
Una policy di bilanciamento del carico del servizio (serviceLbPolicy) è una risorsa associata
al servizio di backend del bilanciatore del carico. Consente di personalizzare i parametri che influenzano il modo in cui il traffico viene distribuito all'interno dei backend associati a un servizio di backend:
- Personalizza l'algoritmo di bilanciamento del carico utilizzato per determinare come viene distribuito il traffico tra regioni o zone.
- Abilita lo svuotamento automatico della capacità in modo che il bilanciatore del carico possa svuotare rapidamente il traffico dai backend non integri.
Inoltre, puoi designare backend specifici come backend preferiti. Questi backend devono essere utilizzati al massimo della capacità (ovvero la capacità target specificata dalla modalità di bilanciamento del backend) prima che le richieste vengano inviate ai backend rimanenti.
Per saperne di più, consulta Ottimizzazioni del bilanciamento del carico avanzate.
Policy di bilanciamento del carico per le località
Per un servizio di backend, la distribuzione del traffico si basa su una modalità di bilanciamento e su un
criterio di località di bilanciamento del carico. La modalità di bilanciamento determina la frazione di
traffico da inviare a ogni backend (gruppo di istanze o NEG). La policy di località di bilanciamento del carico (LocalityLbPolicy) determina quindi la modalità di distribuzione del traffico tra le istanze o gli endpoint all'interno di ogni zona. Per i gruppi di istanze gestite a livello di regione, il criterio di località si applica a ogni zona costituente.
Il criterio di località di bilanciamento del carico viene configurato per servizio di backend. Sono disponibili le seguenti impostazioni:
ROUND_ROBIN(impostazione predefinita): questa è l'impostazione predefinita del criterio di località del bilanciamento del carico in cui il bilanciatore del carico seleziona un backend integro in ordine round robin.WEIGHTED_ROUND_ROBIN: il bilanciatore del carico utilizza metriche personalizzate definite dall'utente per selezionare l'istanza o l'endpoint ottimale all'interno del backend per gestire la richiesta.LEAST_REQUEST: Un algoritmoO(1)in cui il bilanciatore del carico seleziona due host casuali in stato integro e sceglie quello con meno richieste attive.RING_HASH: questo algoritmo implementa l'hashing coerente per i backend. L'algoritmo ha la proprietà per la quale l'aggiunta o la rimozione di un host da un set di N host influisce solo su 1/N delle richieste.RANDOM: il bilanciatore del carico seleziona un host casuale in stato integro.ORIGINAL_DESTINATION: il bilanciatore del carico seleziona un backend in base ai metadati di connessione del client. Le connessioni vengono aperte all'indirizzo IP di destinazione originale specificato nella richiesta del client in entrata, prima che la richiesta venga reindirizzata al bilanciatore del carico.ORIGINAL_DESTINATIONnon è supportato per i bilanciatori del carico delle applicazioni esterni globali e regionali.MAGLEV: implementa l'hashing coerente per i backend e può essere utilizzato in sostituzione della policyRING_HASH. Maglev non è stabile comeRING_HASH, ma ha tempi di creazione della ricerca nelle tabelle e di selezione dell'host più rapidi. Per ulteriori informazioni su Maglev, consulta il white paper su Maglev.WEIGHTED_MAGLEV: implementa il bilanciamento del carico ponderato per istanza utilizzando i pesi segnalati dai controlli di integrità. Se viene utilizzato questo criterio, il servizio di backend deve configurare un controllo di integrità non legacy basato su HTTP e le risposte del controllo di integrità devono contenere il campo dell'intestazione della risposta HTTP non standard,X-Load-Balancing-Endpoint-Weight, per specificare i pesi per istanza. Le decisioni di bilanciamento del carico vengono prese in base ai pesi per istanza riportati nelle ultime risposte al controllo di integrità elaborate, a condizione che ogni istanza riporti un peso valido oUNAVAILABLE_WEIGHT. In caso contrario, il bilanciamento del carico rimarrà con pesi uguali.WEIGHTED_MAGLEVè supportato solo per i bilanciatori del carico di rete passthrough esterni. Per un esempio, consulta Configurare il bilanciamento del carico ponderato per i bilanciatori del carico di rete passthrough esterni.
La configurazione di una policy di località di bilanciamento del carico è supportata solo sui servizi di backend utilizzati con i seguenti bilanciatori del carico:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni esterno regionale
- Bilanciatore del carico delle applicazioni interno tra regioni
- Bilanciatore del carico delle applicazioni interno regionale
- Bilanciatore del carico di rete proxy esterno globale
- Bilanciatore del carico di rete proxy esterno regionale
- Bilanciatore del carico di rete proxy interno tra regioni
- Bilanciatore del carico di rete proxy interno regionale
- Bilanciatore del carico di rete passthrough esterno
Tieni presente che il valore predefinito effettivo della policy di località di bilanciamento del carico
(localityLbPolicy) cambia in base alle impostazioniaffinità sessionee. Se l'affinità sessione non è configurata, ovvero se l'affinità di sessione rimane al valore predefinito di NONE, il valore predefinito per localityLbPolicy è ROUND_ROBIN. Se
l'affinità sessione è impostata su un valore diverso da NONE, il
valore predefinito per localityLbPolicy è MAGLEV.
Per configurare una policy di località di bilanciamento del carico, puoi utilizzare la
consoleGoogle Cloud , gcloud
(--locality-lb-policy)
o l'API
(localityLbPolicy).
Sottoinsieme del backend
Il sottoinsieme di backend è una funzionalità facoltativa che migliora le prestazioni e la scalabilità assegnando un sottoinsieme di backend a ciascuna delle istanze proxy.
Il sottoinsieme di backend è supportato per quanto segue:
- Bilanciatore del carico delle applicazioni interno regionale
- Bilanciatore del carico di rete passthrough interno
Impostazione secondaria del backend per i bilanciatori del carico delle applicazioni interni regionali
Il bilanciatore del carico delle applicazioni interno tra regioni non supporta il sottoinsieme di backend.Per i bilanciatori del carico delle applicazioni interni regionali, il sottoinsieme di backend assegna automaticamente solo un sottoinsieme dei backend all'interno del servizio di backend regionale a ogni istanza proxy. Per impostazione predefinita, ogni istanza proxy apre connessioni a tutti i backend all'interno di un servizio di backend. Quando il numero di istanze proxy e i backend sono entrambi elevati, l'apertura di connessioni a tutti i backend può causare problemi di prestazioni.
Se attivi il sottoinsieme, ogni proxy apre solo connessioni a un sottoinsieme dei backend, riducendo il numero di connessioni mantenute aperte a ogni backend. La riduzione del numero di connessioni aperte contemporaneamente a ogni backend può migliorare le prestazioni sia dei backend che dei proxy.
Il seguente diagramma mostra un bilanciatore del carico con due proxy. Senza il sottoinsieme del backend, il traffico di entrambi i proxy viene distribuito a tutti i backend nel servizio di backend 1. Se il sottoinsieme di backend è attivato, il traffico di ogni proxy viene distribuito a un sottoinsieme dei backend. Il traffico dal proxy 1 viene distribuito ai backend 1 e 2, mentre il traffico dal proxy 2 viene distribuito ai backend 3 e 4.
Puoi perfezionare ulteriormente il traffico di bilanciamento del carico verso i backend impostando il criterio localityLbPolicy.
Per saperne di più, consulta le norme sul traffico.
Per informazioni sulla configurazione dell'impostazione secondaria del backend per i bilanciatori del carico delle applicazioni interni, consulta Configurare l'impostazione secondaria del backend.
Avvertenze relative all'impostazione secondaria del backend per il bilanciatore del carico delle applicazioni interno
- Sebbene il sottoinsieme di backend sia progettato per garantire che tutte le istanze di backend
rimangano ben utilizzate, può introdurre un certo bias nella quantità di traffico che
ogni backend riceve. L'impostazione di
localityLbPolicysuLEAST_REQUESTè consigliata per i servizi di backend sensibili al bilanciamento del carico di backend. - L'attivazione o la disattivazione del sottoinsieme interrompe le connessioni esistenti.
- Il sottoinsieme del backend richiede che l'affinità sessione sia
NONE(un hash a 5 tuple). Le altre opzioni di affinità sessione possono essere utilizzate solo se il sottoinsieme di backend è disabilitato. I valori predefiniti dei flag--subsetting-policye--session-affinitysono entrambiNONEe solo uno di questi alla volta può essere impostato su un valore diverso.
Impostazione secondaria del backend per il bilanciatore del carico di rete passthrough interno
Il sottoinsieme di backend per i bilanciatori del carico di rete passthrough interni consente di scalare il bilanciatore del carico di rete passthrough interno per supportare un numero maggiore di istanze VM di backend per servizio di backend interno.
Per informazioni su come il sottoinsieme influisce su questo limite, consulta Servizi di backend in "Quote e limiti".
Per impostazione predefinita, il sottoinsieme è disattivato, il che limita il servizio di backend alla distribuzione a un massimo di 250 istanze o endpoint di backend. Se il tuo servizio di backend deve supportare più di 250 backend, puoi abilitare la creazione di sottoinsiemi. Quando il sottoinsieme è abilitato, per ogni connessione client viene selezionato un sottoinsieme di istanze di backend.
Il seguente diagramma mostra un modello ridotto della differenza tra queste due modalità di funzionamento.
Senza il sottoinsieme, l'insieme completo di backend integri viene utilizzato meglio e le nuove connessioni client vengono distribuite tra tutti i backend integri in base alla distribuzione del traffico. Il sottoinsieme impone limitazioni al bilanciamento del carico, ma consente al bilanciatore del carico di supportare più di 250 backend.
Per le istruzioni di configurazione, vedi Sottoinsieme.
Avvertenze relative al sottoinsieme di backend per il bilanciatore del carico di rete passthrough interno
- Quando il subset è abilitato, non tutti i backend riceveranno traffico da un determinato mittente anche quando il numero di backend è ridotto.
- Per il numero massimo di istanze di backend quando è abilitata la creazione di sottoinsiemi, consulta la pagina delle quote .
- È supportata solo l'affinità sessione a 5 tuple con il sottoinsieme.
- Mirroring pacchetto non è supportato con il sottoinsieme.
- L'attivazione o la disattivazione del sottoinsieme interrompe le connessioni esistenti.
- Se i client on-premise devono accedere a un bilanciatore del carico di rete passthrough interno, il sottoinsieme può ridurre notevolmente il numero di backend che ricevono connessioni dai client on-premise. Questo perché la regione del tunnel Cloud VPN o del collegamento VLAN di Cloud Interconnect determina il sottoinsieme dei backend del bilanciatore del carico. Tutti gli endpoint Cloud VPN e Cloud Interconnect in una regione specifica utilizzano lo stesso sottoinsieme. In regioni diverse vengono utilizzati sottoinsiemi diversi.
Prezzi del sottoinsieme di backend
Non è previsto alcun costo per l'utilizzo del sottoinsieme del backend. Per ulteriori informazioni, consulta la pagina Tutti i prezzi di networking.
Affinità sessione
L'affinità di sessione ti consente di controllare in modo prevedibile la modalità di selezione dei backend da parte del bilanciatore del carico per le nuove connessioni, a condizione che il numero di backend integri rimanga costante. Questa funzionalità è utile per le applicazioni che richiedono che più richieste di un determinato utente vengano indirizzate allo stesso backend o endpoint. Queste applicazioni in genere includono server stateful utilizzati per la pubblicazione di annunci, giochi o servizi con memorizzazione nella cache interna pesante.
I bilanciatori del caricoGoogle Cloud forniscono l'affinità sessione al meglio delle possibilità. Fattori come la modifica degli stati del controllo di integrità del backend, l'aggiunta o la rimozione di backend, le modifiche ai pesi del backend (inclusa l'attivazione o la disattivazione del bilanciamento ponderato) o le modifiche alla pienezza del backend, misurate dalla modalità di bilanciamento, possono interrompere l'affinità sessione.
Il bilanciamento del carico con affinità sessione funziona bene quando la distribuzione delle connessioni uniche è ragionevolmente ampia. Un numero ragionevolmente elevato significa almeno diverse volte il numero di backend. Il test di un bilanciatore del carico con un numero ridotto di connessioni non fornirà una rappresentazione accurata della distribuzione delle connessioni client tra i backend.
Per impostazione predefinita, tutti i bilanciatori del carico Google Cloud selezionano i backend utilizzando un hash a cinque tuple (--session-affinity=NONE), come segue:
- Indirizzo IP di origine del pacchetto
- Porta di origine del pacchetto (se presente nell'intestazione del pacchetto)
- Indirizzo IP di destinazione del pacchetto
- Porta di destinazione del pacchetto (se presente nell'intestazione del pacchetto)
- Protocollo del pacchetto
Per saperne di più sull'affinità sessione per i bilanciatori del carico di rete passthrough, consulta i seguenti documenti:
- Distribuzione del traffico per i bilanciatori del carico di rete passthrough esterni
- Distribuzione del traffico per i bilanciatori del carico di rete passthrough interni
Per saperne di più sull'affinità sessione per i bilanciatori del carico delle applicazioni, consulta i seguenti documenti:
- Affinità sessione per i bilanciatori del carico delle applicazioni esterni
- Affinità sessione per i bilanciatori del carico delle applicazioni interni
Per saperne di più sull'affinità sessione per i bilanciatori del carico di rete proxy, consulta i seguenti documenti:
- Affinità sessione per i bilanciatori del carico di rete proxy esterni
- Affinità sessione per i bilanciatori del carico di rete proxy interni
Timeout del servizio di backend
La maggior parte dei bilanciatori del carico ha un timeout del servizio di backend. Google Cloud Il valore predefinito è 30 secondi. L'intervallo completo di valori di timeout consentiti è 1 - 2.147.483.647 secondi.
Per i bilanciatori del carico delle applicazioni esterni e interni che utilizzano il protocollo HTTP, HTTPS o HTTP/2, il timeout del servizio di backend è un timeout di richiesta e risposta per il traffico HTTP(S).
Per ulteriori dettagli sul timeout del servizio di backend per ogni bilanciatore del carico, consulta quanto segue:
- Per i bilanciatori del carico delle applicazioni esterni globali e i bilanciatori del carico delle applicazioni esterni regionali , consulta Timeout e tentativi.
- Per i bilanciatori del carico delle applicazioni interni, consulta Timeout e tentativi.
Per i bilanciatori del carico di rete proxy esterni e i bilanciatori del carico di rete proxy interni, il timeout del servizio di backend configurato è il periodo di tempo durante il quale il bilanciatore del carico mantiene aperta la connessione TCP in assenza di dati trasmessi dal client o dal backend. Trascorso questo periodo di tempo senza che vengano trasmessi dati, il proxy chiude la connessione.
- Valore predefinito: 30 secondi
- Intervallo configurabile: da 1 a 2.147.483.647 secondi
Per i bilanciatori del carico di rete passthrough interni ed esterni, puoi impostare il valore del timeout del servizio di backend utilizzando
gcloudo l'API, ma il valore viene ignorato. Il timeout del servizio di backend non ha significato per questi bilanciatori del carico pass-through.
- Per Cloud Service Mesh, il campo timeout del servizio di backend (specificato utilizzando
timeoutSec) non è supportato con i servizi gRPC senza proxy. Per questi servizi, configura il timeout del servizio di backend utilizzando il campomaxStreamDuration. Questo perché gRPC non supporta la semantica ditimeoutSecche specifica il tempo di attesa prima che un backend restituisca una risposta completa dopo l'invio della richiesta. Il timeout di gRPC specifica il tempo di attesa dall'inizio dello stream fino al completamento dell'elaborazione della risposta, inclusi tutti i tentativi.
Controlli di integrità
Ogni servizio di backend i cui backend sono gruppi di istanze o NEG a livello di zona deve avere un controllo di integrità associato. I servizi di backend che utilizzano un NEG serverless o un NEG internet globale come backend non devono fare riferimento a un controllo di integrità.
Quando crei un bilanciatore del carico utilizzando la console Google Cloud , puoi creare il controllo di integrità, se necessario, quando crei il bilanciatore del carico oppure puoi fare riferimento a un controllo di integrità esistente.
Quando crei un servizio di backend utilizzando backend di gruppi di istanze o NEG zonali utilizzando Google Cloud CLI o l'API, devi fare riferimento a un controllo di integrità esistente. Per informazioni dettagliate sul tipo e sull'ambito del controllo di integrità richiesto, consulta la guida al bilanciatore del carico nella panoramica dei controlli di integrità.
Per saperne di più, leggi i seguenti documenti:
- Panoramica dei controlli di integrità
- Creazione di controlli di integrità
- Pagina
gcloudControllo di integrità - Pagina di controllo di integrità dell'API REST
Funzionalità aggiuntive abilitate sulla risorsa del servizio di backend
Le seguenti funzionalità facoltative sono supportate da alcuni servizi di backend.
Cloud CDN
Cloud CDN utilizza la rete perimetrale globale di Google per distribuire i contenuti nelle aree più vicine agli utenti al fine di velocizzare i siti web e le applicazioni. Cloud CDN è abilitato sui servizi di backend utilizzati dai bilanciatori del carico delle applicazioni esterni globali. Il bilanciatore del carico fornisce le porte e gli indirizzi IP frontend che ricevono le richieste e i backend che rispondono alle richieste.
Per maggiori dettagli, consulta la documentazione di Cloud CDN.
Cloud CDN non è compatibile con IAP. Non possono essere abilitati sullo stesso servizio di backend.
Cloud Armor
Se utilizzi uno dei seguenti bilanciatori del carico, puoi aggiungere ulteriore protezione alle tue applicazioni attivando Cloud Armor sul servizio di backend durante la creazione del bilanciatore del carico:
- Bilanciatore del carico delle applicazioni esterno globale
- Bilanciatore del carico delle applicazioni classico
- Bilanciatore del carico di rete proxy esterno globale
- Bilanciatore del carico di rete proxy classico
Se utilizzi la console Google Cloud , puoi eseguire una delle seguenti operazioni:
- Seleziona una policy di sicurezza di Cloud Armor esistente.
- Accetta la configurazione di una policy di sicurezza di limitazione della frequenza Cloud Armor predefinita con nome, conteggio delle richieste, intervallo, chiave e parametri di limitazione di frequenza personalizzabili. Se utilizzi Cloud Armor con un servizio proxy upstream, ad esempio un provider CDN,
Enforce_on_keydeve essere impostato come indirizzo IP XFF. - Scegli di disattivare la protezione Cloud Armor selezionando Nessuna.
IAP
IAP ti consente di definire un livello di autorizzazione centrale per le applicazioni accessibili tramite HTTPS, in modo da poter utilizzare un modello di controllo dell'accesso dell'accesso a livello di applicazione invece di dover fare affidamento su firewall a livello di rete. IAP è supportato da alcuni bilanciatori del carico delle applicazioni.
IAP non è compatibile con Cloud CDN. Non possono essere abilitati sullo stesso servizio di backend.
Funzionalità di gestione avanzata del traffico
Per informazioni sulle funzionalità avanzate di gestione del traffico configurate nei servizi di backend e nelle mappe URL associate ai bilanciatori del carico, consulta quanto segue:
- Panoramica della gestione del traffico per i bilanciatori del carico delle applicazioni interni
- Panoramica della gestione del traffico per i bilanciatori del carico delle applicazioni esterni globali
- Panoramica della gestione del traffico per i bilanciatori del carico delle applicazioni esterni regionali
API e riferimenti gcloud
Per ulteriori informazioni sulle proprietà della risorsa del servizio di backend, consulta i seguenti riferimenti:
Passaggi successivi
Per la documentazione e le informazioni correlate su come vengono utilizzati i servizi di backend nel bilanciamento del carico, consulta quanto segue:
- Creare intestazioni personalizzate
- Crea un bilanciatore del carico delle applicazioni esterno
- Panoramica del bilanciatore del carico delle applicazioni esterno
- Abilita svuotamento delle connessioni
- Crittografia dei dati in transito in Google Cloud
Per i video correlati: