Panoramica del bilanciatore del carico delle applicazioni interno

Questo documento illustra i concetti che devi conoscere per configurare i bilanciatori del carico delle applicazioni interni.

Un bilanciatore del carico delle applicazioni interno di Google Cloud è un bilanciatore del carico di livello 7 basato su proxy che ti consente di eseguire e scalare i servizi dietro un singolo indirizzo IP interno. Il bilanciatore del carico delle applicazioni interno distribuisce il traffico HTTP e HTTPS ai backend ospitati su una serie di piattaforme Google Cloud come Compute Engine, Google Kubernetes Engine (GKE) e Cloud Run. Per maggiori dettagli, consulta Caso d'uso.

Modalità di funzionamento

Puoi configurare un bilanciatore del carico delle applicazioni interno nelle seguenti modalità:

  • Bilanciatore del carico delle applicazioni interno tra regioni. Si tratta di un bilanciatore del carico multiregione che viene implementato come servizio gestito basato sul 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 venga indirizzato al backend più vicino. Questo bilanciatore del carico consente anche l'alta disponibilità. Posizionare i backend in più regioni consente di evitare guasti in una singola regione. Se i backend di una regione non sono disponibili, il traffico può essere eseguito in un'altra regione.
  • Bilanciatore del carico delle applicazioni interno regionale. Si tratta di un bilanciatore del carico a livello di regione implementato come servizio gestito basato sul proxy Envoy open source. La modalità regionale garantisce che tutti i client e i backend provengano da una regione specificata, il che è utile quando hai bisogno di conformità a livello di regione. Questo bilanciatore del carico è abilitato con funzionalità avanzate di controllo del traffico basate sui parametri HTTP(S). Al termine della configurazione, il bilanciatore del carico alloca automaticamente i proxy Envoy per soddisfare le tue esigenze di traffico.

    La seguente tabella descrive le differenze importanti tra le modalità regionali e tra regioni:

    Funzionalità Bilanciatore del carico delle applicazioni interno tra regioni Bilanciatore del carico delle applicazioni interno regionale
    Indirizzo IP virtuale (VIP) del bilanciatore del carico. Assegnati da una subnet in una regione Google Cloud specifica.

    Gli indirizzi VIP di più regioni possono condividere lo stesso servizio di backend globale. Puoi configurare il bilanciamento del carico globale basato su DNS utilizzando i criteri di routing DNS per instradare le richieste dei client all'indirizzo VIP più vicino.

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

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 di bilanciatore del carico, il protocollo e la regione. 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à del bilanciatore del carico Tipo di bilanciatore del carico Tipo di accesso Regione
    Bilanciatore del carico delle applicazioni interno regionale Applicazione Interno Specifica una regione
    Bilanciatore del carico delle applicazioni interno tra regioni Applicazione Interno

gcloud

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

    gcloud compute forwarding-rules describe FORWARDING_RULE_NAME
    

    Nell'output del 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à del bilanciatore del carico Schema di bilanciamento del carico Regola di forwarding
    Bilanciatore del carico delle applicazioni interno tra regioni INTERNAL_MANAGED Globale
    Bilanciatore del carico delle applicazioni interno regionale INTERNAL_MANAGED Regionale

Architettura e risorse

Il seguente diagramma mostra le risorse Google Cloud richieste per i bilanciatori del carico delle applicazioni interni:

Tra regioni

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

Componenti del bilanciatore del carico delle applicazioni interno tra regioni.
Componenti del bilanciatore del carico delle applicazioni interno tra regioni (fai clic per ingrandire).

Regionale

Questo diagramma mostra i componenti di un deployment di bilanciatori del carico delle applicazioni interni regionali nel livello Premium.

Componenti del bilanciatore del carico delle applicazioni interno regionale.
Componenti del bilanciatore del carico delle applicazioni interno regionale (fai clic per ingrandire).

Per il deployment di un bilanciatore del carico delle applicazioni interno sono necessarie le seguenti risorse:

Subnet solo proxy

Nel diagramma precedente, 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 bilanciatori del carico delle applicazioni interni.

La tabella seguente descrive le differenze tra le sottoreti solo proxy nelle modalità regionale e tra regioni:

Modalità del bilanciatore del carico Valore del flag --purpose della subnet solo proxy
Bilanciatore del carico delle applicazioni interno tra regioni

GLOBAL_MANAGED_PROXY

I bilanciatori del carico a livello di regione 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 dei bilanciatori del carico tra regioni nella stessa regione e nella stessa rete condividono la stessa subnet solo proxy.

Bilanciatore del carico delle applicazioni interno regionale

REGIONAL_MANAGED_PROXY

I bilanciatori del carico a livello di regione 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 nella rete VPC condividono la stessa subnet solo proxy

Inoltre:

  • Le subnet solo proxy vengono utilizzate solo per i proxy Envoy, non per i backend.
  • Le VM di backend o gli endpoint di tutti i bilanciatori del carico delle applicazioni interni in una regione e nella rete VPC ricevono connessioni dalla subnet solo proxy.
  • L'indirizzo IP virtuale di un bilanciatore del carico delle applicazioni interno non si trova nella subnet solo proxy. L'indirizzo IP del bilanciatore del carico è definito dalla regola di forwarding gestita interna, descritta di seguito.

Regola di inoltro e indirizzo 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.

Specifica dell'indirizzo IP. Ogni regola di forwarding fa riferimento a un singolo indirizzo IP regionale che puoi utilizzare nei record DNS per la tua applicazione. Puoi scegliere di prenotare un indirizzo IP statico da utilizzare o lasciare che sia Cloud Load Balancing ad assegnarne uno. Ti consigliamo di prenotare un indirizzo IP statico. In caso contrario, ogni volta che elimini una regola di forwarding e ne crei una nuova, devi aggiornare il record DNS con l'indirizzo IP temporaneo appena assegnato.

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 utilizzare HTTP 1.1 o versioni successive. Per l'elenco completo dei protocolli supportati, consulta 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 tuoi backend.

