Attivazione dello svuotamento della connessione

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

Lo svuotamento della connessione è un processo che garantisce che le richieste in corso in corso abbiano il tempo di completarsi quando una VM viene rimossa da un gruppo di istanze o quando un endpoint viene rimosso da un gruppo di endpoint di rete (NEG) di zona.

Per attivare lo svuotamento della connessione, imposta un timeout per lo svuotamento della connessione sul servizio di backend. Il timeout deve essere compreso tra 0 e 3600 secondi inclusi.

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

Lo svuotamento della connessione inizia ogni volta che:

Possono essere necessari fino a 60 secondi dopo che la durata di timeout specificata è terminata.

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

Specifiche

Attivazione dello svuotamento della connessione

Console

Aggiornamento di un bilanciatore del carico

  1. Vai alla pagina Bilanciamento del carico in Google Cloud Console.
    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 di svuotamento della connessione, inserisci un valore compreso tra 0 e 3600. Se imposti 0, viene disattivato lo svuotamento della connessione.

Aggiornamento di Traffic Director

  1. Vai alla pagina Traffic Director in Google Cloud Console.
    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 di svuotamento della connessione, inserisci un valore compreso tra 0 e 3600. Se imposti 0, viene disattivato lo svuotamento della connessione.
  5. Fai clic su Salva.

gcloud

Abilita lo 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: numero di secondi da attendere prima che le connessioni esistenti alle istanze o agli endpoint vengano terminate, tra 0 e 3600 secondi inclusi. Se imposti 0, viene disattivato lo svuotamento della connessione. Il timeout per lo svuotamento della connessione si applica a tutti i backend del servizio di backend.

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

API

Per abilitare lo svuotamento della connessione nell'API durante la creazione o l'aggiornamento di un'istanza o di 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 questo attributo modificando un servizio di backend esistente. Per informazioni su altri attributi obbligatori, consulta la documentazione di ciascun bilanciatore del carico.

Per un bilanciatore del carico globale 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 di rimuovere istanze o endpoint dal gruppo di istanze o dal NEG, compreso tra 0 e 3600 secondi inclusi. Questa durata del timeout si applica a tutti i gruppi di istanze o NEG a cui fa riferimento il servizio di backend.

Passaggi successivi

Per informazioni generali sui servizi di backend, consulta la Panoramica dei servizi di backend.