{"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\/nl\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"Liveness probes in Kubernetes kunnen gevaarlijk zijn","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Opmerking vertaler.<\/b>: De leidende ingenieur van Zalando, Henning Jacobs, heeft herhaaldelijk opgemerkt dat gebruikers van Kubernetes problemen hebben met het begrijpen van de functie en het juiste gebruik van liveness (en readiness) probes. Daarom heeft hij zijn gedachten samengebracht in deze beknopte notitie, die in de loop van de tijd deel zal uitmaken van de K8s-documentatie.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Liveness probes in Kubernetes kunnen gevaarlijk zijn\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStatuscontroles, bekend in Kubernetes als <i>liveness probes<\/i> <i>(dat wil zeggen, letterlijk, 'levensvatbaarheidsproeven' - opmerking vertaler)<\/i>, kunnen behoorlijk gevaarlijk zijn. Ik raad aan om ze indien mogelijk te vermijden: uitzonderingen zijn alleen situaties waarin ze echt nodig zijn en je volledig bewust bent van de specificiteit en consequenties van hun gebruik. In deze publicatie zullen we het hebben over liveness- en readiness-checks, en wanneer <i>het<\/i> niet aan te raden is ze toe te passen.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Mijn collega Sandor deelde onlangs op Twitter de meest voorkomende fouten die hij tegenkomt, waaronder fouten met betrekking tot het gebruik van readiness\/liveness probes:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175377157343907840\"><img decoding=\"async\" alt=\"Liveness probes in Kubernetes kunnen gevaarlijk zijn\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Onjuist geconfigureerde <code>livenessProbe<\/code> kan situaties met hoge belasting verergeren (een lawine van instellingen die uitvallen + een potentieel langdurige opstarttijd van de container\/toepassing) en leiden tot andere negatieve gevolgen, zoals het falen van afhankelijkheden. <i>(zie ook <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">mijn recente artikel<\/a><\/noindex> over het beperken van het aantal verzoeken in de combinatie K3s+ACME)<\/i>. Het wordt nog erger wanneer de liveness probe wordt gecombineerd met een health check, waarbij een externe database als afhankelijkheid fungeert: <b>een enkele databasefout zal al je containers opnieuw opstarten.<\/b>!<\/p>\n<p>De algemene boodschap <i>\"Gebruik geen liveness probes\"<\/i> helpt in dit geval niet veel, dus laten we bekijken waarvoor readiness- en liveness-checks bedoeld zijn. <\/p>\n<p><i>Opmerking: het grootste deel van de onderstaande test was oorspronkelijk opgenomen in de interne documentatie voor ontwikkelaars bij Zalando.<\/i><\/p>\n<h2>Readiness- en Liveness-checks<\/h2>\n<p>\nKubernetes biedt twee belangrijke mechanismen, genaamd <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness probes en readiness probes<\/a><\/noindex>. Ze voeren periodiek een bepaalde actie uit - bijvoorbeeld het verzenden van een HTTP-verzoek, het openen van een TCP-verbinding of het uitvoeren van een opdracht in de container - om te bevestigen dat de toepassing goed functioneert.<\/p>\n<p>Kubernetes gebruikt <b>readiness probes<\/b>, om te begrijpen wanneer de container klaar is om verkeer te ontvangen. Een pod wordt als ready beschouwd wanneer al zijn containers klaar zijn. Een van de toepassingen van dit mechanisme is om te controleren welke pods worden gebruikt als backends voor Kubernetes-services (en met name voor Ingress).<\/p>\n<p><b>Liveness probes<\/b> helpen Kubernetes te begrijpen wanneer het tijd is om de container opnieuw op te starten. Bijvoorbeeld, zo'n controle kan een deadlock opvangen wanneer een toepassing 'vastzit'. Het herstarten van een container in een dergelijke toestand helpt de toepassing vooruit te duwen, ondanks fouten, maar kan ook leiden tot cascadefouten (zie hieronder).<\/p>\n<p>Als je probeert een update van de toepassing uit te rollen die faalt in de liveness\/readiness checks, zal de uitrol vastlopen omdat Kubernetes op de status wacht <code>Klaar<\/code> van alle pods.<\/p>\n<h2>Voorbeeld<\/h2>\n<p>\nHier is een voorbeeld van een readiness probe die het pad controleert <code>\/health<\/code> via HTTP met de standaardinstellingen (<i>interval<\/i>: 10 seconden, <i>timeout<\/i>: 1 seconde, <i>success threshold<\/i>: 1, <i>failure threshold<\/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>Aanbevelingen<\/h2>\n<p><\/p>\n<ol>\n<li> Voor microservices met een HTTP-endpoint (REST enz.) <b>bepaal altijd een readiness probe<\/b>, die controleert of de toepassing (pod) klaar is om verkeer te ontvangen.<\/li>\n<li> Zorg ervoor dat de readiness probe <b>de beschikbaarheid van de feitelijke webserverpoort dekt<\/b>:\n<ul>\n<li> door poorten voor administratieve doeleinden te gebruiken, genaamd 'admin' of 'management' (bijvoorbeeld 9090), voor <code>readinessProbe<\/code>, zorg ervoor dat het eindpunt alleen OK retourneert als de primaire HTTP-poort (zoals 8080) klaar is om verkeer te accepteren*;\n<p><i>* Ik weet in ieder geval van een geval bij Zalando waar dit niet gebeurde, namelijk <code>readinessProbe<\/code> de 'management'-poort werd gecontroleerd, maar de server zelf startte nog steeds niet op vanwege problemen met het cachen van bestanden.<\/i><\/li>\n<li> kan het toekennen van een readiness probe aan een aparte poort ertoe leiden dat de belasting op de hoofdpoort niet wordt weerspiegeld in de health check (dat wil zeggen, de threadpool op de server is vol, maar de health check toont nog steeds aan dat alles in orde is).<\/li>\n<\/ul>\n<\/li>\n<li> Zorg ervoor dat <b>de readiness probe omvat database-initialisatie\/migratie<\/b>;\n<ul>\n<li> de eenvoudigste manier om dit te bereiken is om de HTTP-server pas aan te roepen nadat de initialisatie is voltooid (bijvoorbeeld de database-migratie met <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> enz.); dat wil zeggen in plaats van de status van de health check te veranderen, start je gewoon de webserver niet op totdat de database-migratie is voltooid*.\n<p><i>* Database-migraties kunnen ook worden uitgevoerd vanuit init-containers buiten de pod. Ik ben nog steeds een voorstander van self-contained applicaties, dat wil zeggen applicaties waarbij de applicatiecontainer zonder externe co\u00f6rdinatie weet hoe de database in de juiste staat te brengen.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Gebruik <code>httpGet<\/code> voor readiness checks via typische health check endpoints (bijvoorbeeld, <code>\/health<\/code>).<\/li>\n<li> <b>Verken de standaardparameters van de controles<\/b> (<code>interval: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> de standaardparameters betekenen dat de pod <i>not-ready<\/i> ongeveer 30 seconden later zal zijn (na 3 mislukte gezondheidschecks).<\/li>\n<\/ul>\n<\/li>\n<li> Gebruik een aparte poort voor \"admin\" of \"management\", als de technologie-stack (bijvoorbeeld Java\/Spring) dit toelaat, om het beheer van de \"gezondheid\" en statistieken te scheiden van normaal verkeer:\n<ul>\n<li> maar vergeet punt 2 niet.<\/li>\n<\/ul>\n<\/li>\n<li> Indien nodig kan de readiness probe worden gebruikt voor het opwarmen\/laden van de cache en de statuscode 503 retourneren, terwijl de container nog niet is \"opgewarmd\":\n<ul>\n<li> ik raad ook aan om de nieuwe controle <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">te bekijken, die is ge\u00efntroduceerd in versie 1.16<\/a><\/noindex> <i>(we schreven erover in het Russisch <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">hier<\/a><\/noindex> \u2013 opmerking vert.)<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Waarschuwingen<\/h2>\n<p><\/p>\n<ol>\n<li> <b>Vertrouw niet op externe afhankelijkheden<\/b> (zoals dataletsels) bij het uitvoeren van readiness\/liveness-tests \u2014 dit kan leiden tot cascade-fouten:\n<ul>\n<li> als voorbeeld nemen we een stateful REST-service met 10 pods die afhankelijk zijn van een enkele Postgres-database: wanneer de check afhankelijk is van een werkende databaseverbinding, kunnen alle 10 pods uitvallen als er een vertraging in het netwerk\/aan de databasezijde optreedt \u2014 meestal eindigt dit veel slechter dan het zou kunnen;<\/li>\n<li> let op dat Spring Data standaard de verbinding met de database controleert*;\n<p><i>* Dit is het standaardgedrag van Spring Data Redis (voor zover ik kan herinneren, was het zo toen ik het laatst controleerde), wat leidde tot een 'catastrofale' uitval: wanneer Redis kortstondig niet beschikbaar was, vielen alle pods uit.<\/i><\/li>\n<li> \u2018extern\u2019 kan in deze zin ook andere pods van dezelfde applicatie betekenen, wat betekent dat de check idealiter niet afhankelijk moet zijn van de status van andere pods in dezelfde cluster om cascaderende uitval te voorkomen:\n<ul>\n<li> de resultaten kunnen vari\u00ebren voor applicaties met een gedistribueerde status (bijvoorbeeld in-memory caching in pods).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>Gebruik de liveness probe niet<\/b> voor pods (met uitzondering van gevallen waarin ze echt noodzakelijk zijn en je de specificiteit en gevolgen van hun gebruik volledig begrijpt):\n<ul>\n<li> liveness probe kan helpen om 'vastgelopen' containers te herstellen, maar aangezien je volledige controle hebt over je applicatie, zouden zaken zoals 'vastgelopen' processen en deadlocks idealiter niet moeten voorkomen: de betere oplossing is opzettelijk de applicatie te laten crashen en deze terug te brengen naar een eerdere stabiele staat;<\/li>\n<li> Een mislukte liveness probe leidt tot een herstart van de container, wat de gevolgen van fouten die samenhangen met de belasting potentieel verergert: een herstart van de container leidt tot downtime (ten minste tijdens de opstarttijd van de applicatie, laten we zeggen, meer dan 30 seconden), waardoor nieuwe fouten worden veroorzaakt, de belasting van andere containers toeneemt en de kans op hun falen groter wordt, enzovoort;<\/li>\n<li> Liveness checks in combinatie met een externe afhankelijkheid zijn de slechtste mogelijke combinatie, wat kan leiden tot cascade-falen: een kleine vertraging aan de databasezijde kan leiden tot een herstart van al uw containers!<\/li>\n<\/ul>\n<\/li>\n<li> De parameters van liveness- en readiness-checks <b>moeten verschillend zijn<\/b>:\n<ul>\n<li> je kunt liveness probe gebruiken met dezelfde health check, maar met een hogere drempelwaarde (<code>failureThreshold<\/code>), bijvoorbeeld door de status toe te wijzen <i>not-ready<\/i> na 3 pogingen en te beschouwen dat de liveness probe is mislukt na 10 pogingen;<\/li>\n<\/ul>\n<\/li>\n<li> <b>Gebruik geen exec-checks<\/b>, omdat deze bekende problemen met zich meebrengen die leiden tot zombieprocessen:\n<ul>\n<li> details: zie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">de presentatie van experts van Datadog<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Samenvatting<\/h2>\n<p><\/p>\n<ul>\n<li> Gebruik readiness probes om te bepalen wanneer de pod klaar is om verkeer te ontvangen.<\/li>\n<li> Gebruik liveness probes alleen wanneer ze echt nodig zijn.<\/li>\n<li> Onjuist gebruik van readiness\/liveness probes kan leiden tot verminderde beschikbaarheid en cascade-falen.<\/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 kunnen gevaarlijk zijn\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Aanvullend materiaal over het onderwerp<\/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 docs: Configureer Liveness en Readiness Probes<\/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\/\">Kubernetes Liveness en Readiness Probes Herbekeken: Hoe jezelf niet in de voet te schieten<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">NRE Labs Uitval Post-Mortem<\/a><\/noindex> (dat ook over livenessProbe spreekt).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Update #1 van 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">Over init-containers voor database-migratie<\/a><\/noindex>: een voetnoot toegevoegd.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ herinnerde me<\/a><\/noindex> over PDB: een van de problemen van liveness checks is het gebrek aan co\u00f6rdinatie tussen pods. In Kubernetes zijn er <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> om het aantal gelijktijdige uitvallen dat een applicatie kan ervaren te beperken, maar de checks houden geen rekening met PDB. Idealiter kunnen we K8s opdracht geven: 'Herstart \u00e9\u00e9n pod als zijn check faalt, maar herstart ze niet allemaal om het niet nog erger te maken'.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan verwoorde het uitstekend<\/a><\/noindex>: \u00abGebruik liveness probing wanneer je zeker weet dat <b>het beste wat je kunt doen, is de applicatie 'doden'<\/b>\u00bb (wees opnieuw voorzichtig met overdrijven).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Liveness probes in Kubernetes kunnen gevaarlijk zijn\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Update #2 van 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">Wat betreft het lezen van de documentatie voor gebruik<\/a><\/noindex>: ik heb een bijbehorend verzoek aangemaakt (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">feature request<\/a><\/noindex>) om de documentatie over liveness probes uit te breiden.<\/p>\n<h2>P.S. van de vertaler<\/h2>\n<p>\nLees ook op onze blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: de levensduur van een pod<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">7 beste praktijken voor containerbeheer volgens Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 ontwerpprincipes voor container-gebaseerde applicaties<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Bron: <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 5.0.3 - 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.\" \/>\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\/nl\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/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 kunnen gevaarlijk zijn | ProHoster","description":"Opmerking van de vertaler: Hoofdingenieur van Zalando, Henning Jacobs, heeft herhaaldelijk opgemerkt dat gebruikers van Kubernetes problemen hebben met het begrijpen van de functie van liveness (en readiness) probes en hun correcte toepassing.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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.","og:url":"https:\/\/prohoster.info\/nl\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/38965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}