Panoramica del bilanciatore del carico di rete proxy interno

Il bilanciatore del carico di rete proxy interno di Google Cloud è un bilanciatore del carico basato su proxy che utilizza un software proxy Envoy open source e lo stack di virtualizzazione di rete Andromeda.

Il bilanciatore del carico di rete proxy interno è un bilanciatore del carico di livello 4 che ti consente di eseguire e scalare il traffico di servizio TCP dietro un indirizzo IP interno a livello di regione accessibile solo ai client nella stessa rete VPC o negli stessi client connessi alla tua rete VPC. Il bilanciatore del carico termina prima la connessione TCP tra il client e il bilanciatore del carico su un proxy Envoy. Il proxy apre una seconda connessione TCP a backend ospitati in Google Cloud, on-premise o in altri ambienti cloud. Per altri casi d'uso, consulta la panoramica del bilanciatore del carico di rete proxy.

Modalità di funzionamento

Puoi configurare un bilanciatore del carico di rete proxy interno nelle seguenti modalità:

  • Bilanciatore del carico di rete proxy interno regionale. Questo è un bilanciatore del carico a livello di regione implementato come servizio gestito basato sul proxy Envoy open source. La modalità a livello di regione assicura che tutti i client e i backend provengano da una regione specificata, il che è utile quando è necessaria la conformità a livello di regione.
  • Bilanciatore del carico di rete proxy interno tra regioni. Questo è un bilanciatore del carico per più regioni implementato come servizio gestito in base al proxy Envoy open source. La modalità tra regioni consente di bilanciare il carico del traffico verso i servizi di backend distribuiti a livello globale, inclusa la gestione del traffico che garantisce che il traffico sia indirizzato al backend più vicino. Questo bilanciatore del carico consente inoltre una disponibilità elevata. Il posizionamento dei backend in più regioni consente di evitare errori in una singola regione. Se i backend di una regione sono inattivi, il traffico può eseguire il failover su un'altra regione.

    La seguente tabella descrive le importanti differenze tra le modalità a livello di regione e tra regioni:

    Selezione delle Bilanciatore del carico di rete proxy interno regionale Bilanciatore del carico di rete proxy interno tra regioni
    Indirizzo IP virtuale (VIP) del bilanciatore del carico. Assegnato da una subnet in una regione Google Cloud specifica. Assegnato da una subnet in una regione Google Cloud specifica.

    Gli indirizzi VIP di più regioni possono condividere lo stesso servizio di backend globale.

    Accesso client Non accessibile a livello globale per impostazione predefinita.
    Facoltativamente, puoi abilitare l'accesso globale.
    Sempre accessibile a livello globale. I client di qualsiasi regione Google Cloud possono inviare traffico al bilanciatore del carico.
    Backend con bilanciamento del carico Backend a livello di regione.
    Il bilanciatore del carico può inviare traffico solo a backend che si trovano nella stessa regione del proxy del bilanciatore del carico.
    Backend globali.
    Il bilanciatore del carico può inviare traffico ai backend in qualsiasi regione.
    Alta disponibilità e failover Failover automatico ai backend integri nella stessa regione. Failover automatico a backend integri nelle stesse regioni o in regioni diverse.

Identifica la modalità

console Cloud

  1. Nella console Google Cloud, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Nella scheda Bilanciatori del carico puoi vedere il tipo, il protocollo e la regione del bilanciatore del carico. Se la regione è vuota, il bilanciatore del carico è in modalità tra regioni. La tabella seguente riassume come identificare la modalità del bilanciatore del carico.

    Modalità bilanciatore del carico Tipo di bilanciatore del carico Tipo di accesso Regione
    Bilanciatore del carico di rete proxy interno regionale Rete (proxy) Interno Specifica una regione
    Bilanciatore del carico di rete proxy interno tra regioni Rete (proxy) Interno