Specifica della porta. Ogni regola di forwarding per un bilanciatore del carico delle applicazioni può fare riferimento a una singola porta da 1 a 65535. Per supportare più porte, devi configurare più regole di inoltro. Puoi configurare più regole di inoltro in modo che utilizzino lo stesso indirizzo IP interno (VIP) e facciano riferimento allo stesso proxy HTTP(S) di destinazione, a condizione che la combinazione complessiva di indirizzo IP, porta e protocollo sia univoca per ogni regola di inoltro. In questo modo, puoi utilizzare un singolo bilanciatore del carico con una mappa URL condivisa come proxy per più applicazioni.

Il tipo di regola di forwarding, l'indirizzo IP e lo schema di bilanciamento del carico utilizzati dai bilanciatori del carico delle applicazioni interni dipendono dalla modalità del bilanciatore del carico.

Modalità del bilanciatore del carico Regola di inoltro, indirizzo IP e subnet solo proxy --purpose Instradamento dal client al frontend del bilanciatore del carico
Bilanciatore del carico delle applicazioni interno tra regioni

Regola di forwarding globale

Indirizzi IP regionali

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 in un VPC di accedere al bilanciatore del carico. I backend possono trovarsi in più regioni.


Bilanciatore del carico delle applicazioni interno regionale

Regola di inoltro regionale

Indirizzo IP regionale

Schema di bilanciamento del carico:

INTERNAL_MANAGED

Subnet solo proxy --purpose:

REGIONAL_MANAGED_PROXY

Indirizzo IP --purpose:

SHARED_LOADBALANCER_VIP

Puoi attivare l'accesso globale per consentire ai client di qualsiasi regione in un VPC di accedere al bilanciatore del carico. I backend devono inoltre trovarsi nella stessa regione del bilanciatore del carico.

Regole di inoltro e reti VPC

Questa sezione descrive come le regole di inoltro utilizzate dai bilanciatori del carico delle applicazioni esterni vengono associate alle reti VPC.

Modalità del bilanciatore del carico Associazione della rete VPC
Bilanciatore del carico delle applicazioni interno tra regioni

Bilanciatore del carico delle applicazioni interno regionale

Gli indirizzi IPv4 interni a livello di regione esistono sempre all'interno delle reti VPC. Quando crei la regola di forwarding, devi specificare la subnet da cui viene preso l'indirizzo IP interno. Questa subnet deve trovarsi nella stessa regione e nella stessa rete VPC in cui è stata creata una subnet solo proxy. Pertanto, esiste un'associazione di rete implicita.

Proxy di destinazione

Un proxy HTTP(S) di destinazione termina le connessioni HTTP(S) dai client. Il proxy HTTP(S) consulta la mappa URL per determinare come instradare il traffico ai backend. Un proxy HTTPS di destinazione utilizza un certificato SSL per autenticarsi ai client.

Il bilanciatore del carico conserva l'intestazione Host della richiesta del client originale. Il bilanciatore del carico aggiunge anche due indirizzi IP all'intestazione X-Forwarded-For:

  • L'indirizzo IP del client che si connette al bilanciatore del carico
  • L'indirizzo IP della regola di forwarding del bilanciatore del carico

Se non è presente un'intestazione X-Forwarded-For nella richiesta in arrivo, questi due indirizzi IP rappresentano l'intero valore dell'intestazione. Se la richiesta contiene un'intestazioneX-Forwarded-For, altre informazioni, come gli indirizzi IP registrati dai proxy sulla strada per il bilanciatore del carico, vengono conservate prima dei due indirizzi IP. Il bilanciatore del carico non verifica gli indirizzi IP che precedono i due indirizzi IP finali in questa intestazione.

Se utilizzi un proxy come server di backend, in genere questo proxy aggiunge altre informazioni all'intestazione X-Forwarded-For e il software potrebbe doverle prendere in considerazione. Le richieste proxy dal bilanciatore del carico provengono da un indirizzo IP nella subnet solo proxy e il proxy nell'istanza di backend potrebbe registrare questo indirizzo e l'indirizzo IP dell'istanza di backend.

A seconda del tipo di traffico che la tua applicazione deve gestire, puoi configurare un bilanciatore del carico con un proxy HTTP di destinazione o un proxy HTTPS di destinazione.

La tabella seguente mostra le API proxy target richieste dagli Application Load Balancer interni:

Modalità del bilanciatore del carico Proxy di destinazione
Bilanciatore del carico delle applicazioni interno tra regioni
Bilanciatore del carico delle applicazioni interno regionale

Certificati SSL

I bilanciatori del carico delle applicazioni interni che utilizzano proxy HTTPS di destinazione richiedono chiavi private e certificati SSL nell'ambito della configurazione del bilanciatore del carico.

La tabella seguente specifica il tipo di certificati SSL richiesti dai bilanciatori del carico delle applicazioni interni in ogni modalità:

Modalità del bilanciatore del carico Tipo di certificato SSL
Bilanciatore del carico delle applicazioni interno regionale

Certificati SSL a livello di regione di Compute Engine

Certificate Manager supporta i certificati autogestiti a livello di regione e i certificati gestiti da Google.

Con Gestore certificati sono supportati i seguenti tipi di certificati gestiti da Google:

I certificati gestiti da Google con autorizzazione del bilanciatore del carico non sono supportati.

Bilanciatore del carico delle applicazioni interno tra regioni

Certificate Manager supporta i certificati autogestiti e i certificati gestiti da Google.

Con Gestore certificati sono supportati i seguenti tipi di certificati gestiti da Google:

I certificati gestiti da Google con autorizzazione del bilanciatore del carico non sono supportati.

I certificati SSL di Compute Engine non sono supportati.

Mappe URL

Il proxy HTTP(S) di destinazione utilizza le mappe URL per determinare il routing in base agli attributi HTTP (ad esempio il percorso della richiesta, i cookie o le intestazioni). In base alla decisione di routing, il proxy inoltra le richieste del client a servizi di backend specifici. La mappa degli URL può specificare azioni aggiuntive da intraprendere, ad esempio la riscrittura delle intestazioni, l'invio di reindirizzamenti ai client e la configurazione di criteri di timeout (tra gli altri).

