Ein Health Check (englisch für Gesundheitsprüfung) ist ein regelmäßiger Test, der den Zustand eines Dienstes oder einer Infrastruktur-Komponente prüft. Typisch ist eine eigene HTTP-Endpoint wie /health oder /healthz, die eine einfache Antwort liefert: verfügbar oder nicht. Lastverteiler, Orchestrierungssysteme und Monitoring-Lösungen rufen diesen Endpoint in kurzen Intervallen auf und entscheiden anhand der Antwort, ob eine Instanz Verkehr bekommen darf.
Liveness und Readiness
In Kubernetes unterscheidet man zwei Arten von Probes. Der Liveness-Probe fragt: Lebt der Prozess noch? Schlägt sie fehl, startet Kubernetes den Container neu. Der Readiness-Probe fragt: Kann die Instanz bereits Anfragen bedienen? Schlägt sie fehl, nimmt Kubernetes den Pod aus den Endpoints des Service — der Prozess läuft weiter, bekommt aber keinen Verkehr mehr. Ein Startup-Probe verhindert zusätzlich, dass ein noch startender Container fälschlich als fehlgeschlagen gilt.
Health Checks im Betrieb
Ein Load Balancer prüft die Health seiner Ziele, bevor er Anfragen weiterleitet, und zieht nicht erreichbare Instanzen aus dem Pool. Gute Health-Endpoints antworten schnell und prüfen nicht nur den Prozess, sondern auch kritische Abhängigkeiten wie Datenbank oder Cache. Tiefe Prüfungen sind aber teuer — deshalb kombinieren viele Systeme eine einfache Liveness-Abfrage mit einer ausführlicheren Readiness-Prüfung. Für Monitoring und Observability sind Health Checks die Grundlage jeder automatischen Fehlererkennung; zusammen mit Fail Fast und Graceful Shutdown ermöglichen sie selbstheilende Systeme und tragen zur Hochverfügbarkeit bei.
Verwandte Grundlagen: Bulkhead, Fail Fast, Circuit Breaker, Kubernetes, Resilienz.