{"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\/da\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"Liveness probes i Kubernetes kan v\u00e6re farlige","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Bem. overs.<\/b>: Leading engineer from Zalando \u2014 Henning Jacobs \u2014 has repeatedly noticed issues among Kubernetes users regarding the understanding of the purpose of liveness (and readiness) probes and their correct application. Therefore, he has compiled his thoughts into this concise note, which will become part of the K8s documentation over time.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Liveness probes i Kubernetes kan v\u00e6re farlige\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHealth checks, known in Kubernetes as <i>liveness probes<\/i> <i>(i.e., literally, \u201cvitality tests\u201d \u2014 ed. note)<\/i>, can be quite dangerous. I recommend avoiding them whenever possible: exceptions are only cases where they are truly necessary and you fully understand the specifics and consequences of their use. This publication will discuss liveness and readiness checks, as well as situations in which <i>st\u00e5r<\/i> and when not to apply them.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Min kollega Sandor delte for nylig p\u00e5 Twitter de mest almindelige fejl, han st\u00f8der p\u00e5, herunder dem relateret til brugen af readiness\/liveness probes:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175377157343907840\"><img decoding=\"async\" alt=\"Liveness probes i Kubernetes kan v\u00e6re farlige\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>A misconfigured <code>livenessProbe<\/code> can aggravate situations with high load (avalanche shutdown + potentially long container\/application startup) and lead to other negative consequences such as crashing dependencies <i>(see also <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">my recent article<\/a><\/noindex> on rate limiting in conjunction with K3s+ACME)<\/i>. Endnu v\u00e6rre er det, n\u00e5r liveness probe kombineres med en afh\u00e6ngighedshelsecheck (health check), som er en ekstern database: <b>a single database failure will restart all your containers<\/b>!<\/p>\n<p>The general message <i>\u201cDo not use liveness probes\u201d<\/i> in this case helps little, so let\u2019s consider the purpose of readiness and liveness checks. <\/p>\n<p><i>Note: much of the test provided below was originally included in the internal documentation for Zalando developers.<\/i><\/p>\n<h2>Readiness and Liveness Checks<\/h2>\n<p>\nKubernetes provides two important mechanisms called <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness probes and readiness probes<\/a><\/noindex>. They periodically perform some action \u2014 for example, send an HTTP request, open a TCP connection, or execute a command in the container \u2014 to confirm that the application is functioning properly.<\/p>\n<p>Kubernetes uses <b>readiness probes<\/b>, for at forst\u00e5 hvorn\u00e5r en container er klar til at modtage trafik. En Pod anses for at v\u00e6re klar, hvis alle dens containere er klar. En af anvendelserne af denne mekanisme er at kontrollere, hvilke pods der bruges som backends for Kubernetes-tjenester (og is\u00e6r Ingress).<\/p>\n<p><b>Liveness probes<\/b> hj\u00e6lper Kubernetes med at forst\u00e5, hvorn\u00e5r det er tid til at genstarte en container. For eksempel g\u00f8r en s\u00e5dan kontrol det muligt at opfange deadlocks, n\u00e5r en applikation \"sidder fast\". Genstart af containeren i en s\u00e5dan tilstand hj\u00e6lper med at f\u00e5 applikationen i gang igen, p\u00e5 trods af fejl, men det kan ogs\u00e5 f\u00f8re til kaskadefejl (se nedenfor).<\/p>\n<p>Hvis du fors\u00f8ger at udrulle en opdatering af applikationen, der fejler liveness\/readiness-tjek, vil udrulningen stoppe, da Kubernetes venter p\u00e5 status <code>Klar<\/code> af alle pods.<\/p>\n<h2>Eksempel<\/h2>\n<p>\nHer er et eksempel p\u00e5 en readiness probe, der kontrollerer stien <code>\/health<\/code> via HTTP med standardindstillinger (<i>interval<\/i>: 10 sekunder, <i>timeout<\/i>: 1 sekund, <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>Anbefalinger<\/h2>\n<p><\/p>\n<ol>\n<li> For mikrotjenester med HTTP-endpoint (REST osv.) <b>skal du altid definere en readiness probe<\/b>, der kontrollerer, om applikationen (pod) er klar til at modtage trafik.<\/li>\n<li> S\u00f8rg for, at readiness probe <b>d\u00e6kker klarheden af den faktiske webserverport<\/b>:\n<ul>\n<li> ved at bruge porte til administrative form\u00e5l, kaldet \"admin\" eller \"management\" (f.eks. 9090), for <code>readinessProbe<\/code>, skal du sikre dig, at endpointet kun returnerer OK, hvis den prim\u00e6re HTTP-port (f.eks. 8080) er klar til at modtage trafik*;\n<p><i>* Jeg er bekendt med mindst et tilf\u00e6lde i Zalando, hvor dette ikke skete, dvs. <code>readinessProbe<\/code> kontrollerede porten \"management\", men selve serveren fungerede ikke p\u00e5 grund af problemer med indl\u00e6sning af cachen.<\/i><\/li>\n<li> kan det at tilf\u00f8je readiness probe til en separat port medf\u00f8re, at belastningen p\u00e5 hovedporten ikke afspejles i helsechecken (det vil sige, at serverens tr\u00e5dpool er fyldt, men helsechecken viser stadig, at alt er i orden).<\/li>\n<\/ul>\n<\/li>\n<li> S\u00f8rg for, at <b>readiness probe inkluderer initialisering\/migrering af databasen<\/b>;\n<ul>\n<li> den nemmeste m\u00e5de at opn\u00e5 dette p\u00e5 er at kontakte HTTP-serveren f\u00f8rst efter afslutningen af initialiseringen (f.eks. database-migrering med <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> osv.); det vil sige, i stedet for at \u00e6ndre status for helsechecken, skal du blot undg\u00e5 at starte webserveren, indtil database-migreringen er afsluttet*.\n<p><i>* Det er ogs\u00e5 muligt at k\u00f8re database-migreringer fra init-containere uden for pod'en. Jeg er stadig fan af selvst\u00e6ndige applikationer, det vil sige s\u00e5danne, hvor containeren for applikationen ved uden ekstern koordinering, hvordan man bringer databasen i den \u00f8nskede tilstand.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Brug <code>httpGet<\/code> til readiness-checks via typiske helsecheck-endpoint (for eksempel, <code>\/health<\/code>).<\/li>\n<li> <b>S\u00e6t dig ind i de standardindstillinger, der er angivet for tjek<\/b> (<code>interval: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> de standardindstillinger betyder, at pod'en vil blive <i>not-ready<\/i> efter cirka 30 sekunder (3 mislykkedes sundhedstjek).<\/li>\n<\/ul>\n<\/li>\n<li> Brug en separat port til \"admin\" eller \"management\", hvis teknologi-stakken (for eksempel, Java\/Spring) tillader det, for at adskille \"sundhed\"-styring og metrics fra almindelig trafik:\n<ul>\n<li> men glem ikke punkt 2.<\/li>\n<\/ul>\n<\/li>\n<li> Hvis n\u00f8dvendigt, kan readiness probe anvendes til opvarmning\/l\u00e6sning af cache og returnere statuskode 503, indtil containeren er \"opvarmet\":\n<ul>\n<li> jeg anbefaler ogs\u00e5 at se p\u00e5 den nye tjek <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">der blev introduceret i version 1.16<\/a><\/noindex> <i>(vi skrev om det p\u00e5 russisk <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">her<\/a><\/noindex> \u2014 red. anm.)<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Advarsler<\/h2>\n<p><\/p>\n<ol>\n<li> <b>Stol ikke p\u00e5 eksterne afh\u00e6ngigheder<\/b> (s\u00e5som datalagre) n\u00e5r du udf\u00f8rer readiness\/liveness tests \u2014 det kan f\u00f8re til kaskadefejl:\n<ul>\n<li> lad os tage et eksempel med en stateful REST-tjeneste med 10 pods, der afh\u00e6nger af en Postgres-database: n\u00e5r checken afh\u00e6nger af en aktiv forbindelse til databasen, kan alle 10 pods falde, hvis der opst\u00e5r forsinkelse i netv\u00e6rket\/p\u00e5 databasesiden \u2014 normalt ender det hele v\u00e6rre, end det kunne have gjort;<\/li>\n<li> v\u00e6r opm\u00e6rksom p\u00e5, at Spring Data som standard tjekker databaseforbindelsen*;\n<p><i>* S\u00e5dan er standardadf\u00e6rden for Spring Data Redis (i det mindste var den s\u00e5dan, da jeg tjekkede sidst), hvilket f\u00f8rte til en 'katastrofal' nedbrud: da Redis kortvarigt var utilg\u00e6ngelig, 'faldt' alle pods.<\/i><\/li>\n<li> \u2018ekstern\u2019 i denne forstand kan ogs\u00e5 betyde andre pods fra den samme applikation, hvilket betyder, at kontrollen ideelt set ikke b\u00f8r afh\u00e6nge af tilstanden p\u00e5 andre pods i den samme klynge for at forhindre kaskadekollaps:\n<ul>\n<li> resultaterne kan variere for applikationer med distribueret tilstand (for eksempel in-memory caching i pods).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>Brug ikke liveness probe<\/b> for pods (exceptions are cases where they are genuinely necessary and you fully understand the specifics and consequences of their application):\n<ul>\n<li> the liveness probe can help recover 'stuck' containers, but since you have full control over your application, such issues as 'stuck' processes and deadlocks ideally should not occur: the best alternative is to intentionally crash the application and return it to a previous stable state;<\/li>\n<li> a failed liveness probe will cause the container to restart, potentially exacerbating errors associated with loading: restarting the container will lead to downtime (at least while the application launches, say, for more than 30 seconds), causing new failures, increasing the load on other containers and raising the likelihood of their failure, etc.;<\/li>\n<li> liveness checks combined with external dependencies are the worst possible combination, threatening cascading failures: a slight delay on the DB side will cause all your containers to restart!<\/li>\n<\/ul>\n<\/li>\n<li> The parameters for liveness and readiness checks <b>must be different<\/b>:\n<ul>\n<li> you can use the liveness probe with the same health check but with a higher trigger threshold (<code>failureThreshold<\/code>), for example, assign a status <i>not-ready<\/i> after 3 attempts and consider the liveness probe failed after 10 attempts;<\/li>\n<\/ul>\n<\/li>\n<li> <b>Do not use exec checks<\/b>, as they are associated with known issues that lead to zombie processes:\n<ul>\n<li> details: see <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">Datadog's specialists' presentation<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>CV<\/h2>\n<p><\/p>\n<ul>\n<li> Use readiness probes to determine when a pod is ready to accept traffic.<\/li>\n<li> Use liveness probes only when they are truly necessary.<\/li>\n<li> Incorrect use of readiness\/liveness probes can lead to decreased availability and cascading failures.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175655221382529025\"><img decoding=\"async\" alt=\"Liveness probes i Kubernetes kan v\u00e6re farlige\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Additional resources on the topic<\/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: Configure Liveness and 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 and Readiness Probes Revisited: How to Avoid Shooting Yourself in the Other Foot<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">NRE Labs Outage Post-Mortem<\/a><\/noindex> (also discusses livenessProbe).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Update #1 from 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">About init containers for DB migration<\/a><\/noindex>: a footnote has been added.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ reminded me<\/a><\/noindex> about PDB: one of the issues with liveness checks is the lack of coordination between pods. In Kubernetes, there is <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> for at begr\u00e6nse antallet af parallelle fejl, som en applikation kan opleve, men tjekningerne tager ikke h\u00f8jde for PDB. Ideelt set kan vi instruere K8s: \u201eGenstart \u00e9n pod, hvis dens kontrol mislykkes, men genstart ikke alle, s\u00e5 det ikke bliver v\u00e6rre.\u201d<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan formulerede det perfekt<\/a><\/noindex>: \u201eBrug liveness probes, n\u00e5r du ved, at <b>det bedste, du kan g\u00f8re, er at \u201edr\u00e6be\u201d applikationen<\/b>\u201d (men lad os ikke overdrive).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Liveness probes i Kubernetes kan v\u00e6re farlige\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Opdatering #2 fra 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">Hvad ang\u00e5r at l\u00e6se dokumentationen f\u00f8r brug<\/a><\/noindex>: jeg har oprettet en relevant anmodning (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">feature request<\/a><\/noindex>) om at tilf\u00f8je dokumentationen om liveness probes.<\/p>\n<h2>P.S. fra overs\u00e6tteren<\/h2>\n<p>\nL\u00e6s ogs\u00e5 p\u00e5 vores blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: livscyklus for pod<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">7 bedste praksisser for containerdrift if\u00f8lge Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 designprincipper for containerbaserede applikationer<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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 i Kubernetes kan v\u00e6re farlige | ProHoster","description":"Overs\u00e6tt. bem.: Senioringeni\u00f8ren fra Zalando \u2014 Henning Jacobs \u2014 har flere gange bem\u00e6rket, at brugere af Kubernetes har problemer med at forst\u00e5 form\u00e5let med liveness (og readiness) probes og deres korrekte anvendelse.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/38965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}