La tabella seguente specifica il tipo di mappatura URL richiesto dai bilanciatori del carico delle applicazioni interni in ogni modalità:

Modalità del bilanciatore del carico Tipo di mappa URL
Bilanciatore del carico delle applicazioni interno tra regioni Mappe di URL globali
Bilanciatore del carico delle applicazioni interno regionale Mappe degli URL delle regioni

Servizio di backend

Un servizio di backend fornisce informazioni di configurazione al bilanciatore del carico in modo che possa indirizzare le richieste ai propri backend, ad esempio gruppi di istanze Compute Engine o gruppi di endpoint di rete (NEG). Per maggiori informazioni sui servizi di backend, consulta la Panoramica dei servizi di backend.

Ambito del servizio di backend

La tabella seguente indica la risorsa e l'ambito del servizio di backend utilizzati dai bilanciatori del carico delle applicazioni interni:

Modalità del bilanciatore del carico Risorsa del servizio di backend
Bilanciatore del carico delle applicazioni interno tra regioni backendServices (globale)
Bilanciatore del carico delle applicazioni interno regionale regionBackendServices (regionale)

Protocollo per i backend

I servizi di backend per i bilanciatori del carico delle applicazioni devono utilizzare uno dei seguenti protocolli per inviare richieste ai backend:

  • HTTP, che utilizza HTTP/1.1 e non TLS
  • HTTPS, che utilizza HTTP/1.1 e TLS
  • HTTP/2, che utilizza HTTP/2 e TLS (HTTP/2 senza crittografia non è supportato).

Il bilanciatore del carico utilizza solo il protocollo del servizio di backend specificato per comunicare con i suoi backend. Il bilanciatore del carico non passa a un Protocollo diverso se non è in grado di comunicare con i backend utilizzando il Protocollo del servizio di backend specificato.

Il protocollo del servizio di backend non deve corrispondere a quello utilizzato dai client per comunicare con il bilanciatore del carico. Ad esempio, i client possono inviare richieste al bilanciatore del carico utilizzando HTTP/2, ma il bilanciatore del carico può comunicare con i backend utilizzando HTTP/1.1 (HTTP o HTTPS).

Backend

La tabella seguente specifica le funzionalità di backend supportate dai bilanciatori del carico delle applicazioni interni in ogni modalità.


Modalità del bilanciatore del carico
Backend supportati in un servizio di backend* Supporta i bucket di backend Supporta Google Cloud Armor Supporta Cloud CDN Supporta IAP Supporta Service Extensions
Gruppi di istanze NEG a livello di zona NEG internet NEG serverless NEG ibridi NEG Private Service Connect
Bilanciatore del carico delle applicazioni interno tra regioni
Cloud Run
Bilanciatore del carico delle applicazioni interno regionale
Cloud Run

* I backend di un servizio di backend devono essere dello stesso tipo: tutti gruppi di istanze o tutti dello stesso tipo di NEG. Un'eccezione a questa regola è che sia i NEG zonaliGCE_VM_IP_PORT sia i NEG ibridi possono essere utilizzati nello stesso servizio di backend per supportare un' architettura ibrida.

Le combinazioni di gruppi di istanze non gestite per zona, gestite per zona e gestite a livello di regione sono supportate nello stesso servizio di backend. Quando utilizzi la scalabilità automatica per un gruppo di istanze gestite che è un backend per due o più servizi di backend, configura il criterio di scalabilità automatica del gruppo di istanze in modo che utilizzi più indicatori.

I NEG a livello di zona devono utilizzare endpoint GCE_VM_IP_PORT.

Backend e reti VPC

  • Per i gruppi di istanze, i NEG a livello di zona e i NEG connettività ibrida, tutti i backend devono trovarsi nello stesso progetto e nella stessa regione del servizio di backend. Tuttavia, un bilanciatore del carico può fare riferimento a un backend che utilizza una rete VPC diversa nello stesso progetto del servizio di backend (questa funzionalità è in anteprima). La connettività tra la rete VPC del bilanciatore del carico e la rete VPC di backend può essere configurata utilizzando il peering di rete VPC, i tunnel Cloud VPN, i collegamenti VLAN Cloud Interconnect o un framework Network Connectivity Center.

    Definizione della rete di backend

    • Per i NEG zonali e i NEG ibridi, devi specificare esplicitamente la rete VPC quando crei il NEG.
    • Per i gruppi di istanze gestite, la rete VPC è definita nel modello di istanza.
    • Per i gruppi di istanze non gestiti, la rete VPC del gruppo di istanze è impostata in modo da corrispondere alla rete VPC dell'interfaccia nic0 per la prima VM aggiunta al gruppo di istanze.

    Requisiti di rete di backend

    La rete del tuo backend deve soddisfare uno dei seguenti requisiti:

    • La rete VPC del backend deve corrispondere esattamente alla rete VPC della regola di forwarding.

    • La rete VPC del backend deve essere connessa alla rete VPC della regola di forwarding tramite il peering di rete VPC. Devi configurare gli scambi di route di subnet per consentire la comunicazione tra la subnet solo proxy nella rete VPC della regola di forwarding e le subnet utilizzate dalle istanze o dagli endpoint di backend.

    • Sia la rete VPC del backend sia la rete VPC della regola di forwarding devono essere spoke VPC sullo stesso hub Network Connectivity Center. I filtri di importazione ed esportazione devono consentire la comunicazione tra la subnet solo proxy nella rete VPC della regola di forwarding e le subnet utilizzate dagli endpoint o dalle istanze di backend.
    • Per tutti gli altri tipi di backend, tutti i backend devono trovarsi nella stessa rete e nella stessa regione VPC.

Backend e interfacce di rete

Se utilizzi backend di gruppi di istanze, i pacchetti vengono sempre inviati a nic0. Se vuoi inviare pacchetti a NIC diverse, utilizza i backend NEG.

Se utilizzi backend NEG a livello di zona, i pacchetti vengono inviati a qualsiasi interfaccia di rete rappresentata dall'endpoint nel NEG. Gli endpoint NEG devono trovarsi nella stessa rete VPC della rete VPC definita esplicitamente del NEG.

