Subnet solo proxy per i bilanciatori del carico basati su Envoy

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questa pagina viene descritto 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 utilizzato per altri scopi. In qualsiasi momento, una sola subnet solo proxy può essere attiva in ogni regione di una rete VPC.

I proxy terminano le connessioni in entrata e poi valutano dove deve essere ricevuta ogni richiesta HTTP(S) in base alla mappa URL, all'affinità sessione del servizio di backend, alla modalità di bilanciamento di ogni gruppo di istanze o NEG di backend e ad 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 è in ascolto sull'indirizzo IP e sulla porta specificati dalla corrispondente regola di forwarding del bilanciatore del carico. 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.I proxy per tutti i bilanciatori del carico in una regione utilizzano indirizzi IP interni da una singola subnet solo proxy in quella regione della rete VPC.

Devi creare subnet solo proxy a prescindere dal fatto che la rete sia in modalità automatica o personalizzata. Una subnet solo proxy deve fornire 64 o più indirizzi IP. Corrisponde a una lunghezza prefisso pari o inferiore a /26. La dimensione consigliata per la subnet è /23 (512 indirizzi solo proxy).

L'allocazione del proxy è a livello di VPC, non a livello del bilanciatore del carico. Devi creare una subnet solo proxy in ogni regione di una rete virtuale (VPC) in cui utilizzi i bilanciatori del carico basati su Envoy. Se esegui il deployment di più bilanciatori del carico nella stessa regione e nella stessa rete VPC, condividono la stessa subnet solo proxy per il bilanciamento del carico.

La subnet solo proxy non può essere utilizzata per nessun altro scopo. L'indirizzo IP della 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:

Come inserire le subnet solo proxy nell'architettura del bilanciatore del carico

Il seguente diagramma mostra le risorse Google Cloud richieste per un bilanciatore del carico HTTP(S) esterno a livello di regione.

Componenti del bilanciatore del carico HTTP(S) esterno a livello di area geografica (fai clic per ingrandire)
Componenti del bilanciatore del carico HTTP(S) esterno a livello di area geografica (fai clic per ingrandire)

Il seguente diagramma mostra le risorse Google Cloud richieste per un bilanciatore del carico HTTP(S) interno.

Componenti numerati del bilanciatore del carico HTTP(S) interno (fai clic per ingrandire)
Componenti numerati del bilanciatore del carico HTTP(S) interno (fai clic per ingrandire)

Come mostrato nei diagrammi, un deployment del 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 è una subnet 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 i bilanciatori del carico HTTP(S) interni, anche l'indirizzo IP del bilanciatore del carico associato alla regola di forwarding deve trovarsi in questa subnet.
  • La subnet solo proxy è 10.129.0.0/23 (in questo esempio).

Crea una subnet solo proxy

La creazione di una subnet solo proxy è sostanzialmente la stessa della creazione di qualsiasi subnet, ad eccezione dell'aggiunta di alcuni flag.

Non puoi riutilizzare una subnet esistente come subnet solo proxy; devi creare una nuova subnet in ogni regione che ha un bilanciatore del carico basato su Envoy. anche perché il comando subnets update non consente di modificare il campo --purpose di una subnet. Per la subnet solo proxy, --purpose deve essere impostato su REGIONAL_MANAGED_PROXY.

In una determinata rete e regione, una singola subnet solo scopo del proxy REGIONAL_MANAGED_PROXY è condivisa tra tutti i bilanciatori del carico basati su Envoy a livello di regione.

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.

Devi creare una subnet solo proxy per l'utilizzo da parte dei proxy dei bilanciatori del carico, prima di creare le regole di forwarding per i bilanciatori del carico a livello di regione. Se tenti di configurare un bilanciatore del carico senza prima creare una subnet solo proxy per la regione, il processo di creazione del bilanciatore del carico ha esito negativo.

Console

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

gcloud

Il comando gcloud computenetwork subnetscreate crea una subnet solo proxy.