gcloud

  1. Per determinare la modalità di un bilanciatore del carico, esegui questo comando:

    gcloud compute forwarding-rules describe FORWARDING_RULE_NAME
    

    Nell'output comando, verifica lo schema di bilanciamento del carico, la regione e il livello di rete. La seguente tabella riassume come identificare la modalità del bilanciatore del carico.

    Modalità bilanciatore del carico Schema di bilanciamento del carico Regola di forwarding
    Bilanciatore del carico di rete proxy interno regionale INTERNAL_MANAGED Regionale
    Bilanciatore del carico di rete proxy interno tra regioni INTERNAL_MANAGED Globale

Architettura

Il seguente diagramma mostra le risorse Google Cloud necessarie per i bilanciatori del carico di rete proxy interni.

Regionale

Questo diagramma mostra i componenti del deployment di un bilanciatore del carico di rete proxy interno regionale nel livello Premium.

Componenti del bilanciatore del carico di rete proxy interno regionale.
Componenti del bilanciatore del carico di rete proxy interno regionale (fai clic per ingrandire).

Tra regioni

Questo diagramma mostra i componenti del deployment di un bilanciatore del carico di rete proxy interno tra regioni nel livello Premium all'interno della stessa rete VPC. Ogni regola di forwarding globale utilizza un indirizzo IP a livello di regione utilizzato dai client per la connessione.

Componenti del bilanciatore del carico di rete proxy interno tra regioni.
Componenti del bilanciatore del carico di rete proxy interno tra regioni (fai clic per ingrandire).

Subnet solo proxy

Nel diagramma riportato sopra, la subnet solo proxy fornisce un insieme di indirizzi IP che Google utilizza per eseguire i proxy Envoy per tuo conto. Devi creare una subnet solo proxy in ogni regione di una rete VPC in cui utilizzi un bilanciatore del carico di rete proxy interno basato su Envoy. La seguente tabella descrive le differenze tra le subnet solo proxy in modalità a livello di regione e tra regioni:

Modalità bilanciatore del carico Valore del flag della subnet solo proxy --purpose
Bilanciatore del carico di rete proxy interno regionale

REGIONAL_MANAGED_PROXY

I bilanciatori del carico a livello di una o più regioni non possono condividere le stesse subnet

Tutti i bilanciatori del carico basati su Envoy a livello di regione in una regione e in una rete VPC condividono la stessa subnet solo proxy.

Bilanciatore del carico di rete proxy interno tra regioni

GLOBAL_MANAGED_PROXY

I bilanciatori del carico a livello di una o più regioni non possono condividere le stesse subnet

Il bilanciatore del carico basato su Envoy tra regioni deve avere una subnet solo proxy in ogni regione in cui è configurato il bilanciatore del carico. I proxy del bilanciatore del carico tra regioni nella stessa regione e nella stessa rete condividono la stessa subnet solo proxy.

Inoltre:

  • Le subnet solo proxy vengono utilizzate solo per i proxy Envoy, non per i tuoi backend.
  • Le istanze di macchine virtuali (VM) di backend o gli endpoint di tutti i bilanciatori del carico di rete proxy interni in una regione e sulla rete VPC ricevono connessioni dalla subnet solo proxy.
  • L'indirizzo IP di un bilanciatore del carico di rete proxy interno non si trova nella subnet solo proxy. L'indirizzo IP del bilanciatore del carico è definito dalla rispettiva regola di forwarding gestito interno.

Regole di forwarding e indirizzi IP

Le regole di forwarding instradano il traffico in base a indirizzo IP, porta e protocollo a una configurazione di bilanciamento del carico composta da un proxy di destinazione e un servizio di backend.

I client utilizzano l'indirizzo IP e la porta per connettersi ai proxy Envoy del bilanciatore del carico; l'indirizzo IP della regola di forwarding è l'indirizzo IP del bilanciatore del carico (a volte chiamato indirizzo IP virtuale o VIP). I client che si connettono a un bilanciatore del carico devono usare TCP. Per l'elenco completo dei protocolli supportati, consulta il confronto delle funzionalità del bilanciatore del carico.

