Graceful Shutdown (deutsch: geordnetes Herunterfahren) bezeichnet das kontrollierte Beenden eines Dienstes, bei dem keine neuen Anfragen mehr angenommen, laufende Anfragen aber noch zu Ende verarbeitet werden. Das Gegenstück ist der harte Abbruch, bei dem ein Prozess sofort beendet wird und laufende Arbeit verliert.

Ablauf in Kubernetes

Beim Beenden eines Pods sendet Kubernetes zunächst das Signal SIGTERM an den Container. Die Anwendung sollte dieses Signal abfangen, den Endpoint aus dem Service entfernen (Draining) und laufende Requests abschließen. Dafür steht das Feld terminationGracePeriodSeconds (Standard: 30 Sekunden). Läuft der Prozess danach noch, folgt SIGKILL — ein sofortiger Abbruch ohne Aufräumen. Ein preStop-Hook mit kurzem Sleep gibt Load-Balancern und Endpoint-Consumern Zeit, den Traffic umzustellen, bevor die Instanz Requests ablehnt.

Warum Graceful Shutdown wichtig ist

Ohne geordnetes Herunterfahren verlieren Nutzer laufende Requests: Bestellungen brechen ab, WebSockets kappen, Transaktionen rollen zurück. In Kombination mit einem Load Balancer, der die Instanz vor dem Herunterfahren aus dem Pool nimmt, lassen sich Updates und Skalierungsvorgänge ohne spürbare Ausfälle durchführen — ein Baustein für Hochverfügbarkeit.

Verwandte Grundlagen: Timeout-Handling, Idempotenz.