{"id":38965,"date":"2019-10-31T22:27:03","date_gmt":"2019-10-31T19:27:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/liveness-probes-v-kubernetes-mogut-byt-opasny\/"},"modified":"2019-10-31T22:27:03","modified_gmt":"2019-10-31T19:27:03","slug":"liveness-probes-v-kubernetes-mogut-byt-opasny","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"Liveness-Probes in Kubernetes k\u00f6nnen gef\u00e4hrlich sein.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Hinweis.<\/b>: Der Lead Engineer von Zalando, Henning Jacobs, hat immer wieder Probleme bei Benutzern von Kubernetes festgestellt, die das Konzept von Liveness- (und Readiness-) Probes und deren richtige Anwendung nicht verstehen. Daher hat er seine Gedanken in dieser pr\u00e4gnanten Notiz zusammengefasst, die im Laufe der Zeit Teil der K8s-Dokumentation werden wird.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Liveness-Probes in Kubernetes k\u00f6nnen gef\u00e4hrlich sein.\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZustandspr\u00fcfungen, die in Kubernetes als <i>liveness probes<\/i> <i>bezeichnet werden (d.h. w\u00f6rtlich \u201eLebensf\u00e4higkeitstests\u201c \u2014 Anmerkung des \u00dcbersetzers),<\/i>k\u00f6nnen sehr gef\u00e4hrlich sein. Ich empfehle, sie, wo immer m\u00f6glich, zu vermeiden: Ausnahmen sind nur F\u00e4lle, in denen sie tats\u00e4chlich notwendig sind und Sie sich der Spezifik und der Konsequenzen ihrer Nutzung vollst\u00e4ndig bewusst sind. In diesem Beitrag geht es um Liveness- und Readiness-Pr\u00fcfungen sowie darum, in welchen F\u00e4llen <i>steht<\/i> und wo es nicht ratsam ist, sie anzuwenden.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Mein Kollege Sandor hat neulich auf Twitter die h\u00e4ufigsten Fehler geteilt, die ihm begegnen, insbesondere in Bezug auf die Verwendung von Readiness- und Liveness-Probes:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175377157343907840\"><img decoding=\"async\" alt=\"Liveness-Probes in Kubernetes k\u00f6nnen gef\u00e4hrlich sein.\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Eine falsch konfigurierte <code>livenessProbe<\/code> kann die Situation bei hoher Last (lawinenartige Ausf\u00e4lle + potenziell langsamer Container-\/Anwendungsstart) versch\u00e4rfen und zu weiteren negativen Folgen wie dem Absturz von Abh\u00e4ngigkeiten f\u00fchren. <i>(siehe auch <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">meinen k\u00fcrzlich ver\u00f6ffentlichten Artikel<\/a><\/noindex> \u00fcber die Begrenzung der Anfragen in der Kombination K3s+ACME)<\/i>Noch schlimmer ist es, wenn die Liveness-Probe mit einer Abh\u00e4ngigkeitspr\u00fcfung (Health Check) kombiniert wird, bei der es sich um eine externe Datenbank handelt: <b>ein einziger DB-Ausfall wird alle Ihre Container neu starten<\/b>!<\/p>\n<p>Die Hauptaussage <i>\u201eVerwenden Sie keine Liveness-Probes\u201c<\/i> hilft in diesem Fall wenig, deshalb schauen wir uns an, wof\u00fcr Readiness- und Liveness-Checks gedacht sind. <\/p>\n<p><i>Hinweis: Der Gro\u00dfteil des folgenden Tests war urspr\u00fcnglich Teil der internen Dokumentation f\u00fcr Entwickler von Zalando.<\/i><\/p>\n<h2>Readiness- und Liveness-Checks<\/h2>\n<p>\nKubernetes bietet zwei wichtige Mechanismen, die genannt werden <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">Liveness-Probes und Readiness-Probes<\/a><\/noindex>. Sie f\u00fchren regelm\u00e4\u00dfig eine bestimmte Aktion aus \u2013 beispielsweise senden sie eine HTTP-Anfrage, \u00f6ffnen eine TCP-Verbindung oder f\u00fchren einen Befehl im Container aus \u2013, um zu best\u00e4tigen, dass die Anwendung ordnungsgem\u00e4\u00df funktioniert.<\/p>\n<p>Kubernetes nutzt ein <b>Readiness-Probes<\/b>, um zu verstehen, wann der Container bereit ist, Verkehr anzunehmen. Ein Pod wird als betriebsbereit angesehen, wenn alle seine Container einsatzbereit sind. Eine der Anwendungen dieses Mechanismus besteht darin, zu \u00fcberwachen, welche Pods als Backends f\u00fcr Kubernetes-Services (und insbesondere f\u00fcr Ingress) verwendet werden.<\/p>\n<p><b>Lebenszeichenpr\u00fcfungen<\/b> helfen Kubernetes zu erkennen, wann es Zeit ist, den Container neu zu starten. Eine solche Pr\u00fcfung kann einen Deadlock abfangen, wenn die Anwendung an einer Stelle \u201efeststeckt\u201c. Der Neustart des Containers in einem solchen Zustand hilft, die Anwendung trotz der Fehler in Bewegung zu bringen, kann jedoch auch zu kaskadierenden Fehlern f\u00fchren (siehe unten).<\/p>\n<p>Wenn Sie versuchen, ein Update der Anwendung bereitzustellen, das die Lebenszeichen-\/Bereitschaftspr\u00fcfungen nicht besteht, wird die Bereitstellung stoppt, da Kubernetes auf den Status <code>Bereit<\/code> von allen Pods.<\/p>\n<h2>Beispiel<\/h2>\n<p>\nHier ist ein Beispiel f\u00fcr eine Bereitschaftspr\u00fcfung, die den Pfad <code>\/health<\/code> \u00fcber HTTP mit den Standardeinstellungen \u00fcberpr\u00fcft (<i>interval<\/i>: 10 Sekunden, <i>timeout<\/i>: 1 Sekunde, <i>Erfolgsschwelle<\/i>: 1, <i>Fehlschlagschwelle<\/i>: 3):<\/p>\n<pre><code class=\"plaintext\"># \u0447\u0430\u0441\u0442\u044c \u043e\u0431\u0449\u0435\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f deployment'\u0430\/\u0441\u0442\u0435\u043a\u0430\npodTemplate:\n  spec:\n    containers:\n    - name: my-container\n      # ...\n      readinessProbe:\n        httpGet:\n          path: \/health\n          port: 8080<\/code><\/pre>\n<p><\/p>\n<h2>Empfehlungen<\/h2>\n<p><\/p>\n<ol>\n<li> F\u00fcr Microservices mit HTTP-Endpunkten (REST usw.) <b>definieren Sie immer eine Bereitschaftspr\u00fcfung<\/b>, die \u00fcberpr\u00fcft, ob die Anwendung (Pod) bereit ist, Verkehr zu empfangen.<\/li>\n<li> Stellen Sie sicher, dass die Bereitschaftspr\u00fcfung <b>deckt die Verf\u00fcgbarkeit des tats\u00e4chlichen Webserver-Ports ab<\/b>:\n<ul>\n<li> verwendet Ports f\u00fcr administrative Zwecke, die als \u201eadmin\u201c oder \u201emanagement\u201c bezeichnet werden (z. B. 9090), um <code>readinessProbe<\/code>, stellen Sie sicher, dass der Endpoint nur dann OK zur\u00fcckgibt, wenn der Haupt-HTTP-Port (wie 8080) bereit ist, Verkehr zu empfangen*;\n<p><i>* Mir ist mindestens ein Fall bei Zalando bekannt, in dem dies nicht der Fall war, n\u00e4mlich <code>readinessProbe<\/code> der Port \u201emanagement\u201c \u00fcberpr\u00fcft wurde, der Server jedoch aufgrund von Cache-Ladeproblemen nicht gestartet wurde.<\/i><\/li>\n<li> kann das Anbringen einer Readiness-Probe an einem separaten Port dazu f\u00fchren, dass die \u00dcberlastung am Hauptport nicht im Health Check reflektiert wird (d.h. der Thread-Pool auf dem Server ist gef\u00fcllt, der Health Check zeigt jedoch weiterhin, dass alles in Ordnung ist).<\/li>\n<\/ul>\n<\/li>\n<li> Stellen Sie sicher, dass <b>die Readiness-Probe die Datenbankinitialisierung\/Migration umfasst<\/b>;\n<ul>\n<li> der einfachste Weg, dies zu erreichen, besteht darin, den HTTP-Server nur nach Abschluss der Initialisierung anzusprechen (z. B. nach der DB-Migration mit <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> usw.); das hei\u00dft, anstatt den Status des Health Checks zu \u00e4ndern, starten Sie den Webserver einfach nicht, bis die Datenbankmigration abgeschlossen ist*.\n<p><i>* Man kann auch Datenbankmigrationen aus Init-Containern au\u00dferhalb des Pods durchf\u00fchren. Ich bin nach wie vor ein Fan von selbstst\u00e4ndigen (self-contained) Anwendungen, also solchen, in denen der Anwendungscontainer ohne externe Koordination wei\u00df, wie er die Datenbank in den gew\u00fcnschten Zustand versetzen kann.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Nutzen Sie <code>httpGet<\/code> f\u00fcr Readiness-Checks \u00fcber typische Health Check-Endpunkte (zum Beispiel, <code>\/health<\/code>).<\/li>\n<li> <b>Verstehen Sie die standardm\u00e4\u00dfig festgelegten Pr\u00fcfparameter<\/b> (<code>intervall: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> Die Standardparameter bedeuten, dass der Pod <i>nicht bereit<\/i> nach etwa 30 Sekunden (3 fehlgeschlagene Health-Checks).<\/li>\n<\/ul>\n<\/li>\n<li> Verwenden Sie einen separaten Port f\u00fcr \"Admin\" oder \"Management\", wenn der Technologie-Stack (z. B. Java\/Spring) dies zul\u00e4sst, um das Management von \"Gesundheit\" und Metriken vom regul\u00e4ren Traffic zu trennen:\n<ul>\n<li> vergessen Sie jedoch Punkt 2 nicht.<\/li>\n<\/ul>\n<\/li>\n<li> Falls erforderlich, kann die Readiness-Probe verwendet werden, um den Cache aufzuw\u00e4rmen und den Statuscode 503 zur\u00fcckzugeben, bis der Container \"aufgew\u00e4rmt\" ist:\n<ul>\n<li> ich empfehle auch, die neue \u00dcberpr\u00fcfung zu beachten, <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">die in Version 1.16 eingef\u00fchrt wurde.<\/a><\/noindex> <i>(Wir haben dar\u00fcber auf Russisch geschrieben. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">hier<\/a><\/noindex> \u2014 Anmerkung des \u00dcbersetzers).<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Warnungen<\/h2>\n<p><\/p>\n<ol>\n<li> <b>Verlassen Sie sich nicht auf externe Abh\u00e4ngigkeiten.<\/b> (wie etwa Datenspeicher) bei Tests zur Bereitschaft\/Lebensf\u00e4higkeit \u2013 dies kann zu kaskadierenden Ausf\u00e4llen f\u00fchren:\n<ul>\n<li> als Beispiel nehmen wir einen Stateful-Service REST mit 10 Pods, die von einer Postgres-Datenbank abh\u00e4ngen: Wenn die \u00dcberpr\u00fcfung von einer aktiven Verbindung zur Datenbank abh\u00e4ngt, k\u00f6nnen alle 10 Pods ausfallen, wenn es eine Verz\u00f6gerung im Netzwerk oder auf Datenbankseite gibt \u2013 in der Regel endet das alles schlimmer, als es k\u00f6nnte;<\/li>\n<li> beachten Sie, dass Spring Data standardm\u00e4\u00dfig die Verbindung zur Datenbank \u00fcberpr\u00fcft*;\n<p><i>* So verh\u00e4lt sich standardm\u00e4\u00dfig Spring Data Redis (zumindest war es so, als ich es das letzte Mal \u00fcberpr\u00fcft habe), was zu einem 'katastrophalen' Ausfall f\u00fchrte: Als Redis f\u00fcr kurze Zeit nicht verf\u00fcgbar war, sind alle Pods 'ausgefallen'.<\/i><\/li>\n<li> \u201eextern\u201c kann in diesem Sinne auch andere Pods desselben Anwendungs beziehen, d.h. idealerweise sollte die \u00dcberpr\u00fcfung nicht von dem Zustand anderer Pods im selben Cluster abh\u00e4ngen, um kaskadierende Ausf\u00e4lle zu vermeiden:\n<ul>\n<li> Die Ergebnisse k\u00f6nnen f\u00fcr Anwendungen mit verteiltem Zustand variieren (z. B. In-Memory-Caching in Pods).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>Verwenden Sie keine Liveness-Probe<\/b> f\u00fcr Pods (au\u00dfer in F\u00e4llen, in denen sie wirklich notwendig sind und Sie die Spezifikationen und Folgen ihrer Anwendung vollst\u00e4ndig verstehen):\n<ul>\n<li> Die Liveness-Probe kann dazu beitragen, \u201eh\u00e4ngende\u201c Container wiederherzustellen, aber da Sie die volle Kontrolle \u00fcber Ihre Anwendung haben, sollten Dinge wie \u201eh\u00e4ngende\u201c Prozesse und Deadlocks idealerweise nicht auftreten: die beste Alternative ist ein gezielter Absturz der Anwendung und die R\u00fcckkehr zu einem vorherigen stabilen Zustand;<\/li>\n<li> Eine fehlgeschlagene Liveness-Pr\u00fcfung f\u00fchrt zum Neustart des Containers, was potenziell die Konsequenzen von Fehlern im Zusammenhang mit der Last verst\u00e4rkt: Der Neustart des Containers f\u00fchrt zu Ausfallzeiten (zumindest f\u00fcr die Zeit, die zum Starten der Anwendung ben\u00f6tigt wird, sagen wir mehr als 30 Sekunden), verursacht neue Fehler, erh\u00f6ht die Last auf andere Container und steigert die Wahrscheinlichkeit ihres Ausfalls usw.;<\/li>\n<li> Liveness-Pr\u00fcfungen in Kombination mit externen Abh\u00e4ngigkeiten sind die schlechteste m\u00f6gliche Kombination, die mit kaskadierenden Ausf\u00e4llen droht: Ein kleiner Verz\u00f6gerung auf der DB-Seite kann dazu f\u00fchren, dass alle Ihre Container neu gestartet werden!<\/li>\n<\/ul>\n<\/li>\n<li> Die Parameter f\u00fcr Liveness- und Readiness-Pr\u00fcfungen <b>sollten unterschiedlich sein<\/b>:\n<ul>\n<li> Sie k\u00f6nnen die Liveness-Probe mit demselben Health Check verwenden, jedoch mit einem h\u00f6heren Ausl\u00f6sewert (<code>failureThreshold<\/code>), zum Beispiel den Status nach 3 Versuchen festzulegen und zu z\u00e4hlen, dass der Liveness-Probe nach 10 Versuchen fehlschl\u00e4gt; <i>nicht bereit<\/i> Verwenden Sie keine Exec-Checks<\/li>\n<\/ul>\n<\/li>\n<li> <b>, da diese bekannte Probleme mit sich bringen, die zu Zombie-Prozessen f\u00fchren:<\/b>Details: siehe\n<ul>\n<li> die Pr\u00e4sentation von Experten der Firma Datadog <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">Verwenden Sie Readiness-Probes, um festzustellen, wann Pods bereit sind, Datenverkehr zu empfangen.<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Zusammenfassung<\/h2>\n<p><\/p>\n<ul>\n<li> Verwenden Sie Liveness-Probes nur, wenn sie wirklich erforderlich sind.<\/li>\n<li> Falsche Verwendung von Readiness\/Liveness-Probes kann zu Verf\u00fcgbarkeitsproblemen und Kaskadensch\u00e4den f\u00fchren.<\/li>\n<li> Zus\u00e4tzliche Materialien zu diesem Thema<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175655221382529025\"><img decoding=\"async\" alt=\"Liveness-Probes in Kubernetes k\u00f6nnen gef\u00e4hrlich sein.\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Kubernetes-Dokumente: Liveness- und Readiness-Probes konfigurieren<\/h2>\n<p><\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">Kubernetes Liveness- und Readiness-Probes erneut betrachtet: Wie man sich nicht ins eigene Fleisch schie\u00dft<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.colinbreck.com\/kubernetes-liveness-and-readiness-probes-revisited-how-to-avoid-shooting-yourself-in-the-other-foot\/\">NRE Labs Ausfall-Post-Mortem<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">(spricht auch \u00fcber livenessProbe).<\/a><\/noindex> Aktualisierung Nr. 1 vom 2019-09-29<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u00dcber Init-Container f\u00fcr die Migration der Datenbank<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">: eine Fu\u00dfnote hinzugef\u00fcgt.<\/a><\/noindex>EJ erinnerte mich<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">an PDB: eines der Probleme von Liveness-Checks ist das Fehlen der Koordination zwischen Pods. In Kubernetes gibt es<\/a><\/noindex> zu PDB: eines der Probleme mit Liveness-Checks ist der Mangel an Koordination zwischen Pods. In Kubernetes gibt es <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> um die Anzahl der parallel m\u00f6glichen Ausf\u00e4lle, die eine Anwendung erleiden kann, zu begrenzen, jedoch ber\u00fccksichtigen die \u00dcberpr\u00fcfungen nicht das PDB. Idealerweise k\u00f6nnen wir K8s anweisen: \u201eStarte einen Pod neu, wenn seine \u00dcberpr\u00fcfung fehlschl\u00e4gt, aber starte sie nicht alle neu, um es nicht noch schlimmer zu machen.\u201c<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan hat das hervorragend formuliert<\/a><\/noindex>: \u201eVerwenden Sie Liveness-Probes, wenn Sie genau wissen, dass <b>das Beste, was man tun kann, darin besteht, die Anwendung zu \u201et\u00f6ten\u201c<\/b>\u201c (wiederum sollte man es nicht \u00fcbertreiben).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Liveness-Probes in Kubernetes k\u00f6nnen gef\u00e4hrlich sein.\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Update Nr. 2 vom 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">Bez\u00fcglich des Lesens der Dokumentation vor der Verwendung<\/a><\/noindex>: Ich habe eine entsprechende Anfrage erstellt (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">Feature-Anfrage<\/a><\/noindex>) zur Erg\u00e4nzung der Dokumentation \u00fcber Liveness-Probes.<\/p>\n<h2>P.S. vom \u00dcbersetzer<\/h2>\n<p>\nLesen Sie auch in unserem Blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: das Leben eines Pods<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">7 besten Praktiken f\u00fcr das Container-Management laut Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 Prinzipien des Container-basierten Anwendungsdesigns<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/470958\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u0435\u043c\u0443 \u043e\u043d \u0441\u043e\u0431\u0440\u0430\u043b \u0441\u0432\u043e\u0438 \u043c\u044b\u0441\u043b\u0438 \u0432 \u044d\u0442\u0443 \u0451\u043c\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 K8s. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0432 Kubernetes \u043a\u0430\u043a liveness probes (\u0442.\u0435., \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29232,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u0435\u043c\u0443 \u043e\u043d \u0441\u043e\u0431\u0440\u0430\u043b \u0441\u0432\u043e\u0438 \u043c\u044b\u0441\u043b\u0438 \u0432 \u044d\u0442\u0443 \u0451\u043c\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 K8s. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0432 Kubernetes \u043a\u0430\u043a liveness probes (\u0442.\u0435., \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Liveness probes \u0432 Kubernetes \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u0435\u043c\u0443 \u043e\u043d \u0441\u043e\u0431\u0440\u0430\u043b \u0441\u0432\u043e\u0438 \u043c\u044b\u0441\u043b\u0438 \u0432 \u044d\u0442\u0443 \u0451\u043c\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 K8s. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0432 Kubernetes \u043a\u0430\u043a liveness probes (\u0442.\u0435., \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:27:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Liveness-Probes in Kubernetes k\u00f6nnen gef\u00e4hrlich sein | ProHoster","description":"Anmerkung des \u00dcbersetzers: Henning Jacobs, Lead Engineer bei Zalando, hat mehrfach beobachtet, dass Benutzer von Kubernetes Schwierigkeiten haben, den Zweck von Liveness (und Readiness) Probes und deren korrekte Anwendung zu verstehen. Daher hat er seine Gedanken in dieser pr\u00e4gnanten Notiz zusammengefasst, die im Laufe der Zeit Teil der K8s-Dokumentation werden wird. Zustands\u00fcberpr\u00fcfungen, die in Kubernetes als Liveness-Probes bekannt sind (d.h. w\u00f6rtlich,","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Liveness probes \u0432 Kubernetes \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u044b | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0412\u0435\u0434\u0443\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Zalando \u2014 Henning Jacobs \u2014 \u043d\u0435 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0447\u0430\u043b \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Kubernetes \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f liveness (\u0438 readiness) probes \u0438 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u0435\u043c\u0443 \u043e\u043d \u0441\u043e\u0431\u0440\u0430\u043b \u0441\u0432\u043e\u0438 \u043c\u044b\u0441\u043b\u0438 \u0432 \u044d\u0442\u0443 \u0451\u043c\u043a\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0447\u0430\u0441\u0442\u044c\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 K8s. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0432 Kubernetes \u043a\u0430\u043a liveness probes (\u0442.\u0435., \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e,","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:27:03+00:00","article:modified_time":"2019-10-31T19:27:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38965","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 00:10:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:59:27","updated":"2026-01-24 00:10:22"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}