L'indirizzo IP interno associato alla regola di forwarding può provenire da una subnet nella stessa rete e nella stessa regione dei backend. Ogni regola di forwarding che utilizzi in un bilanciatore del carico di rete proxy interno può fare riferimento a esattamente a una porta TCP. L'indirizzo IP interno associato alla regola di forwarding può provenire da qualsiasi subnet nella stessa rete e nella stessa regione.

La seguente tabella mostra le differenze tra le regole di forwarding nelle modalità a livello di regione e tra regioni:

Modalità bilanciatore del carico Regola di forwarding, indirizzo IP e subnet solo proxy --purpose Routing dal client al frontend del bilanciatore del carico
Bilanciatore del carico di rete proxy interno regionale

Regione forwardingRules

Indirizzo IP a livello di regione

Schema di bilanciamento del carico:

INTERNAL_MANAGED

Subnet solo proxy --purpose:

REGIONAL_MANAGED_PROXY

Indirizzo IP --purpose:

SHARED_LOADBALANCER_VIP

Puoi abilitare l'accesso globale per consentire ai client di qualsiasi regione di accedere al tuo bilanciatore del carico. Anche i backend devono trovarsi nella stessa regione del bilanciatore del carico.

Bilanciatore del carico di rete proxy interno tra regioni

Livello globale globalForwardingRules

Indirizzi IP a livello di regione

Schema di bilanciamento del carico:

INTERNAL_MANAGED

Subnet solo proxy --purpose:

GLOBAL_MANAGED_PROXY

Indirizzo IP --purpose:

SHARED_LOADBALANCER_VIP

L'accesso globale è abilitato per impostazione predefinita per consentire ai client di qualsiasi regione di accedere al bilanciatore del carico. I backend possono trovarsi in più regioni.


Proxy di destinazione

Il bilanciatore del carico di rete proxy interno termina le connessioni TCP dal client e crea nuove connessioni ai backend. Per impostazione predefinita, le informazioni sulla porta e l'indirizzo IP del client originale non vengono conservati. Puoi conservare queste informazioni utilizzando il protocollo PROXY. Il proxy di destinazione instrada le richieste in entrata direttamente al servizio di backend del bilanciatore del carico.

La seguente tabella mostra le API proxy di destinazione richieste dai bilanciatori del carico di rete proxy interni in ciascuna modalità:

Proxy di destinazione Bilanciatore del carico di rete proxy interno regionale Bilanciatore del carico di rete proxy interno tra regioni
TCP Regione regionTargetTcpProxies Globale targetTcpProxies

Servizio di backend

