Subnet solo proxy per bilanciatori del carico basati su Envoy

Questa pagina descrive come utilizzare le subnet solo proxy utilizzate dai bilanciatori del carico basati su Envoy. Una subnet solo proxy fornisce un pool di indirizzi IP riservati esclusivamente ai proxy Envoy utilizzati dai bilanciatori del carico Google Cloud. Non può essere utilizzata per altri scopi.

I proxy terminano le connessioni in entrata e poi valutano dove deve essere inviata ogni richiesta in base alla mappa URL, all'affinità sessione del servizio di backend, alla modalità di bilanciamento di ogni gruppo di istanza di backend o NEG e altri fattori.

  1. Un client stabilisce una connessione all'indirizzo IP e alla porta della regola di forwarding del bilanciatore del carico.

  2. Ogni proxy rimane in ascolto sull'indirizzo IP e sulla porta specificati dalla regola di forwarding del bilanciatore del carico corrispondente. Uno dei proxy riceve e termina la connessione di rete del client.

  3. Il proxy stabilisce una connessione alla VM o all'endpoint di backend appropriato in un NEG, come determinato dalla mappa URL e dai servizi di backend del bilanciatore del carico.

A ogni proxy del bilanciatore del carico viene assegnato un indirizzo IP interno. I pacchetti inviati da un proxy a una VM o a un endpoint di backend hanno un indirizzo IP di origine dalla subnet solo proxy.

La subnet solo proxy non può essere utilizzata per altri scopi. L'indirizzo IP per la regola di forwarding del bilanciatore del carico non proviene dalla subnet solo proxy. Inoltre, gli indirizzi IP delle VM e degli endpoint di backend non provengono dalla subnet solo proxy.

Bilanciatori del carico supportati

I seguenti bilanciatori del carico basati su Envoy richiedono subnet solo proxy:

In che modo le subnet solo proxy si inseriscono nell'architettura del bilanciatore del carico

Il seguente diagramma mostra le risorse Google Cloud necessarie per un bilanciatore del carico delle applicazioni interno regionale.

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

Come mostrato nei diagrammi, il deployment di un bilanciatore del carico basato su Envoy richiede almeno due subnet:

  • Le VM e gli endpoint di backend del bilanciatore del carico utilizzano un'unica subnet il cui intervallo di indirizzi IP principali è 10.1.2.0/24 (in questo esempio). Questa subnet non è solo proxy. Puoi utilizzare più subnet per le VM e gli endpoint di backend se si trovano nella stessa regione del bilanciatore del carico. Per gli Application Load Balancer interni, anche l'indirizzo IP del bilanciatore del carico associato alla regola di forwarding può trovarsi in questa subnet (ma non è necessario).
  • La subnet solo proxy è 10.129.0.0/23 (in questo esempio).

Suggerimenti sulle dimensioni delle subnet solo proxy

Una subnet solo proxy deve fornire 64 o più indirizzi IP. Corrisponde a una lunghezza del prefisso pari o inferiore a /26. Ti consigliamo di iniziare con una subnet solo proxy con un prefisso /23 (512 indirizzi solo proxy) e di modificare la dimensione quando il traffico deve cambiare.

I proxy sono allocati a livello di VPC, non a livello di bilanciatore del carico. Devi creare una subnet solo proxy in ogni regione di una rete VPC in cui utilizzi bilanciatori del carico basati su Envoy. Se esegui il deployment di più bilanciatori del carico nella stessa regione e nella stessa rete VPC, questi condividono la stessa subnet solo proxy per il bilanciamento del carico.

I bilanciatori del carico basati su Envoy scalano automaticamente il numero di proxy disponibili per gestire il traffico in base alle tue esigenze. L'addebito per le istanze proxy si basa sul numero di istanze proxy necessarie per soddisfare le esigenze di traffico. Ogni proxy aggiuntivo comporta un addebito orario aggiuntivo in base ai prezzi indicati nella tabella precedente.

