Abilita lo svuotamento della connessione

Lo svuotamento delle connessioni è un processo che garantisce che alle richieste esistenti in corso venga concesso il tempo per il completamento quando una VM viene rimossa da un gruppo di istanze o quando un endpoint viene rimosso da un gruppo di endpoint di rete a livello di zona (NEG).

Per abilitare lo svuotamento delle connessioni, imposta un timeout per lo svuotamento della connessione sul servizio di backend. La durata del timeout deve essere compresa tra 0 e 3600 secondi (inclusi).

Per la durata specificata del timeout, alle richieste esistenti alla VM o all'endpoint rimosso viene concesso il tempo di completamento. Il bilanciatore del carico non invia nuove connessioni TCP alla VM rimossa. Una volta raggiunta la durata del timeout, tutte le connessioni TCP rimanenti alla VM vengono chiuse.

Lo svuotamento della connessione inizia ogni volta che esegui le seguenti operazioni:

L'arresto dell'istanza può richiedere fino a 60 secondi una volta trascorsa la durata di timeout specificata.

Se abiliti svuotamento della connessione su più servizi di backend che condividono gli stessi gruppi di istanze o NEG, viene utilizzato il valore di timeout massimo. Ad esempio, supponi che lo stesso gruppo di istanze o NEG a livello di zona sia un backend per due servizi di backend, in cui un servizio di backend ha un timeout per svuotamento della connessione di 100 secondi e l'altro servizio di backend ha un timeout per lo svuotamento della connessione di 200 secondi. Google Cloud utilizza 200 secondi come timeout effettivo per il svuotamento delle connessioni, in modo che le connessioni esistenti possano rimanere per 200 secondi prima che Google Cloud le chiuda. Se il backend è un gruppo di istanze gestite, le operazioni che eliminano l'istanza vengono ritardate di almeno 200 secondi.

Di seguito è riportato un elenco di specifiche relative allo svuotamento della connessione:

Per attivare svuotamento della connessione, completa i seguenti passaggi.

Console

Aggiorna un bilanciatore del carico

  1. Vai alla pagina Bilanciamento del carico nella console Google Cloud.
    Vai a Bilanciamento del carico
  2. Fai clic su Modifica per il bilanciatore del carico o crea un nuovo bilanciatore del carico.
  3. Fai clic su Configurazione backend.
  4. Fai clic su Configurazioni avanzate nella parte inferiore del servizio di backend.
  5. Nel campo Timeout per svuotamento connessioni, inserisci un valore compreso tra 0 e 3600. L'impostazione 0 disattiva lo svuotamento della connessione.

Aggiorna Traffic Director

  1. Vai alla pagina Traffic Director nella console Google Cloud.
    Vai a Traffic Director
  2. Fai clic sul nome del servizio.
  3. Fai clic su Configurazioni avanzate nella parte inferiore del servizio.
  4. Nel campo Timeout per svuotamento connessioni, inserisci un valore compreso tra 0 e 3600. L'impostazione 0 disattiva lo svuotamento della connessione.
  5. Fai clic su Salva.

gcloud

Abilita svuotamento della connessione su un servizio di backend nuovo o esistente utilizzando il flag --connection-draining-timeout. I seguenti esempi mostrano come modificare il timeout per lo svuotamento della connessione:

Sostituisci i segnaposto con valori validi:

  • BACKEND_SERVICE: il servizio di backend che stai aggiornando.
  • REGION: se applicabile, la regione del servizio di backend che stai aggiornando
  • CONNECTION_TIMEOUT_SECS: il numero di secondi di attesa prima che le connessioni esistenti alle istanze o agli endpoint vengano terminate, compreso tra 0 e 3600 secondi. L'impostazione 0 disattiva lo svuotamento della connessione. Il timeout per lo svuotamento della connessione si applica a tutti i backend del servizio di backend.

    Puoi anche utilizzare il comando gcloud compute backend-services edit per aggiornare un servizio di backend esistente.

API

Per abilitare svuotamento della connessione nell'API quando crei o aggiorni un'istanza o un endpoint, invia una richiesta al rispettivo URI dell'API per includere il campo connectionDraining nel corpo della richiesta. Gli esempi riportati di seguito mostrano come impostare l'attributo modificando un servizio di backend esistente. Per informazioni sugli altri attributi obbligatori, consulta la documentazione relativa a ciascun bilanciatore del carico.

Per un bilanciatore del carico globale o tra regioni esistente:

PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices

Per un bilanciatore del carico a livello di regione esistente:

PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/backendServices

{
   "name": "BACKEND_SERVICE",
   "connectionDraining": {
     "drainingTimeoutSec": CONNECTION_TIMEOUT_SECS
   }
}

dove:

  • PROJECT_ID è l'ID progetto che contiene il bilanciatore del carico o il deployment di Traffic Director.
  • BACKEND_SERVICE è il servizio di backend utilizzato dal bilanciatore del carico o dal deployment di Traffic Director.
  • CONNECTION_TIMEOUT_SECS è il numero di secondi da attendere prima che le istanze o gli endpoint vengano rimossi dal gruppo di istanze o dal NEG, compreso tra 0 e 3600 secondi, inclusi. La durata del timeout si applica a tutti i gruppi di istanze o a tutti i NEG a cui fa riferimento il servizio di backend.

Passaggi successivi

Per informazioni generali sui servizi di backend, vedi Panoramica dei servizi di backend.