Activer le drainage de connexion

Le drainage de connexion est un processus qui garantit que les requêtes existantes en cours se voient accorder un délai suffisant pour être traitées lorsqu'une VM est supprimée d'un groupe d'instances ou lorsqu'un point de terminaison est supprimé des groupes de points de terminaison du réseau (NEG) au format zonal.

Les informations figurant sur cette page ne s'appliquent qu'aux groupes d'instances et aux types de NEG suivants qui sont zonaux :

Pour activer le drainage de connexion, définissez un délai avant expiration du drainage de connexion sur le service backend. La durée de ce délai doit être comprise entre 0 et 3 600 secondes.

Pendant la durée spécifiée pour le délai d'expiration, les requêtes existantes adressées à la VM en cours de suppression se voient accorder un délai de grâce pour être traitées. L'équilibreur de charge n'envoie plus de nouvelles connexions TCP à la VM en cours de suppression. Une fois le délai écoulé, toutes les connexions TCP à la VM qui subsistent encore sont fermées.

Le drainage de connexion est initié par les opérations suivantes :

Un délai supplémentaire de 60 secondes (après expiration du délai que vous avez spécifié) peut être nécessaire à l'arrêt effectif de l'instance.

Si vous activez le drainage de connexion sur plusieurs services de backend qui partagent les mêmes groupes d'instances ou NEG, c'est la valeur de délai avant expiration la plus élevée qui est utilisée. Par exemple, supposons que le même groupe d'instances ou NEG zonal soit un backend pour deux services de backend, l'un disposant d'un délai avant expiration du drainage de connexion de 100 secondes et l'autre de 200 secondes. Google Cloud utilise 200 secondes comme délai d'expiration effectif pour le drainage de connexion, de sorte que les connexions existent pendant 200 secondes avant que Google Cloud ne les arrête. Si le backend est un groupe d'instances géré, les opérations de suppression de l'instance sont retardées d'au moins 200 secondes.

Voici une liste des spécifications concernant le drainage de connexion :

Pour activer le drainage de connexion, procédez comme suit :

Console

Mettre à jour un équilibreur de charge

  1. Accédez à la page Équilibrage de charge dans Google Cloud Console.
    Accéder à la page "Équilibrage de charge"
  2. Cliquez sur le bouton Modifier () correspondant à votre équilibreur de charge ou créez un équilibreur de charge.
  3. Cliquez sur Configuration du backend.
  4. Cliquez sur Configurations avancées en bas de votre service backend.
  5. Dans le champ Délai avant expiration du drainage de connexion, saisissez une valeur comprise entre 0 et 3600. La valeur 0 désactive le drainage de connexion.

Mettre à jour Traffic Director

  1. Accédez à la page "Traffic Director" dans la console Google Cloud.
    Accéder à Traffic Director
  2. Cliquez sur le nom de votre service.
  3. Cliquez sur Configurations avancées en bas de votre service backend.
  4. Dans le champ Délai avant expiration du drainage de connexion, saisissez une valeur comprise entre 0 et 3600. La valeur 0 désactive le drainage de connexion.
  5. Cliquez sur Enregistrer.

gcloud

Pour activer le drainage de connexion sur un service de backend nouveau ou existant, utilisez l'option --connection-draining-timeout. Les exemples suivants montrent comment modifier le délai avant expiration du drainage de connexion :

Remplacez les espaces réservés par des valeurs valides :

  • BACKEND_SERVICE : le service de backend que vous mettez à jour.
  • REGION : le cas échéant, région du service de backend que vous mettez à jour
  • CONNECTION_TIMEOUT_SECS : nombre de secondes d'attente avant l'arrêt des connexions existantes aux instances ou aux points de terminaison, entre 0 et 3600 secondes incluses. La valeur 0 désactive le drainage de connexion. Le délai avant expiration du drainage de connexion s'applique à tous les backends du service de backend.

    Vous pouvez également exécuter la commande gcloud compute backend-services edit pour mettre à jour un service de backend existant.

API

Pour activer le drainage de connexion dans l'API lors de la création ou de la mise à jour d'une instance ou d'un point de terminaison, envoyez une requête à l'URI d'API concerné en incluant le champ connectionDraining dans le corps de votre requête. Les exemples suivants montrent comment définir cet attribut en modifiant un service de backend existant. Pour en savoir plus sur les autres attributs obligatoires, consultez la documentation de chaque équilibreur de charge.

Pour un équilibreur de charge global ou interrégional existant :

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

Pour un équilibreur de charge régional existant :

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

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

où :

  • PROJECT_ID est l'ID du projet contenant votre équilibreur de charge ou votre déploiement Traffic Director.
  • BACKEND_SERVICE est le service de backend utilisé par votre équilibreur de charge ou votre déploiement Traffic Director.
  • CONNECTION_TIMEOUT_SECS est le délai à respecter (en secondes) avant la suppression de l'instance ou du point de terminaison du groupe d'instances ou du groupe de NEG (valeur comprise entre 0 et 3 600 secondes inclus). Ce délai avant expiration s'applique à tous les groupes d'instances ou NEG référencés par le service de backend.

Étape suivante

Pour obtenir des informations générales sur les services de backend, consultez la présentation des services de backend.