Drain ist ein Betriebsverfahren beim Stoppen oder Abkoppeln eines Servers oder Workers. Neue Arbeit wird nicht mehr angenommen, laufende Verarbeitung darf aber noch sauber zu Ende laufen.
Bei einem HTTP-Server bedeutet Drain, dass keine neuen Requests mehr hereinkommen und anschließend auf bestehende Verbindungen oder in-flight requests gewartet wird. In Kubernetes taucht der Begriff oft in dem Ablauf auf, bei dem readiness gesenkt wird, um die Instanz aus den Endpoints zu entfernen, bevor graceful shutdown folgt.
Typische Einsatzfälle
- Direkt vor einem Serverneustart oder Rolling Update
- Vor dem Stoppen eines Queue-Workers
- Beim Herausnehmen eines Knotens hinter einem Load Balancer
Hinweise
Drain ist kein sofortiger Stopp. Es ist eine Phase, um laufende Arbeit nicht zu beschädigen. Das Ziel unterscheidet sich von einer erzwungenen Beendigung.
hsb.horse