gcloud compute networks subnets create SUBNET_NAME \
    --purpose=REGIONAL_MANAGED_PROXY \
    --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.
  • REGION è l'area geografica 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 nell'area geografica. La lunghezza consigliata per la subnet mask è /23.

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

Devi configurare una regola firewall per i backend per accettare connessioni dalla subnet solo proxy. Per un esempio di configurazione completa, inclusa la configurazione delle regole firewall, consulta quanto segue:

Disponibilità del proxy

A volte le regioni Google Cloud non hanno capacità proxy sufficiente per un nuovo bilanciatore del carico. In tal caso, la console Google Cloud fornisce un messaggio di avviso relativo alla disponibilità del proxy durante la creazione del bilanciatore del carico. Per risolvere questo problema, puoi procedere in uno dei seguenti modi:

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

Modificare la dimensione o l'intervallo di indirizzi di una subnet solo proxy

Quando modifichi il numero di backend nel tuo deployment, potresti dover modificare le dimensioni o l'intervallo di indirizzi della subnet solo proxy.

Non puoi espandere una subnet solo proxy nello stesso modo in cui faresti per un intervallo di indirizzi principale (con il comando espansione-ip-range). Devi invece creare una subnet solo proxy di backup che soddisfi le tue esigenze e poi promuoverla al ruolo attivo. Questo perché è possibile attivare una sola subnet solo proxy per regione e per rete VPC, ma puoi espandere solo l'intervallo di indirizzi IP principali di una subnet.

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

  • Per le nuove connessioni viene usata la subnet solo proxy appena attivata.
  • La subnet solo proxy precedentemente attiva (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 precedentemente attiva (ora di backup).

Puoi creare una sola subnet attiva e una sola proxy di backup per area geografica per 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 condivisa a cui vuoi aggiungere una subnet solo proxy.
    3. Fai clic su Aggiungi subnet.
    4. Inserisci un Nome.
    5. Seleziona una regione.
    6. Imposta Finalità su Proxy gestito a livello di area geografica.
    7. Come Ruolo, seleziona Backup.
    8. Inserisci un intervallo di indirizzi IP.
    9. Fai clic su Add (Aggiungi).
  2. Crea o modifica le regole firewall per consentire il traffico 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. Promuovi la subnet solo proxy di backup nel ruolo attivo. Questa azione trasforma anche la subnet solo proxy attiva in precedenza nel 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 condivisa 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 Timeout di svuotamento facoltativo.
    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 provengano da proxy nella subnet solo proxy ora attiva (ora di backup), puoi procedere come segue:

    • Modifica le regole del firewall 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 precedentemente attiva (ora di backup).
    • Elimina la subnet solo proxy precedentemente attiva (ora di backup) per rilasciare gli indirizzi IP utilizzati dalla subnet per l'intervallo di indirizzi IP principali.

gcloud

  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 compute networks subnets create con il flag --role=BACKUP.

    gcloud compute networks subnets create BACKUP_PROXY_SUBNET \
       --purpose=REGIONAL_MANAGED_PROXY \
       --role=BACKUP \
       --region=REGION \
       --network=VPC_NETWORK_NAME \
       --range=CIDR_RANGE
    
  2. Crea o modifica le regole di firewall in entrata applicabili alle VM o agli endpoint di backend in modo che includano l'intervallo di indirizzi IP principali della subnet solo proxy di backup.

  3. Il seguente comando gcloud promuove una subnet solo proxy di backup nel ruolo attivo e retrocede la subnet solo proxy attiva in precedenza al ruolo di backup:

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

    Sostituisci quanto segue:

    • BACKUP_PROXY_SUBNET: il nome della subnet solo proxy di backup appena creata
    • REGION: la regione della subnet solo proxy di backup appena creata
    • CONNECTION_DRAINING_TIMEOUT: il tempo, in secondi, che Google Cloud utilizza per eseguire la migrazione delle connessioni esistenti dai proxy nella subnet solo proxy attiva in precedenza
  4. Dopo il timeout per lo svuotamento della connessione o dopo aver verificato che le connessioni alle VM o agli endpoint di backend non provengano da proxy nella subnet solo proxy ora attiva (ora di backup), puoi procedere come segue:

    • Modifica le regole di firewall 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 precedentemente attiva (ora di backup) per rilasciare gli indirizzi IP utilizzati dalla subnet per l'intervallo di indirizzi IP principali.

Esempio: modifica di una subnet solo proxy

Questa sezione include una configurazione di esempio che mostra i passaggi necessari per modificare la subnet solo proxy in una regione.

Per questo esempio, supponiamo che l'attuale subnet solo proxy ACTIVE denominata proxy-only-subnet-us-west1 abbia un intervallo di indirizzi IP di 10.129.0.0/23.

  1. Crea una subnet solo proxy di backup dedicata alla regione.

    gcloud compute networks subnets create new-backup-subnet-us-west1 \
       --purpose=REGIONAL_MANAGED_PROXY \
       --role=BACKUP \
       --region=us-west1 \
       --network=default \
       --range=10.130.0.0/23
    
  2. Aggiorna la regola firewall per accettare le connessioni dalla nuova subnet.

    gcloud compute firewall-rules update proxy-only-subnet-firewall \
       --source-ranges 10.129.0.0/23,10.130.0.0/23
    
  3. Aggiorna la nuova subnet impostandola sulla subnet solo proxy ACTIVE nell'area geografica e in attesa che venga svuotata la subnet precedente.

    gcloud compute networks subnets update new-backup-subnet-us-west1 \
       --drain-timeout 1h --role ACTIVE
    

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

  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 vecchia subnet solo proxy viene svuotata, lo stato della subnet è READY.

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

    gcloud compute firewall-rules proxy-only-subnet-firewall \
       --source-ranges 10.130.0.0/23
    
  6. Elimina la vecchia subnet.

    gcloud compute networks subnets delete proxy-only-subnet-us-west1 \
       --region us-west1
    

Eseguire la 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 comando seguente:

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

Elimina una subnet solo proxy

L'eliminazione di una subnet solo proxy rilascia l'intervallo di indirizzi IP principali in modo che tu possa utilizzare l'intervallo per un altro scopo. Google Cloud applica le seguenti regole quando riceve una richiesta di eliminazione di una subnet solo proxy:

  • Impossibile eliminare una subnet solo proxy attiva 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 tenti di 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 pratica, queste regole hanno il seguente effetto:

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

  • Se hai almeno un bilanciatore del carico a livello di area geografica definito in una determinata area geografica e rete VPC, non puoi eliminare la subnet solo proxy attiva; tuttavia, puoi promuovere una subnet solo proxy di backup al ruolo attivo, che retrocede automaticamente la subnet solo proxy attiva in precedenza al ruolo di backup. Dopo aver svuotato le connessioni, puoi eliminare la subnet solo proxy di backup (precedentemente attiva).

Per saperne di più, consulta Eliminazione delle subnet nella documentazione della rete VPC.

Limitazioni

I seguenti vincoli si applicano alle subnet solo proxy:

  • Non puoi avere sia una subnet INTERNAL_HTTPS_LOAD_BALANCER sia una subnet REGIONAL_MANAGED_PROXY nella stessa rete e nella stessa area geografica, così come non puoi avere due proxy REGIONAL_MANAGED_PROXY o due proxy INTERNAL_HTTPS_LOAD_BALANCER.

  • Puoi creare una sola subnet attiva e una sola proxy di backup in ogni area geografica 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 quell'area geografica e rete.

  • Puoi modificare il ruolo di una subnet solo proxy da backup ad attivo aggiornando la subnet. In questo caso, Google Cloud modifica automaticamente la subnet solo proxy attiva in precedenza per il backup. Non puoi impostare esplicitamente il ruolo di una subnet solo proxy di cui eseguire il backup aggiornandolo.

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

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

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

Passaggi successivi