Un servizio di backend indirizza il traffico in entrata a uno o più backend collegati. Un backend è un gruppo di istanze o un gruppo di endpoint di rete. Il backend contiene informazioni sulla modalità di bilanciamento per definire la completezza in base alle connessioni (o, solo per i backend di gruppi di istanze, all'utilizzo).

Ogni bilanciatore del carico di rete proxy interno ha una singola risorsa del servizio di backend. La seguente tabella specifica il tipo di servizio di backend richiesto dai bilanciatori del carico di rete proxy interni in ogni modalità:

Bilanciatore del carico di rete proxy interno regionale Bilanciatore del carico di rete proxy interno tra regioni
Tipo di servizio di backend Regione regionBackendServices Globale backendServices

Backend supportati

Il servizio di backend supporta i seguenti tipi di backend:

Modalità bilanciatore del carico Backend supportati su un servizio di backend
Gruppi di istanze NEG a livello di zona NEG internet NEG serverless NEG ibridi NEG Private Service Connect GKE
Bilanciatore del carico di rete proxy interno regionale
Endpoint di tipo GCE_VM_IP_PORT
Solo NEG regionali Aggiungi un NEG Private Service Connect
Bilanciatore del carico di rete proxy interno tra regioni
Endpoint di tipo GCE_VM_IP_PORT
Aggiungi un NEG Private Service Connect

Tutti i backend devono essere dello stesso tipo (gruppi di istanze o NEG). Puoi utilizzare contemporaneamente diversi tipi di backend di gruppi di istanze oppure utilizzare contemporaneamente diversi tipi di backend NEG, ma non puoi utilizzare backend di gruppi di istanze e NEG insieme nello stesso servizio di backend.

Puoi combinare NEG a livello di zona e NEG ibridi all'interno dello stesso servizio di backend.

Per garantire interruzioni minime ai tuoi utenti, puoi abilitare il download della connessione sui servizi di backend. Queste interruzioni possono verificarsi quando un backend viene chiuso, rimosso manualmente o rimosso da un gestore della scalabilità automatica. Per scoprire di più sull'utilizzo dello svuotamento della connessione per ridurre al minimo le interruzioni del servizio, consulta Abilitare lo svuotamento delle connessioni.

Protocollo per la comunicazione con i backend

Quando configuri un servizio di backend per un bilanciatore del carico di rete proxy interno, imposti il protocollo che il servizio di backend utilizza per comunicare con i backend. Il bilanciatore del carico utilizza solo il protocollo specificato e non tenta di negoziare una connessione con l'altro protocollo. Il bilanciatore del carico di rete proxy interno regionale o il bilanciatore del carico di rete proxy interno tra regioni supportano solo TCP per la comunicazione con i backend.

Controllo di integrità

Ogni servizio di backend specifica un controllo di integrità che monitora periodicamente l'idoneità dei backend a ricevere una connessione dal bilanciatore del carico. In questo modo ridurrai il rischio che le richieste vengano inviate a backend che non possono rispondere alla richiesta. I controlli di integrità non controllano se l'applicazione stessa funziona.

Protocollo del controllo di integrità

Sebbene non sia obbligatorio e non sempre possibile, una best practice consiste nell'utilizzare un controllo di integrità il cui protocollo corrisponde al protocollo del servizio di backend. Ad esempio, un controllo di integrità TCP verifica in modo più accurato la connettività TCP verso i backend. Per l'elenco dei protocolli di controllo di integrità supportati, consulta Funzionalità di bilanciamento del carico.

La seguente tabella specifica l'ambito dei controlli di integrità supportati dai bilanciatori del carico di rete proxy interni in ciascuna modalità:

Modalità bilanciatore del carico Tipo di controllo di integrità
Bilanciatore del carico di rete proxy interno regionale Regione regionHealthChecks
Bilanciatore del carico di rete proxy interno tra regioni Globale healthChecks

Per maggiori informazioni sui controlli di integrità, consulta quanto segue:

Regole del firewall

I bilanciatori del carico di rete proxy interni richiedono le seguenti regole firewall:

Le porte per queste regole firewall devono essere configurate come segue:

  • Consenti il traffico alla porta di destinazione per il controllo di integrità di ogni servizio di backend.

  • Per i backend di gruppi di istanze: determina le porte che devono essere configurate dalla mappatura tra la porta denominata del servizio di backend e i numeri di porte associati a quella porta denominata su ogni gruppo di istanze. I numeri di porta possono variare tra i gruppi di istanze assegnati allo stesso servizio di backend.

  • Per i backend NEG GCE_VM_IP_PORT: consenti il traffico verso i numeri di porta degli endpoint.

Esistono alcune eccezioni ai requisiti delle regole firewall per questi bilanciatori del carico:

  • La lista consentita degli intervalli di probe del controllo di integrità di Google non è necessaria per i NEG ibridi. Tuttavia, se utilizzi una combinazione di NEG ibridi e di zona in un unico servizio di backend, devi inserire nella lista consentita gli intervalli del probe del controllo di integrità di Google per i NEG di zona.
  • Per i NEG internet a livello di regione, i controlli di integrità sono facoltativi. Il traffico proveniente da bilanciatori del carico che utilizzano NEG internet a livello di regione ha origine dalla subnet solo proxy e viene quindi tradotto (utilizzando Cloud NAT) in indirizzi IP NAT manuali o allocati automaticamente. Questo traffico include sia i probe di controllo di integrità sia le richieste degli utenti dal bilanciatore del carico ai backend. Per maggiori dettagli, consulta NEG regionali: utilizzare Cloud NAT per il traffico in uscita.

Accesso client

I client possono trovarsi nella stessa rete o in una rete VPC connessa tramite peering di rete VPC.

Per i bilanciatori del carico di rete proxy interni regionali, per impostazione predefinita i client devono trovarsi nella stessa regione del bilanciatore del carico. Puoi abilitare l'accesso globale per consentire ai client di qualsiasi regione di accedere al bilanciatore del carico.

Per i bilanciatori del carico di rete proxy interni tra regioni, l'accesso globale è abilitato per impostazione predefinita. I client di qualsiasi regione possono accedere al bilanciatore del carico.

La seguente tabella riassume l'accesso client per i bilanciatori del carico di rete proxy interni regionali:

Accesso globale disabilitato Accesso globale attivato
I client devono trovarsi nella stessa regione del bilanciatore del carico. Devono inoltre trovarsi nella stessa rete VPC del bilanciatore del carico o in una rete VPC connessa alla rete VPC del bilanciatore del carico tramite peering di rete VPC. I client possono trovarsi in qualsiasi regione. Devono comunque trovarsi nella stessa rete VPC del bilanciatore del carico o in una rete VPC connessa alla rete VPC del bilanciatore del carico tramite peering di rete VPC.
I client on-premise possono accedere al bilanciatore del carico tramite tunnel Cloud VPN o collegamenti VLAN. Questi tunnel o collegamenti devono trovarsi nella stessa regione del bilanciatore del carico. I client on-premise possono accedere al bilanciatore del carico tramite tunnel Cloud VPN o collegamenti VLAN. Questi tunnel o collegamenti possono trovarsi in qualsiasi regione.

Architettura di un VPC condiviso

Il bilanciatore del carico di rete proxy interno supporta reti che utilizzano il VPC condiviso. Un VPC condiviso ti consente di mantenere una chiara separazione delle responsabilità tra amministratori di rete e sviluppatori di servizi. I team di sviluppo possono concentrarsi sulla creazione di servizi nei progetti di servizio, mentre i team di infrastruttura di rete possono eseguire il provisioning e amministrare il bilanciamento del carico. Se non hai già familiarità con il VPC condiviso, leggi la documentazione di panoramica sul VPC condiviso.

Indirizzo IP Regola di forwarding Proxy di destinazione Componenti di backend

È necessario definire un indirizzo IP interno nello stesso progetto dei backend.

Affinché il bilanciatore del carico sia disponibile in una rete VPC condiviso, l'indirizzo IP interno deve essere definito nello stesso progetto di servizio in cui si trovano le VM di backend e deve fare riferimento a una subnet nella rete VPC condiviso desiderata nel progetto host. L'indirizzo stesso proviene dall'intervallo IP principale della subnet di riferimento.

Una regola di forwarding interno deve essere definita nello stesso progetto dei backend.

Affinché il bilanciatore del carico sia disponibile in una rete VPC condiviso, la regola di forwarding interno deve essere definita nello stesso progetto di servizio in cui si trovano le VM di backend e deve fare riferimento alla stessa subnet (nella rete VPC condiviso) a cui fa riferimento l'indirizzo IP interno associato.

Il proxy di destinazione deve essere definito nello stesso progetto dei backend. In uno scenario di VPC condiviso, le VM di backend si trovano in genere in un progetto di servizio. Nel progetto di servizio devono essere definiti un servizio di backend interno a livello di regione e un controllo di integrità.

Distribuzione del traffico

Un bilanciatore del carico di rete proxy interno distribuisce il traffico ai propri backend nel seguente modo:

  1. Le connessioni che hanno origine da un singolo client vengono inviate alla stessa zona, purché siano disponibili backend integri (gruppi di istanze o NEG) all'interno della zona e abbiano capacità, come stabilito dalla modalità di bilanciamento. Per i bilanciatori del carico di rete proxy interni regionali, la modalità di bilanciamento può essere CONNECTION (backend di gruppi di istanze o NEG) o UTILIZATION (solo backend di gruppi di istanze).
  2. Le connessioni da un client vengono inviate allo stesso backend se è stata configurata l'affinità sessione.
  3. Dopo aver selezionato un backend, il traffico viene distribuito tra istanze (in un gruppo di istanze) o endpoint (in un NEG) in base a un criterio di bilanciamento del carico. Per gli algoritmi dei criteri di bilanciamento del carico supportati, consulta l'impostazione localityLbPolicy nella documentazione relativa all'API del servizio di backend a livello di regione.

Affinità sessione

L'affinità sessione ti consente di configurare il servizio di backend del bilanciatore del carico in modo che invii tutte le richieste dallo stesso client allo stesso backend, purché il backend sia integro e abbia capacità.

Il bilanciatore del carico di rete proxy interno offre l'affinità IP client, che inoltra tutte le richieste dallo stesso indirizzo IP client allo stesso backend, purché quest'ultimo abbia capacità e rimanga integro.

Failover

Se un backend non è integro, il traffico viene reindirizzato automaticamente a backend integri. La tabella seguente descrive il comportamento di failover in ciascuna modalità:

Modalità bilanciatore del carico Comportamento del failover Comportamento quando tutti i backend sono in stato non integro
Bilanciatore del carico di rete proxy interno regionale

Il bilanciatore del carico implementa un algoritmo di failover delicato per zona. Anziché attendere che tutti i backend di una zona diventino in stato non integro, il bilanciatore del carico inizia a reindirizzare il traffico a una zona diversa quando il rapporto tra backend in stato integro e non integro in qualsiasi zona è inferiore a una determinata soglia percentuale (70%; questa soglia non è configurabile). Se tutti i backend in tutte le zone sono in stato non integro, il bilanciatore del carico termina immediatamente la connessione client.

Il proxy Envoy invia il traffico a backend integri in una regione in base alla distribuzione del traffico configurata.

Termina la connessione
Bilanciatore del carico di rete proxy interno tra regioni

Failover automatico ai backend integri nella stessa regione o in altre regioni.

Il traffico viene distribuito tra backend integri che coprono più regioni in base alla distribuzione del traffico configurata.

Termina la connessione

Bilanciamento del carico per le applicazioni GKE

Se crei applicazioni in Google Kubernetes Engine, puoi utilizzare NEG autonomi di zona per bilanciare il carico del traffico direttamente verso i container. Con i NEG autonomi sei responsabile della creazione dell'oggetto Service che crea il NEG a livello di zona, quindi dell'associazione del NEG al servizio di backend in modo che il bilanciatore del carico possa connettersi ai pod.

Documentazione relativa a GKE correlata:

Quote e limiti

Per informazioni su quote e limiti, consulta Quote delle risorse di bilanciamento del carico.

Limitazioni

  • Il bilanciatore del carico di rete proxy interno non supporta il traffico IPv6.
  • Il bilanciatore del carico di rete proxy interno non supporta i deployment dei VPC condiviso in cui il frontend del bilanciatore del carico si trova in un host o progetto di servizio e il servizio di backend e i backend si trovano in un altro progetto di servizio (noto anche come riferimento al servizio tra progetti).

Passaggi successivi