Il numero di proxy allocati al bilanciatore del carico viene calcolato in base alla capacità misurata necessaria per gestire il traffico in un periodo di tempo di 10 minuti. Durante questo periodo, osserviamo il numero maggiore tra:

  • Il numero di proxy necessari per gestire le esigenze di larghezza di banda del tuo traffico. Ogni istanza proxy può gestire fino a 18 MB al secondo. Monitoriamo la larghezza di banda totale richiesta e la dividiamo per la larghezza di banda supportata da un'istanza proxy.
  • Il numero di proxy necessari per gestire connessioni e richieste. Conteggiamo il totale di ciascuna delle seguenti risorse e dividiamo ogni valore per ciò che un'istanza proxy può gestire:
    • 600 (HTTP) o 150 (HTTPS) nuove connessioni al secondo
    • 3000 connessioni attive
    • 1400 richieste al secondo*

* Un'istanza proxy può gestire 1400 richieste al secondo se Cloud Logging è disabilitato. Se abiliti Logging, l'istanza proxy può gestire meno richieste al secondo. Ad esempio, il logging del 100% delle richieste riduce la capacità di gestione delle richieste del proxy a 700 richieste al secondo. Puoi impostare Logging in modo da campionare una percentuale inferiore di traffico. Questo ti consente di soddisfare le tue esigenze di osservabilità controllando al contempo i costi.

Per un esempio dettagliato di come vengono fatturate le subnet solo proxy, consulta Addebito delle istanze proxy nella documentazione sui prezzi di Cloud Load Balancing.

Crea una subnet solo proxy

Devi creare subnet solo proxy per i bilanciatori del carico basati su Envoy, a prescindere dal fatto che la rete sia in modalità automatica o personalizzata. La creazione di una subnet solo proxy è in pratica la stessa procedura della creazione di qualsiasi subnet, tranne con l'aggiunta di alcuni flag.

Per una subnet solo proxy, --purpose deve essere impostato su REGIONAL_MANAGED_PROXY.

Non puoi riutilizzare una subnet esistente come subnet solo proxy; devi creare una nuova subnet in ogni regione che abbia un bilanciatore del carico basato su Envoy. Questo in parte perché il comando subnets update non consente di modificare il campo --purpose di una subnet.

Prima di creare regole di forwarding per i bilanciatori del carico a livello di regione, devi creare una subnet solo proxy da usare da parte dei proxy dei bilanciatori del carico. Se provi a configurare un bilanciatore del carico senza prima creare una subnet solo proxy per la regione, il processo di creazione del bilanciatore del carico non andrà a buon fine.

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.
    Vai alla pagina Reti VPC
  2. Fai clic sul nome della rete VPC condiviso a cui vuoi aggiungere una subnet solo proxy.
  3. Fai clic su Aggiungi subnet.
  4. Inserisci un Nome.
  5. Seleziona una Regione.
  6. Imposta Scopo su Proxy gestito a livello di regione.
  7. Inserisci un intervallo di indirizzi IP.
  8. Fai clic su Aggiungi.

gcloud

Il comando gcloud compute networks subnetscreate crea una subnet solo proxy.

gcloud compute networks subnets create SUBNET_NAME \
    --purpose=SUBNET_PURPOSE \
    --role=ACTIVE \
    --region=REGION \
    --network=VPC_NETWORK_NAME \
    --range=CIDR_RANGE

I campi sono definiti come segue:

  • SUBNET_NAME è il nome della subnet solo proxy.
  • SUBNET_PURPOSE è lo scopo della subnet. Imposta questo valore su REGIONAL_MANAGED_PROXY.
  • REGION è la regione della subnet solo proxy.
  • VPC_NETWORK_NAME è il nome della rete VPC che contiene la subnet.
  • CIDR_RANGE è l'intervallo di indirizzi IP principali della subnet. Devi utilizzare una subnet mask non più lunga di 26 in modo che siano disponibili almeno 64 indirizzi IP per i proxy nella regione. La lunghezza consigliata della subnet mask è /23.

Per un esempio di configurazione completo, consulta Configurazione della subnet solo proxy.

Devi configurare una regola firewall per consentire ai tuoi backend di accettare connessioni dalla subnet solo proxy. Per un esempio di configurazione completo, inclusa l'impostazione delle regole firewall, vedi quanto segue:

Disponibilità del proxy