Sottoinsieme di backend

La sottoimpostazione del backend è una funzionalità facoltativa supportata dal bilanciatore del carico delle applicazioni interno regionale che migliora le prestazioni e la scalabilità assegnando un sottoinsieme di backend a ciascuna delle istanze proxy.

Per impostazione predefinita, la sottoimpostazione del backend è disattivata. Per informazioni su come attivare questa funzionalità, consulta Impostazione secondaria di backend per bilanciatore del carico delle applicazioni interno.

Controlli di integrità

Ogni servizio di backend specifica un controllo di integrità che monitora periodicamente la disponibilità dei backend a ricevere una connessione dal bilanciatore del carico. In questo modo si riduce il rischio che le richieste vengano inviate a backend che non possono gestirle. I controlli di integrità non verificano se l'applicazione stessa funziona.

Affinché i controlli di integrità vengano eseguiti correttamente, devi creare una regola firewall di autorizzazione in entrata che consenta ai controlli di integrità di raggiungere le istanze di backend. In genere, i probe del controllo di integrità provengono dal meccanismo di controllo di integrità centralizzato di Google. Tuttavia, per i gruppi di elenchi di negazioni ibride, i controlli di integrità provengono dalla subnet solo proxy. Per maggiori dettagli, consulta i controlli di integrità di Envoy distribuiti nella Panoramica dei NEG ibridi.

Protocollo di controllo di integrità

Sebbene non sia obbligatorio e non sempre possibile, è buona prassi utilizzare un controllo di integrità il cui protocollo corrisponda al protocollo del servizio di backend. Ad esempio, un controllo di integrità HTTP/2 verifica con maggiore precisione la connettività HTTP/2 ai backend. I bilanciatori del carico delle applicazioni interni che utilizzano backend NEG ibridi, invece, non supportano i controlli di integrità gRPC. Per l'elenco dei protocolli di controllo di integrità supportati, consulta Funzionalità di bilanciamento del carico.

La tabella seguente specifica l'ambito dei controlli di integrità supportati dagli Application Load Balancer interni:

Modalità del bilanciatore del carico Tipo di controllo di integrità
Bilanciatore del carico delle applicazioni interno tra regioni Global
Bilanciatore del carico delle applicazioni interno regionale A livello di regione

Per ulteriori informazioni sui controlli di integrità, consulta le seguenti risorse:

Regole firewall

