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 basato sul software proxy Envoy open source e sullo 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 agli client connessi alla tua rete VPC. Il bilanciatore del carico termina innanzitutto la connessione TCP tra il client e il bilanciatore del carico su un proxy Envoy. Il proxy apre una seconda connessione TCP ai 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. Si tratta di un bilanciatore del carico regionale implementato come servizio gestito sulla base del proxy Envoy open source. La modalità a livello di regione garantisce che tutti i client e i backend provengano da una regione specifica, il che è utile quando è necessaria la conformità regionale.
  • Bilanciatore del carico di rete proxy interno tra regioni. Si tratta di un bilanciatore del carico per più regioni implementato come servizio gestito sulla base del 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 anche l'alta disponibilità. Il posizionamento dei backend in più regioni consente di evitare errori in una singola regione. Se i backend di una regione non sono attivi, il failover del traffico può avvenire in un'altra regione.

    La seguente tabella descrive le differenze importanti 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 da qualsiasi regione Google Cloud possono inviare traffico al bilanciatore del carico.
    Backend con bilanciamento del carico Backend regionali.
    Il bilanciatore del carico può inviare traffico solo ai 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.
    Disponibilità elevata e failover Failover automatico su backend integri nella stessa regione. Failover automatico su backend integri nella stessa regione 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 visualizzare il tipo, il protocollo e la regione del bilanciatore del carico. Se la regione è vuota, il bilanciatore del carico è in modalità interregionale. 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) Interna Specifica una regione
    Bilanciatore del carico di rete proxy interno tra regioni Rete (proxy) Interna

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, controlla lo schema di bilanciamento del carico, la regione e il livello di rete. La tabella seguente 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 che i client utilizzano 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 in alto, la subnet solo proxy fornisce un insieme di indirizzi IP che Google utilizza per eseguire 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 nelle modalità a livello di regione e tra regioni:

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

REGIONAL_MANAGED_PROXY

I bilanciatori del carico regionali e tra 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 regionali e tra 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 la 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 la 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 relativa regola di forwarding gestito interna.

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, vedi 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 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 tabella seguente 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

A livello di 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. Inoltre, i backend devono trovarsi nella stessa regione del bilanciatore del carico.

Bilanciatore del carico di rete proxy interno tra regioni

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 relative alla porta e all'indirizzo IP del client originali non vengono conservate. 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 tabella seguente 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 A livello di 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, per i backend dei gruppi di istanze, solo all'utilizzo).

Ogni bilanciatore del carico di rete proxy interno ha una singola risorsa di servizio di backend. La tabella seguente 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 A livello di 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 ibrido NEG Private Service Connect GKE
Bilanciatore del carico di rete proxy interno regionale Endpoint di tipo
GCE_VM_IP_PORT
Solo NEG a livello di regione 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 tipi diversi di backend di gruppi di istanze o tipi diversi di backend NEG, ma non puoi usare 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 svuotamento della connessione sui servizi di backend. Le interruzioni possono verificarsi quando un backend viene terminato, 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 Attivare lo svuotamento della connessione.

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 utilizzato dal servizio di backend 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 del proxy interno regionale o del bilanciatore del carico di rete proxy interno tra regioni supporta 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 gestire la richiesta. I controlli di integrità non controllano se l'applicazione stessa funziona.

Protocollo di controllo di integrità

Sebbene non sia obbligatorio e non sempre possibile, è consigliabile utilizzare un controllo di integrità il cui protocollo corrisponda al protocollo del servizio di backend. Ad esempio, un controllo di integrità TCP verifica in modo più accurato la connettività TCP ai backend. Per l'elenco dei protocolli per il controllo di integrità supportati, vedi Funzionalità di bilanciamento del carico.

La tabella seguente 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 A livello di regione regionHealthChecks
Bilanciatore del carico di rete proxy interno tra regioni Globale healthChecks

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

Regole 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 verso la porta di destinazione per il controllo di integrità di ciascun servizio di backend.

  • Per i backend di gruppi di istanze: determina le porte da configurare mediante la mappatura tra la porta denominata del servizio di backend e i numeri di porta associati a quella porta denominata su ciascun 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 ai numeri di porta degli endpoint.

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

  • Non è necessario aggiungere intervalli di probe per il controllo di integrità di Google a una lista consentita per i NEG ibridi. Tuttavia, se utilizzi una combinazione di NEG ibridi e a livello di zona in un singolo servizio di backend, devi aggiungere gli intervalli di probe del controllo di integrità di Google a una lista consentita per i NEG a livello di zona.
  • Per i NEG internet a livello di regione, i controlli di integrità sono facoltativi. Il traffico proveniente dai bilanciatori del carico che utilizzano NEG internet a livello di regione proviene 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 del controllo di integrità sia le richieste degli utenti dal bilanciatore del carico ai backend. Per maggiori dettagli, consulta NEG a livello di regione: utilizzo di 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, i client devono trovarsi per impostazione predefinita nella stessa regione del bilanciatore del carico. Puoi abilitare l'accesso globale per consentire ai client di qualsiasi regione di accedere al tuo 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 tuo bilanciatore del carico.

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

Accesso globale disabilitato Accesso globale abilitato
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 clienti 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 VPC condiviso

Il bilanciatore del carico di rete proxy interno supporta le reti che utilizzano il VPC condiviso. Un VPC condiviso 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 dell'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

Un indirizzo IP interno deve essere definito 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 in genere si trovano in un progetto di servizio. Nel progetto di servizio devono essere definiti un servizio di backend interno regionale e il controllo di integrità.

Distribuzione del traffico

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

  1. Le connessioni provenienti da un singolo client vengono inviate alla stessa zona, a condizione che i backend integri (gruppi di istanze o NEG) all'interno della zona sono disponibili e abbiano capacità, in base a quanto determinato dalla modalità di bilanciamento. Per i bilanciatori del carico di rete proxy interni regionali, la modalità di bilanciamento può essere CONNECTION (backend di gruppo di istanze o NEG) o UTILIZATION (solo backend di gruppi di istanze).
  2. Le connessioni da un client vengono inviate allo stesso backend se hai configurato 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 regionale.

Affinità sessione

L'affinità sessione consente di configurare il servizio di backend del bilanciatore del carico per inviare 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é il backend abbia capacità e rimanga integro.

Failover

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

Modalità bilanciatore del carico Comportamento di 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 ogni zona. Anziché attendere che tutti i backend in 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 non sono 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 su backend integri nella stessa regione o in altre regioni.

Il traffico è distribuito tra backend integri in 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 a livello 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 di associare il NEG al servizio di backend in modo che il bilanciatore del carico possa connettersi ai pod.

Documentazione 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 VPC condiviso in cui il frontend del bilanciatore del carico si trova in un progetto host o di servizio e il servizio di backend e i backend si trovano in un altro progetto di servizio (noto anche come riferimento ai servizi tra progetti).

Passaggi successivi