A volte le regioni Google Cloud non hanno capacità proxy sufficiente per un nuovo bilanciatore del carico. In questo caso, la console Google Cloud visualizza un messaggio di avviso di disponibilità proxy quando crei il bilanciatore del carico. Per risolvere il problema, puoi eseguire una delle seguenti operazioni:

  • Seleziona una regione diversa per il bilanciatore del carico. Questa può essere un'opzione pratica se hai backend in un'altra regione.
  • Seleziona una rete VPC che ha già una subnet solo proxy allocata.
  • Attendi che il problema relativo alla capacità venga risolto.

Modifica della dimensione o dell'intervallo di indirizzi di una subnet solo proxy

Quando la quantità di traffico gestita dal bilanciatore del carico aumenta, potrebbe essere necessario aumentare le dimensioni della subnet solo proxy per consentire l'assegnazione di un numero maggiore di proxy Envoy al bilanciatore del carico.

Non puoi espandere una subnet solo proxy come faresti per un intervallo di indirizzi principale (con il comando expand-ip-range). Devi invece creare una subnet solo proxy di backup che soddisfi le tue esigenze e quindi promuoverla al ruolo attivo. Questo perché può essere attiva una sola subnet solo proxy per regione e per rete VPC e perché puoi espandere solo l'intervallo di indirizzi IP principali di una subnet.

Il passaggio da backup ad attiva di una subnet solo proxy non interrompe le nuove connessioni:

  • La subnet solo proxy appena attivata viene utilizzata per le nuove connessioni.
  • La subnet solo proxy attiva in precedenza (ora di backup) non viene più utilizzata per le nuove connessioni.
  • Google Cloud inizia a svuotare le connessioni esistenti dai proxy nella subnet solo proxy attiva in precedenza (ora di backup).

Puoi creare una sola subnet attiva e una solo proxy di backup per regione, per ogni rete VPC.

Console

  1. Crea una subnet solo proxy di backup nella stessa regione, specificando un intervallo di indirizzi IP principali che soddisfi le tue esigenze

    1. Nella console Google Cloud, vai alla pagina Reti VPC.
      Vai alla pagina Reti VPC
    2. Fai clic sul nome della rete VPC condiviso a cui vuoi aggiungere una subnet solo proxy.
    3. Fai clic su Aggiungi subnet.
    4. Inserisci un Nome.
    5. Seleziona una Regione.
    6. Imposta Scopo su Proxy gestito a livello di regione.
    7. Per il Ruolo, seleziona Backup.
    8. Inserisci un intervallo di indirizzi IP.
    9. Fai clic su Aggiungi.
  2. Crea o modifica le regole firewall di autorizzazione in entrata che si applicano alle VM o agli endpoint di backend in modo che includano l'intervallo di indirizzi IP principali della subnet solo proxy di backup.

  3. Promuovere la subnet solo proxy di backup al ruolo attivo. Questa azione fa retrocedere anche la subnet solo proxy attiva in precedenza al ruolo di backup:

    1. Nella console Google Cloud, vai alla pagina Reti VPC.
      Vai alla pagina Reti VPC
    2. Fai clic sul nome della rete VPC condiviso che vuoi modificare.
    3. In Subnet solo proxy riservate per il bilanciamento del carico, individua la subnet di backup creata nel passaggio precedente.
    4. Fai clic su Attiva.
    5. Specifica un valore facoltativo per il Timeout svuotamento.
    6. Fai clic su Attiva la subnet.
  4. Dopo il timeout per lo svuotamento della connessione o dopo aver verificato che le connessioni alle VM o agli endpoint di backend non provengono da proxy nella subnet solo proxy attiva in precedenza (ora di backup), puoi:

    • Modifica le regole firewall di autorizzazione in entrata che si applicano alle VM o agli endpoint di backend in modo che non includano l'intervallo di indirizzi IP principali della subnet solo proxy attiva in precedenza (ora di backup).
    • Elimina la subnet solo proxy attiva in precedenza (ora di backup) per rilasciare gli indirizzi IP utilizzati dalla subnet per l'intervallo di indirizzi IP principali.

gcloud