Un bilanciatore del carico delle applicazioni interno richiede le seguenti regole firewall:

  • Una regola di autorizzazione in entrata che consente il traffico proveniente dagli intervalli di controllo di integrità centrali di Google.
    • 35.191.0.0/16
    • 130.211.0.0/22

    Per il traffico IPv6 verso i backend:

    • 2600:2d00:1:b029::/64
  • Una regola di autorizzazione in entrata che consenta il traffico dalla subnet solo proxy.

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

  • L'inserimento nella lista consentita degli intervalli di probe di controllo di integrità di Google non è necessario per i NEG ibridi. Tuttavia, se utilizzi una combinazione di NEG ibridi e zonali in un singolo servizio di backend, devi inserire nella lista consentita gli intervalli di sonde di controllo di integrità di Google per i NEG zonali.
  • Per i NEG di internet regionali, i controlli di integrità sono facoltativi. Il traffico proveniente dai bilanciatori del carico che utilizzano NEG internet regionali ha origine dalla subnet solo proxy e viene poi sottoposto a traduzione NAT (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 regionali: utilizzare Cloud NAT per l'egress.

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 delle applicazioni interni tra regioni, l'accesso globale è abilitato per impostazione predefinita. I client di qualsiasi regione in un VPC possono accedere al bilanciatore del carico.

Per i bilanciatori del carico delle applicazioni 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 in un VPC di accedere al bilanciatore del carico.

La tabella seguente riassume l'accesso dei client ai bilanciatori del carico delle applicazioni interni regionali:

Accesso globale disattivato Accesso globale abilitato
I client devono trovarsi nella stessa regione del bilanciatore del carico. Inoltre, devono essere nella stessa rete VPC del bilanciatore del carico o in una rete VPC connessa alla rete VPC del bilanciatore del carico tramite il peering di rete VPC. I client possono trovarsi in qualsiasi regione. Tuttavia, devono trovarsi nella stessa rete VPC del bilanciatore del carico o in una rete VPC connessa alla rete VPC del bilanciatore del carico utilizzando il peering di rete VPC.
I client on-premise possono accedere al bilanciatore del carico tramite tunnel VPN Cloud o collegamenti VLAN. Questi tunnel o attacchi 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 allegati possono trovarsi in qualsiasi regione.

Assistenza GKE

GKE utilizza i bilanciatori del carico delle applicazioni interni nei seguenti modi:

  • I gateway interni creati utilizzando il controller GKE Gateway possono utilizzare qualsiasi modalità di un bilanciatore del carico delle applicazioni interno. Puoi controllare la modalità del bilanciatore del carico scegliendo un valore GatewayClass. Il controller GKE Gateway utilizza sempre i backend NEG GCE_VM_IP_PORT zonali.

  • Gli ingressi interni creati utilizzando il controller GKE Ingress sono sempre bilanciatori del carico delle applicazioni interni regionali. Il controller in entrata GKE utilizza sempre i backend NEG zonali GCE_VM_IP_PORT.

Architetture VPC condiviso

I bilanciatori del carico delle applicazioni interni supportano le reti che utilizzano il VPC condiviso. La VPC condiviso consente alle organizzazioni di connettere risorse di più progetti a una rete VPC comune così che possano comunicare tra loro in modo sicuro ed efficiente utilizzando IP interni di quella rete. Se non hai ancora familiarità con le reti VPC condivise, consulta la documentazione di panoramica del VPC condiviso.

Esistono molti modi per configurare un bilanciatore del carico delle applicazioni interno in una rete VPC condiviso. Indipendentemente dal tipo di implementazione, tutti i componenti del bilanciatore del carico devono trovarsi nella stessa organizzazione.

Subnet e indirizzo IP Componenti frontend Componenti di backend

Crea la rete e le subnet richieste (inclusa la subnet solo proxy) nel progetto host VPC condiviso.

L'indirizzo IP interno del bilanciatore del carico può essere definito nel progetto host o in un progetto di servizio, ma deve utilizzare una subnet nella rete VPC condiviso desiderata nel progetto host. L'indirizzo stesso proviene dall'intervallo IP principale della subnet a cui si fa riferimento.

L'indirizzo IP interno regionale, la regola di forwarding, il proxy HTTP(S) di destinazione e la mappa URL associata devono essere definiti nello stesso progetto. Questo progetto può essere il progetto host o un progetto di servizio. Puoi eseguire una delle seguenti operazioni:
  • Crea servizi di backend e backends (gruppi di istanze, gruppi di endpoint di rete serverless o qualsiasi altro tipo di backend supportato) nello stesso progetto di servizio dei componenti frontend.
  • Crea servizi di backend e backend (gruppi di istanze, gruppi di istanze elastiche serverless o qualsiasi altro tipo di backend supportato) in quanti progetti di servizi necessari. Una singola mappa URL può fare riferimento a servizi di backend in progetti diversi. Questo tipo di deployment è noto come riferimento ai servizi tra progetti.

Ogni servizio di backend deve essere definito nello stesso progetto dei backend a cui fa riferimento. I controlli di integrità associati ai servizi di backend devono essere definiti anche nello stesso progetto del servizio di backend.

Sebbene sia possibile creare tutti i componenti e i backend di bilanciamento del carico nel progetto host VPC condiviso, questo tipo di deployment non separa le responsabilità di amministrazione della rete e di sviluppo del servizio.

Tutti i componenti e i backend del bilanciatore del carico in un progetto di servizio

Il seguente diagramma di architettura mostra un deployment standard di VPC condiviso in cui tutti i componenti e i backend del bilanciatore del carico si trovano in un progetto di servizio. Questo tipo di implementazione è supportato da tutti i bilanciatori del carico delle applicazioni.

Il bilanciatore del carico utilizza gli indirizzi IP e le subnet del progetto host. I client possono accedere a un bilanciatore del carico delle applicazioni interno se si trovano nella stessa rete VPC condiviso e nella stessa regione del bilanciatore del carico. I client possono trovarsi nel progetto host, in un progetto di servizio collegato o in qualsiasi rete connessa.

Bilanciatore del carico delle applicazioni interno sulla rete VPC condiviso
Bilanciatore del carico delle applicazioni interno sulla VPC condiviso condivisa

Backend serverless in un ambiente VPC condiviso

Per un bilanciatore del carico delle applicazioni interno che utilizza un backend NEG serverless, il servizio Cloud Run di supporto deve trovarsi nello stesso progetto di servizio del servizio di backend e del NEG serverless. I componenti frontend del bilanciatore del carico (regola di forwarding, proxy target, mappa URL) possono essere creati nel progetto host, nello stesso progetto di servizio dei componenti di backend o in qualsiasi altro progetto di servizio nello stesso ambiente VPC condiviso.

Riferimenti ai servizi tra progetti

In questo modello, il frontend e la mappa di URL del bilanciatore del carico si trovano in un progetto di servizio o host. I servizi di backend e i backend del bilanciatore del carico possono essere distribuiti tra i progetti nell'ambiente VPC condiviso. È possibile fare riferimento ai servizi di backend tra progetti in una singola mappa URL. Questo è noto come riferimento ai servizi tra progetti.

Il riferimento ai servizi tra progetti consente alle organizzazioni di configurare un bilanciatore del carico centralizzato e instradare il traffico verso centinaia di servizi distribuiti su più progetti diversi. Puoi gestire centralmente tutte le regole e i criteri di routing del traffico in una mappa URL. Puoi anche associare il bilanciatore del carico a un singolo insieme di nomi host e certificati SSL. Di conseguenza, puoi ottimizzare il numero di bilanciatori del carico necessari per implementare l'applicazione e ridurre la gestibilità, i costi operativi e i requisiti di quota.

Avere progetti diversi per ciascuno dei tuoi team funzionali ti consente anche di ottenere una separazione dei ruoli all'interno della tua organizzazione. I proprietari di servizi possono concentrarsi sulla creazione di servizi nei progetti di servizi, mentre i team di rete possono eseguire il provisioning e la manutenzione dei bilanciatori del carico in un altro progetto. Entrambi possono essere collegati utilizzando il riferimento ai servizi tra progetti.

I proprietari di servizi possono mantenere l'autonomia sull'esposizione dei propri servizi e controllare quali utenti possono accedere ai loro servizi utilizzando il bilanciatore del carico. Questo viene ottenuto tramite un ruolo IAM speciale chiamato ruolo Utente dei servizi bilanciatore del carico Compute (roles/compute.loadBalancerServiceUser).

Per scoprire come configurare il VPC condiviso per un bilanciatore del carico delle applicazioni interno, con e senza riferimenti ai servizi tra progetti, consulta Configurare un bilanciatore del carico delle applicazioni interno con VPC condiviso.

Limitazioni note relative ai riferimenti ai servizi tra progetti

  • Non puoi fare riferimento a un servizio di backend tra progetti se il servizio di backend ha backend NEG internet regionali. Tutti gli altri tipi di backend sono supportati.
  • Google Cloud non distingue le risorse (ad esempio i servizi di backend) che utilizzano lo stesso nome in più progetti. Pertanto, quando utilizzi il riferimento ai servizi tra progetti, ti consigliamo di utilizzare nomi di servizio di backend univoci nei progetti della tua organizzazione.

Esempio 1: frontend e backend del bilanciatore del carico in progetti di servizi diversi

Di seguito è riportato un esempio di deployment in cui la mappa URL e il frontend del bilanciatore del carico vengono creati nel progetto di servizio A e la mappa URL fa riferimento a un servizio di backend nel progetto di servizio B.

In questo caso, gli amministratori di rete o del bilanciatore del carico nel progetto di servizio A richiederanno l'accesso ai servizi di backend nel progetto di servizio B. Gli amministratori del progetto di servizio B grantano il ruolo IAM compute.loadBalancerServiceUser agli amministratori del bilanciatore del carico nel progetto di servizio A che vogliono fare riferimento al servizio di backend nel progetto di servizio B.

Frontend del bilanciatore del carico e mappa URL nel progetto di servizio
Frontend e backend del bilanciatore del carico in progetti di servizi diversi

Esempio 2: frontend del bilanciatore del carico nel progetto host e backend nei progetti di servizio

In questo tipo di implementazione, la mappa URL e il frontend del bilanciatore del carico vengono creati nel progetto host e i servizi di backend (e i backend) vengono creati nei progetti di servizio.

In questo caso, gli amministratori di rete o del bilanciatore del carico nel progetto host dovranno avere accesso ai servizi di backend nel progetto di servizio. Gli amministratori del progetto di servizio devono concedere il ruolo IAM compute.loadBalancerServiceUser agli amministratori del bilanciatore del carico nel progetto host A che vogliono fare riferimento al servizio di backend nel progetto di servizio.

Frontend del bilanciatore del carico e mappa URL nel progetto host
Frontend del bilanciatore del carico e mappa URL nel progetto host

Timeout e nuovi tentativi

I bilanciatori del carico delle applicazioni interni supportano i seguenti tipi di timeout:

Tipo e descrizione del timeout Valori predefiniti Supporta valori personalizzati
Tra regioni Regionale
Timeout del servizio di backend

Un timeout per le richieste e le risposte. Rappresenta il tempo massimo consentito tra l'invio da parte del bilanciatore del carico del primo byte di una richiesta al backend e il ritorno da parte del backend dell'ultimo byte della risposta HTTP al bilanciatore del carico. Se il backend non ha restituito l'intera risposta HTTP al bilanciatore del carico entro questo limite di tempo, i dati della risposta rimanenti vengono eliminati.

  • Per le NEG serverless su un servizio di backend: 60 minuti
  • Per tutti gli altri tipi di backend in un servizio di backend: 30 secondi
Timeout keepalive HTTP del client

Il tempo massimo durante il quale la connessione TCP tra un client e il proxy Envoy gestito del bilanciatore del carico può essere inattiva. La stessa connessione TCP potrebbe essere utilizzata per più richieste HTTP.

10 minuti (600 secondi)
Timeout keepalive HTTP del backend

Il tempo massimo di inattività della connessione TCP tra il proxy Envoy gestito del bilanciatore del carico e un backend. La stessa connessione TCP potrebbe essere utilizzata per più richieste HTTP.

10 minuti (600 secondi)

Timeout del servizio di backend

Il timeout del servizio di backend configurabile rappresenta il tempo massimo che il bilanciatore del carico attende che il backend elabori una richiesta HTTP e restituisca la risposta HTTP corrispondente. Ad eccezione dei NEG serverless, il valore predefinito per il timeout del servizio di backend è 30 secondi.

Ad esempio, se vuoi scaricare un file da 500 MB e il valore del timeout del servizio di backend è 90 secondi, il bilanciatore del carico si aspetta che il backend invii l'intero file da 500 MB entro 90 secondi. È possibile configurare il timeout del servizio di backend in modo che non sia sufficiente per consentire al backend di inviare la risposta HTTP completa. In questa situazione, se il bilanciatore del carico ha ricevuto almeno le intestazioni di risposta HTTP dal backend, restituisce le intestazioni di risposta complete e la maggior parte del corpo della risposta che è riuscito a ottenere entro il timeout del servizio di backend.

Devi impostare il timeout del servizio di backend sul periodo di tempo più lungo che prevedi che il backend debba impiegare per elaborare una risposta HTTP. Devi aumentare il timeout del servizio di backend se il software in esecuzione sul tuo backend ha bisogno di più tempo per elaborare una richiesta HTTP e restituire l'intera risposta.

Il timeout del servizio di backend accetta valori compresi tra 1 e 2,147,483,647 secondi; tuttavia, i valori più elevati non sono opzioni di configurazione pratiche. Inoltre, Google Cloud non garantisce che una connessione TCP sottostante possa rimanere aperta per l'intero valore del timeout del servizio di backend. I sistemi client devono implementare la logica di ripetizione anziché fare affidamento su una connessione TCP aperta per lunghi periodi di tempo.

Per le connessioni WebSocket utilizzate con i bilanciatori del carico delle applicazioni interni, le connessioni WebSocket attive non rispettano il timeout del servizio di backend. Le connessioni WebSocket inattive vengono chiuse dopo il timeout del servizio di backend.

Google Cloud riavvia o modifica periodicamente il numero di attività software Envoy in esecuzione. Maggiore è il valore del timeout del servizio di backend, maggiore è la probabilità che i riavvii o le sostituzioni delle attività Envoy interrompano le connessioni TCP.

Per configurare il timeout del servizio di backend, utilizza uno dei seguenti metodi:

Console

Modifica il campo Timeout del servizio di backend del bilanciatore del carico.

gcloud

Utilizza il comando gcloud compute backend-services update per modificare il parametro --timeout della risorsa del servizio di backend.

API

Modifica il parametro timeoutSec per la risorsa regionBackendServices

Timeout keepalive HTTP del client

Il timeout keepalive HTTP del client rappresenta il tempo massimo che una connessione TCP può essere inattiva tra il client (downstream) e un proxy Envoy. Il valore predefinito del timeout keepalive HTTP del client è 600 secondi. Puoi configurare il timeout con un valore compreso tra 5 e 600 secondi.

Un timeout keepalive HTTP è chiamato anche timeout inattività TCP.

Il timeout keepalive HTTP del client del bilanciatore del carico deve essere maggiore del timeout keepalive HTTP (inattività TCP) utilizzato dai client o dai proxy a valle. Se un client a valle ha un timeout keepalive HTTP (inattività TCP) maggiore rispetto al timeout keepalive HTTP del client del bilanciatore del carico, è possibile che si verifichi una condizione di gara. Dal punto di vista di un client a valle, è consentito che una connessione TCP stabilita rimanga inattiva per più tempo di quanto consentito dal bilanciatore del carico. Ciò significa che il client downstream può inviare pacchetti dopo che il bilanciatore del carico considera chiusa la connessione TCP. In questo caso, il bilanciatore del carico risponde con un pacchetto di reset TCP (RST).

Timeout keepalive HTTP del backend

I bilanciatori del carico delle applicazioni interni sono proxy che utilizzano una prima connessione TCP tra il client (a valle) e un proxy Envoy e una seconda connessione TCP tra il proxy Envoy e i backend.

Le connessioni TCP secondarie del bilanciatore del carico potrebbero non chiudersi dopo ogni richiesta; possono rimanere aperte per gestire più richieste e risposte HTTP. Il timeout keepalive HTTP del backend definisce il timeout di inattività TCP tra il bilanciatore del carico e i backend. Il timeout keepalive HTTP del backend non si applica ai websocket.

Il timeout keepalive del backend è fissato a 10 minuti (600 secondi) e non può essere modificato. Il timeout keepalive del backend del bilanciatore del carico deve essere inferiore al timeout keepalive utilizzato dal software in esecuzione sui backend. In questo modo si evita una race condition in cui il sistema operativo dei tuoi backend potrebbe chiudere le connessioni TCP con un reset TCP (RST). Poiché il timeout keepalive del backend per il bilanciatore del carico non è configurabile, devi configurare il software di backend in modo che il valore del timeout keepalive HTTP (inattività TCP) sia superiore a 600 secondi.

La tabella seguente elenca le modifiche necessarie per modificare i valori del timeout keepalive per il software del server web comune.

Software del server web Parametro Impostazione predefinita Impostazione consigliata
Apache KeepAliveTimeout KeepAliveTimeout 5 KeepAliveTimeout 620
nginx keepalive_timeout keepalive_timeout 75s; keepalive_timeout 620s;

Nuovi tentativi

Per configurare i tentativi di nuovo invio, puoi utilizzare un criterio di nuovo invio nella mappa URL. Il numero predefinito di nuovi tentativi (numRetries) è 1. Il valore perTryTimeout massimo configurabile è 24 ore.

In assenza di un criterio di ripetizione, le richieste non andate a buon fine che non hanno un corpo HTTP (ad esempio le richieste GET) che generano risposte HTTP 502, 503 o 504 vengono ripetute una volta.

Le richieste HTTP POST non vengono ripetute.

Le richieste di cui è stato eseguito il riavvio generano una sola voce di log per la risposta finale.

Per ulteriori informazioni, consulta Logging e monitoraggio del bilanciatore del carico delle applicazioni interno.

Accesso alle reti connesse

I client possono accedere a un bilanciatore del carico delle applicazioni interno nella rete VPC da una rete connessa utilizzando quanto segue:

  • Peering di rete VPC
  • Cloud VPN e Cloud Interconnect

Per esempi dettagliati, consulta Bilanciatori del carico delle applicazioni interni e reti connesse.

Failover

Se un backend non è integro, il traffico viene reindirizzato automaticamente ai backend integri.

La tabella seguente descrive il comportamento del failover in ogni modalità:

Modalità del bilanciatore del carico Comportamento di failover Comportamento quando tutti i backend non sono integri
Bilanciatore del carico delle applicazioni interno tra regioni

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

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

Restituisce HTTP 503
Bilanciatore del carico delle applicazioni interno regionale

Failover automatico a backend integri nella stessa regione.

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

Restituisce HTTP 503

Alta disponibilità e failover tra regioni

Per i bilanciatori del carico delle applicazioni interni regionali

Per ottenere una disponibilità elevata, esegui il deployment di più bilanciatori del carico delle applicazioni interni regionali nelle regioni che supportano al meglio il traffico della tua applicazione. Poi, utilizza un criterio di routing per la geolocalizzazione di Cloud DNS per rilevare se un bilanciatore del carico risponde durante un interruzione del servizio a livello di regione. Un criterio di geolocalizzazione indirizza il traffico alla regione disponibile più vicina in base all'origine della richiesta del client. Il controllo di integrità è disponibile per default per i bilanciatori del carico delle applicazioni interni.

Per i bilanciatori del carico delle applicazioni interni tra regioni

Puoi configurare un bilanciatore del carico delle applicazioni interno tra regioni in più regioni per ottenere i seguenti vantaggi:

  1. Se il bilanciatore del carico delle applicazioni interno tra regioni in una regione non funziona, i criteri di routing DNS instradano il traffico a un bilanciatore del carico delle applicazioni interno tra regioni in un'altra regione.

    L'esempio di deployment ad alta disponibilità mostra quanto segue:

    • Un bilanciatore del carico delle applicazioni interno tra regioni con indirizzo IP virtuale (VIP) frontend nelle regioni RegionA e RegionB della tua rete VPC. I tuoi clienti si trovano nella regione RegionA.
    • Puoi rendere accessibile il bilanciatore del carico utilizzando VIP frontend di due regioni e utilizzare i criteri di routing DNS per restituire il VIP ottimale ai tuoi client. Utilizza i criteri di routing basati sulla geolocalizzazione se vuoi che i tuoi clienti utilizzino il VIP più vicino geograficamente.
    • I criteri di routing DNS possono rilevare se un VIP non risponde durante un'interruzione del servizio a livello di regione e restituire ai clienti il VIP più ottimale successivo, garantendo che l'applicazione rimanga attiva anche durante le interruzioni del servizio a livello di regione.
    Bilanciatore del carico delle applicazioni interno tra regioni con deployment ad alta disponibilità.
    Bilanciatore del carico delle applicazioni interno tra regioni con implementazione ad alta disponibilità (fai clic per ingrandire).
  2. Se i backend di una determinata regione non sono attivi, il traffico del bilanciatore del carico delle applicazioni interno tra regioni viene trasferito in modo corretto ai backend di un'altra regione.

    L'esempio di implementazione del failover tra regioni mostra quanto segue:

    • Un bilanciatore del carico delle applicazioni interno tra regioni con un indirizzo VIP frontend nella regione RegionA della tua rete VPC. I tuoi clienti si trovano anche nella regione RegionA.
    • Un servizio di backend globale che fa riferimento ai backend nelle regioni Google Cloud RegionA e RegionB.
    • Quando i backend nella regione RegionA non sono disponibili, il traffico viene trasferito alla regione RegionB.
    Bilanciatore del carico delle applicazioni interno tra regioni con un deployment di failover tra regioni.
    Bilanciatore del carico delle applicazioni interno tra regioni con un deployment di failover tra regioni (fai clic per ingrandire).

Supporto WebSocket

I bilanciatori del carico basati su HTTP(S) di Google Cloud supportano il protocollo WebSocket quando utilizzi HTTP o HTTPS come protocollo per il backend. Il bilanciatore del carico non richiede alcuna configurazione per il proxy delle connessioni WebSocket.

Il protocollo WebSocket fornisce un canale di comunicazione full-duplex tra i client e il bilanciatore del carico. Per maggiori informazioni, consulta la RFC 6455.

Il protocollo WebSocket funziona nel seguente modo:

  1. Il bilanciatore del carico riconosce una richiesta Upgrade websocket da un client HTTP(S). La richiesta contiene le intestazioni Connection: Upgrade, Upgrade: websocket, seguite da altre intestazioni delle richieste pertinenti relative a websocket.
  2. Il backend invia una risposta Upgrade websocket. L'istanza di backend invia una risposta 101 switching protocol con intestazioni Connection: Upgrade, Upgrade: websocket e altre intestazioni di risposta relative a websocket.
  3. Il bilanciatore del carico esegue il proxy del traffico bidirezionale per la durata della connessione corrente.

Se l'istanza di backend restituisce una risposta di errore con il codice 426 o 502, il bilanciatore del carico chiude la connessione.

L'affinità sessione per i websocket funziona come per qualsiasi altra richiesta. Per ulteriori informazioni, consulta Affinità della sessione.

Supporto gRPC

gRPC è un framework open source per le chiamate di procedura remota. È basato sullo standard HTTP/2. I casi d'uso di gRPC includono:

  • Sistemi distribuiti a bassa latenza e altamente scalabili
  • Sviluppo di client mobile che comunicano con un server cloud
  • Progettazione di nuovi protocolli che devono essere accurati, efficienti e indipendenti dal linguaggio
  • Progettazione a più livelli per consentire l'estensione, l'autenticazione e la registrazione

Per utilizzare gRPC con le tue applicazioni Google Cloud, devi eseguire il proxy delle richieste end-to-end tramite HTTP/2. Per farlo:

  1. Configura un bilanciatore del carico HTTPS.
  2. Attiva HTTP/2 come protocollo dal bilanciatore del carico ai backend.

Il bilanciatore del carico negozia HTTP/2 con i client nell'ambito dell'handshake SSL utilizzando l'estensione TLS ALPN.

Il bilanciatore del carico potrebbe comunque negoziare HTTPS con alcuni client o accettare richieste HTTP non sicure su un bilanciatore del carico configurato per utilizzare HTTP/2 tra il bilanciatore del carico e le istanze di backend. Queste richieste HTTP o HTTPS vengono trasformate dal bilanciatore del carico per eseguire il proxy delle richieste tramite HTTP/2 alle istanze di backend.

Devi attivare TLS sui tuoi backend. Per ulteriori informazioni, vedi Crittografia dal bilanciatore del carico ai backend.

Supporto TLS

Per impostazione predefinita, un proxy target HTTPS accetta solo TLS 1.0, 1.1, 1.2 e 1.3 quando termina le richieste SSL del client.

Quando il bilanciatore del carico utilizza HTTPS come protocollo del servizio di backend, può negoziare TLS 1.0, 1.1, 1.2 o 1.3 con il backend.

Supporto di TLS reciproco

TLS reciproco, o mTLS, è un protocollo standard di settore per l'autenticazione reciproca tra un client e un server. Garantisce che sia il client sia il server si autentichino tra loro verificando che ciascuno detenga un certificato valido emesso da un'autorità di certificazione (CA) attendibile. A differenza del TLS standard, in cui viene autenticato solo il server, mTLS richiede che sia il client sia il server presentino certificati, confermando le identità di entrambe le parti prima che la comunicazione sia stabilita.

Tutti i bilanciatori del carico delle applicazioni supportano mTLS. Con mTLS, il bilanciatore del carico richiede al client di inviare un certificato per autenticarsi durante l'handshake TLS con il bilanciatore del carico. Puoi configurare un gestore dei certificati per l'autenticazione dei certificati client.

Per ulteriori informazioni su mTLS, vedi Autenticazione TLS reciproca.

Limitazioni

  • Non è garantito che una richiesta di un client in una zona della regione venga inviata a un backend nella stessa zona del client. L'affinità di sessione non riduce la comunicazione tra le zone.

  • I bilanciatori del carico delle applicazioni interni non sono compatibili con le seguenti funzionalità:

  • Un bilanciatore del carico delle applicazioni interno supporta HTTP/2 solo tramite TLS.

  • I client che si connettono a un bilanciatore del carico delle applicazioni interno devono utilizzare HTTP 1.1 o versioni successive. HTTP 1.0 non è supportato.

  • Google Cloud non ti avvisa se la sottorete solo proxy esaurisce gli indirizzi IP.

  • La regola di forwarding interna utilizzata dal bilanciatore del carico delle applicazioni interno deve avere esattamente una porta.

  • I bilanciatori del carico delle applicazioni interni non supportano Cloud Trace.

  • Quando utilizzi un bilanciatore del carico delle applicazioni interno con Cloud Run in un ambiente VPC condiviso, le reti VPC autonome nei progetti di servizio possono inviare traffico a qualsiasi altro servizio Cloud Run di cui è stato eseguito il deployment in qualsiasi altro progetto di servizio nello stesso ambiente VPC condiviso. Si tratta di un problema noto e questa forma di accesso verrà bloccata in futuro.

  • Google Cloud non garantisce che una connessione TCP di base possa rimanere aperta per l'intero valore del timeout del servizio di backend. I sistemi client devono implementare la logica di ripetizione anziché fare affidamento su una connessione TCP aperta per lunghi periodi di tempo.

Passaggi successivi