Drain (vidange des connexions)
Drain, ou vidange des connexions (en anglais connection draining) : étape qui consiste à cesser d'envoyer de nouvelles requêtes à un serveur retiré d'un répartiteur de charge, tout en laissant les requêtes en cours se terminer avant de l'arrêter.
Pour redémarrer sig-app-1 sans couper Signalements, on la retire du backend du répartiteur Scaleway (scw lb backend remove-servers <id-du-backend> server-ip.0=172.16.8.11 zone=fr-par-1), on attend quelques dizaines de secondes, puis on redémarre, on vérifie, et on la remet (add-servers) seulement quand la vérification de santé la déclare saine. La durée du drain se cale sur la requête la plus longue attendue et sur le délai de grâce de l'application (30 secondes par défaut pour Gunicorn après SIGTERM). Sans drain, les requêtes en cours sont coupées et les clients reçoivent des erreurs.
La règle va avec : une machine à la fois, et jamais la seconde avant d'avoir vérifié la première. Dans Kubernetes, kubectl drain désigne une opération voisine mais distincte : vider un nœud de ses pods, par éviction, avant une maintenance.
Dans les cours
- Linux : administration système, leçon 4 : Mettre à jour le noyau et la distribution
- Linux : administration système, leçon 2 : Le démarrage, du firmware à systemd