I passaggi seguenti presuppongono che tu abbia già una subnet solo proxy attiva esistente.

  1. Crea una subnet solo proxy di backup nella stessa regione, specificando un intervallo di indirizzi IP principali che soddisfi le tue esigenze, utilizzando il comando gcloud computenetworks subnets create con il flag --role=BACKUP.

    gcloud compute networks subnets create BACKUP_PROXY_ONLY_SUBNET_NAME \
       --purpose=SUBNET_PURPOSE \
       --role=BACKUP \
       --region=REGION \
       --network=VPC_NETWORK_NAME \
       --range=BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Sostituisci quanto segue:

    • BACKUP_PROXY_ONLY_SUBNET_NAME: il nome della subnet solo proxy di backup appena creata
    • SUBNET_PURPOSE: lo scopo della subnet solo proxy di backup appena creata
    • REGION: la regione della subnet solo proxy di backup appena creata. Deve essere la stessa regione dell'attuale subnet solo proxy attiva.
    • REGION: la rete della subnet solo proxy di backup appena creata. che deve essere la stessa rete dell'attuale subnet solo proxy attiva.
    • BACKUP_PROXY_ONLY_SUBNET_RANGE: l'intervallo CIDR della subnet solo proxy di backup appena creata
  2. Crea o modifica le regole firewall di autorizzazione in entrata che si applicano alle VM o agli endpoint di backend in modo che ora includano l'intervallo di indirizzi IP principali della subnet solo proxy di backup. La regola firewall dovrebbe già accettare connessioni dalla subnet attiva.

    gcloud compute firewall-rules update PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges ACTIVE_PROXY_ONLY_SUBNET_RANGE,BACKUP_PROXY_ONLY_SUBNET_RANGE
    

    Sostituisci quanto segue:

    • PROXY_ONLY_SUBNET_FIREWALL_RULE: il nome della regola firewall che consente al traffico dalla subnet solo proxy di raggiungere le istanze o gli endpoint di backend
    • ACTIVE_PROXY_ONLY_SUBNET_RANGE: l'intervallo CIDR della subnet solo proxy attiva attuale
  3. Aggiorna la nuova subnet, impostandola in modo che sia la subnet solo proxy ACTIVE nella regione e attendi lo svuotamento della subnet precedente. L'operazione fa anche retrocedere la subnet solo proxy attiva in precedenza al ruolo di backup.

    Per svuotare immediatamente un intervallo di indirizzi IP, imposta --drain-timeout su 0s. In questo modo vengono terminate tutte le connessioni ai proxy a cui sono stati assegnati indirizzi nella subnet che viene svuotata.

    gcloud compute networks subnets update BACKUP_PROXY_ONLY_SUBNET_NAME \
       --region=REGION \
       --role=ACTIVE \
       --drain-timeout=CONNECTION_DRAINING_TIMEOUT
    

    Sostituisci quanto segue:

    • CONNECTION_DRAINING_TIMEOUT: il tempo, in secondi, utilizzato da Google Cloud per eseguire la migrazione delle connessioni esistenti dai proxy nella subnet solo proxy attiva in precedenza
  4. Monitora lo stato dello svuotamento utilizzando un comando list o describe. Lo stato della subnet è DRAINING durante lo svuotamento.

    gcloud compute networks subnets list
    

    Attendi il completamento dello svuotamento. Quando la subnet solo proxy precedente viene svuotata, lo stato della subnet è READY.

  5. Aggiorna la regola firewall della subnet solo proxy per consentire solo le connessioni dalla nuova subnet.

    gcloud compute firewall-rules PROXY_ONLY_SUBNET_FIREWALL_RULE \
      --source-ranges BACKUP_PROXY_ONLY_SUBNET_RANGE
    
  6. Dopo aver verificato che le connessioni alle VM o agli endpoint di backend non provengano da proxy nella subnet solo proxy attiva in precedenza (ora di backup), puoi eliminare la vecchia subnet.

    gcloud compute networks subnets delete ACTIVE_PROXY_ONLY_SUBNET_NAME \
      --region=REGION
    

Migrazione dello scopo di una subnet solo proxy

Se in precedenza hai creato una subnet solo proxy con --purpose=INTERNAL_HTTPS_LOAD_BALANCER, dovrai eseguire la migrazione dello scopo della subnet a REGIONAL_MANAGED_PROXY prima di poter creare altri bilanciatori del carico basati su Envoy nella stessa regione della rete VPC.

Console

Se utilizzi la console Google Cloud per creare il bilanciatore del carico, ti verrà chiesto di eseguire la migrazione dello scopo di una subnet solo proxy creata in precedenza da --purpose=INTERNAL_HTTPS_LOAD_BALANCER a REGIONAL_MANAGED_PROXY durante la creazione del bilanciatore del carico.

gcloud

Per cambiare lo scopo di una subnet solo proxy esistente da --purpose=INTERNAL_HTTPS_LOAD_BALANCER a REGIONAL_MANAGED_PROXY, utilizza il seguente comando:

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --purpose=REGIONAL_MANAGED_PROXY \
    --region=REGION

La migrazione dello scopo di una subnet solo proxy da --purpose=INTERNAL_HTTPS_LOAD_BALANCER a REGIONAL_MANAGED_PROXY non causa tempi di inattività. La modifica dovrebbe essere applicata quasi istantaneamente.

Elimina una subnet solo proxy

L'eliminazione di una subnet solo proxy rilascia l'intervallo di indirizzi IP principali in modo da poter utilizzare l'intervallo per un altro scopo. Quando riceve una richiesta di eliminazione di una subnet solo proxy, Google Cloud applica le seguenti regole:

  • Impossibile eliminare una subnet solo proxy attivo se è presente almeno un bilanciatore del carico a livello di regione nella stessa regione e nella stessa rete VPC.

  • Impossibile eliminare una subnet solo proxy attiva se è presente una subnet solo proxy di backup nella stessa regione e nella stessa rete VPC.

    Se provi a eliminare una subnet solo proxy attiva prima di eliminare il backup, viene visualizzato il seguente messaggio di errore: "Utilizzo risorse non valido: impossibile eliminare la subnet ATTIVA perché esiste una subnet di BACKUP".

In concreto, queste regole hanno l'effetto seguente:

  • Se in una determinata regione e in una rete VPC non è definito alcun bilanciatore del carico a livello di regione, puoi eliminare le subnet solo proxy in quella regione. Se esiste una subnet solo proxy di backup, devi eliminarla prima di poter eliminare la subnet solo proxy attiva.

  • Se hai almeno un bilanciatore del carico a livello di regione definito in una determinata regione e rete VPC, non puoi eliminare la subnet solo proxy attiva. Tuttavia, puoi promuovere una subnet solo proxy di backup al ruolo attivo, che fa retrocedere automaticamente la subnet solo proxy attiva in precedenza al ruolo di backup. Una volta svuotate le connessioni, puoi eliminare la subnet solo proxy di backup (precedentemente attiva).

Per ulteriori informazioni, consulta la sezione sull'eliminazione delle subnet nella documentazione relativa alle reti VPC.

Limitazioni

Alle subnet solo proxy si applicano i seguenti vincoli:

  • Non puoi avere una subnet INTERNAL_HTTPS_LOAD_BALANCER e REGIONAL_MANAGED_PROXY nella stessa rete e nella stessa regione, allo stesso modo non puoi avere due proxy REGIONAL_MANAGED_PROXY o due proxy INTERNAL_HTTPS_LOAD_BALANCER.

  • Puoi creare una sola subnet attiva e una solo proxy di backup in ogni regione in ogni rete VPC.

  • Non puoi creare una subnet solo proxy di backup a meno che tu non abbia già creato una subnet solo proxy attiva in quella regione e rete.

  • Puoi modificare il ruolo di una subnet solo proxy da backup ad attiva aggiornando la subnet. In questo caso, Google Cloud sostituisce automaticamente la subnet solo proxy attiva in precedenza in backup. Non puoi impostare esplicitamente il ruolo di backup di una subnet solo proxy aggiornandola.

  • Durante il periodo di svuotamento della connessione di una subnet solo proxy (--drain-timeout), non puoi modificare il ruolo di una subnet solo proxy da backup ad attiva.

  • Google Cloud non ti avvisa se la subnet solo proxy esaurisce gli indirizzi IP. Tuttavia, puoi configurare Monitoring per monitorare l'utilizzo degli indirizzi IP della subnet solo proxy. Puoi definire i criteri di avviso per configurare un avviso per la metrica loadbalancing.googleapis.com/subnet/proxy_only/addresses.

  • Le subnet solo proxy non supportano i log di flusso VPC.

Passaggi successivi