{"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\/sv\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"Liveness probes i Kubernetes kan vara farliga","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Obs. \u00f6vers.<\/b>: Ledande ingenj\u00f6r p\u00e5 Zalando \u2014 Henning Jacobs \u2014 har flera g\u00e5nger noterat att anv\u00e4ndare av Kubernetes har problem med att f\u00f6rst\u00e5 syftet med liveness (och readiness) probes och hur de ska anv\u00e4ndas korrekt. D\u00e4rf\u00f6r har han samlat sina tankar i denna korta anteckning, som med tiden kommer att bli en del av K8s-dokumentationen.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Liveness probes i Kubernetes kan vara farliga\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe tillst\u00e5ndskontroller som i Kubernetes kallas <i>liveness probes<\/i> <i>(dvs. bokstavligen \"livskrafttester\" \u2014 obs. \u00f6vers.)<\/i>, kan vara bastante farliga. Jag rekommenderar att undvika dem om m\u00f6jligt: undantagen \u00e4r endast fall d\u00e4r de verkligen \u00e4r n\u00f6dv\u00e4ndiga och d\u00e4r du fullt ut f\u00f6rst\u00e5r specifiken och konsekvenserna av deras anv\u00e4ndning. Denna publikation kommer att handla om liveness- och readiness-kontroller, och det kommer att diskuteras i vilka fall <i>befinner sig<\/i> och inte ska till\u00e4mpas.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Min kollega Sandor delade nyligen p\u00e5 Twitter de vanligaste misstagen han st\u00f6ter p\u00e5, inklusive de som r\u00f6r anv\u00e4ndningen av 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 vara farliga\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Felaktigt konfigurerad <code>livenessProbe<\/code> kan f\u00f6rv\u00e4rra situationer med h\u00f6g belastning (sn\u00f6bollseffekt + potentiellt l\u00e5ng start av container\/applikation) och leda till andra negativa konsekvenser som att beroenden faller <i>(se \u00e4ven <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">min senaste artikel<\/a><\/noindex> om att begr\u00e4nsa antalet f\u00f6rfr\u00e5gningar i kombinationen K3s+ACME)<\/i>. \u00c4nnu v\u00e4rre \u00e4r det n\u00e4r liveness probe kombineras med en h\u00e4lsokontroll d\u00e4r en extern databas agerar beroende: <b>ett enda databasfel kommer att \u00e5terstarta alla era containrar<\/b>!<\/p>\n<p>Det \u00f6vergripande budskapet <i>\"Anv\u00e4nd inte liveness probes\"<\/i> \u00e4r i detta fall inte till stor hj\u00e4lp, s\u00e5 l\u00e5t oss titta p\u00e5 vad syftet med readiness- och liveness-kontroller \u00e4r. <\/p>\n<p><i>Obs: St\u00f6rsta delen av testet nedan var ursprungligen inkluderat i den interna dokumentationen f\u00f6r utvecklare p\u00e5 Zalando.<\/i><\/p>\n<h2>Readiness och Liveness-kontroller<\/h2>\n<p>\nKubernetes erbjuder tv\u00e5 viktiga mekanismer som kallas <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness probes och readiness probes<\/a><\/noindex>. De utf\u00f6r regelbundet en \u00e5tg\u00e4rd \u2014 till exempel skickar en HTTP-f\u00f6rfr\u00e5gan, \u00f6ppnar en TCP-anslutning eller k\u00f6r ett kommando i containern \u2014 f\u00f6r att bekr\u00e4fta att applikationen fungerar korrekt.<\/p>\n<p>Kubernetes anv\u00e4nder <b>readiness probes<\/b>, f\u00f6r att f\u00f6rst\u00e5 n\u00e4r containern \u00e4r redo att ta emot trafik. En Pod anses vara redo att arbeta om alla dess containrar \u00e4r redo. En av till\u00e4mpningarna av denna mekanism \u00e4r att \u00f6vervaka vilka pods som anv\u00e4nds som backend f\u00f6r Kubernetes-tj\u00e4nster (och s\u00e4rskilt Ingress):<\/p>\n<p><b>Livlighetsp\u00e5st\u00e5enden<\/b> hj\u00e4lper Kubernetes att f\u00f6rst\u00e5 n\u00e4r det \u00e4r dags att starta om en container. Till exempel kan en s\u00e5dan kontroll f\u00e5nga ett deadlock, n\u00e4r applikationen \"fastnar\" p\u00e5 en plats. Att starta om containern i ett s\u00e5dant tillst\u00e5nd hj\u00e4lper till att f\u00e5 applikationen i r\u00f6relse igen, trots fel, men det kan ocks\u00e5 leda till kaskadeffekter (se nedan).<\/p>\n<p>Om du f\u00f6rs\u00f6ker drifts\u00e4tta en applikationsuppdatering som misslyckas med livlighets-\/beredskapskontroller, kommer drifts\u00e4ttningen att stanna, eftersom Kubernetes v\u00e4ntar p\u00e5 status <code>Redo<\/code> av alla pods.<\/p>\n<h2>Exempel<\/h2>\n<p>\nH\u00e4r \u00e4r ett exempel p\u00e5 en beredskapskontroll som kontrollerar v\u00e4gen <code>\/health<\/code> via HTTP med standardinst\u00e4llningar (<i>intervall<\/i>: 10 sekunder, <i>timeout<\/i>: 1 sekund, <i>framg\u00e5ngstr\u00f6skel<\/i>: 1, <i>misslyckandetr\u00f6skel<\/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>Rekommendationer<\/h2>\n<p><\/p>\n<ol>\n<li> F\u00f6r mikrotj\u00e4nster med HTTP-endpoint (REST osv.) <b>definiera alltid en beredskapskontroll<\/b>, som kontrollerar om applikationen (pod) \u00e4r redo att ta emot trafik.<\/li>\n<li> Se till att beredskapskontrollen <b>t\u00e4ckar beredskapen hos den faktiska webbserverporten<\/b>:\n<ul>\n<li> anv\u00e4nder portar f\u00f6r administrativa \u00e4ndam\u00e5l, kallade \"admin\" eller \"management\" (t.ex. 9090), f\u00f6r <code>beredskapskontroll<\/code>, se till att endpointen returnerar OK endast om den prim\u00e4ra HTTP-porten (som 8080) \u00e4r redo att ta emot trafik*;\n<p><i>* Jag vet \u00e5tminstone om ett fall p\u00e5 Zalando d\u00e4r detta inte skedde, det vill s\u00e4ga <code>beredskapskontroll<\/code> kontrollerade \"management\"-porten, men servern startade aldrig p\u00e5 grund av problem med cache-laddningen.<\/i><\/li>\n<li> kan till\u00e4mpningen av readiness probe p\u00e5 en separat port leda till att belastningen p\u00e5 huvudporten inte \u00e5terspeglas i h\u00e4lsokontrollen (det vill s\u00e4ga att tr\u00e5dpoolen p\u00e5 servern \u00e4r full, men h\u00e4lsokontrollen visar fortfarande att allt \u00e4r okej).<\/li>\n<\/ul>\n<\/li>\n<li> Se till att <b>beredskapskontrollen inkluderar initiering\/migrering av databasen<\/b>;\n<ul>\n<li> det enklaste s\u00e4ttet att uppn\u00e5 detta \u00e4r att bara g\u00f6ra HTTP-anrop efter att initieringen har slutf\u00f6rts (t.ex. databas-migrering med <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> och s\u00e5 vidare); det vill s\u00e4ga ist\u00e4llet f\u00f6r att \u00e4ndra statusen p\u00e5 h\u00e4lsokontrollen, starta helt enkelt inte webbservern f\u00f6rr\u00e4n databasens migration \u00e4r klar*.\n<p><i>* Migrationer av databasen kan ocks\u00e5 startas fr\u00e5n init-containrar utanf\u00f6r podden. Jag \u00e4r fortsatt en anh\u00e4ngare av sj\u00e4lvst\u00e4ndiga (self-contained) applikationer, det vill s\u00e4ga s\u00e5dana d\u00e4r applikationens container utan extern koordinering vet hur man s\u00e4tter databasen i r\u00e4tt tillst\u00e5nd.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Anv\u00e4nd <code>httpGet<\/code> f\u00f6r readiness-kontroller via typiska h\u00e4lsokontrollse-endpoint (till exempel, <code>\/health<\/code>).<\/li>\n<li> <b>F\u00f6rst\u00e5 standardinst\u00e4llningarna f\u00f6r kontrollerna<\/b> (<code>interval: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> standardinst\u00e4llningarna inneb\u00e4r att podden kommer att bli <i>not-ready<\/i> ungef\u00e4r efter 30 sekunder (3 misslyckade h\u00e4lsokontroller).<\/li>\n<\/ul>\n<\/li>\n<li> Anv\u00e4nd en separat port f\u00f6r \"admin\" eller \"management\", om teknikstacken (till exempel, Java\/Spring) till\u00e5ter det, f\u00f6r att separera \"h\u00e4lsosam\" och metrics fr\u00e5n vanlig trafik:\n<ul>\n<li> men gl\u00f6m inte punkt 2.<\/li>\n<\/ul>\n<\/li>\n<li> Om n\u00f6dv\u00e4ndigt kan readiness probe anv\u00e4ndas f\u00f6r att f\u00f6rv\u00e4rma\/ladda cachen och returnera statuskod 503, tills containern \u00e4r \"f\u00e4rdig\":\n<ul>\n<li> Jag rekommenderar ocks\u00e5 att bekanta sig med den nya kontrollen <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">som introducerades i version 1.16<\/a><\/noindex> <i>(vi skrev om den p\u00e5 ryska <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">h\u00e4r<\/a><\/noindex> \u2014 anm. red.)<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Varningar<\/h2>\n<p><\/p>\n<ol>\n<li> <b>Lita inte p\u00e5 externa beroenden<\/b> (s\u00e5som datalagringssystem) vid utf\u00f6rande av readiness\/liveness tester \u2013 detta kan leda till kaskadfel:\n<ul>\n<li> som ett exempel kan vi ta en stateful-tj\u00e4nst REST med 10 pods som \u00e4r beroende av en enda Postgres-databas: n\u00e4r kontrollen \u00e4r beroende av en fungerande anslutning till databasen kan alla 10 pods krascha om det uppst\u00e5r en f\u00f6rdr\u00f6jning i n\u00e4tverket\/vid databasen \u2014 vanligtvis avslutas allt detta s\u00e4mre \u00e4n vad det skulle kunna;<\/li>\n<li> Notera att Spring Data som standard kontrollerar databasanslutningen*;\n<p><i>* S\u00e5 fungerade det som standard i Spring Data Redis (i varje fall var det s\u00e5 n\u00e4r jag kontrollerade sist), vilket ledde till ett 'katastrofalt' misslyckande: n\u00e4r Redis var otillg\u00e4nglig under en kort tid, kraschade alla pods.<\/i><\/li>\n<li> \"extern\" i detta sammanhang kan ocks\u00e5 inneb\u00e4ra andra pods av samma applikation, det vill s\u00e4ga i idealfallet b\u00f6r kontrollen inte bero p\u00e5 tillst\u00e5ndet av andra pods i samma kluster f\u00f6r att f\u00f6rhindra kaskadkrascher:\n<ul>\n<li> resultaten kan variera f\u00f6r applikationer med distribuerat tillst\u00e5nd (till exempel in-memory caching i pods).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>Anv\u00e4nd inte liveness probe<\/b> f\u00f6r poddar (undantag \u00e4r fall d\u00e4r de verkligen \u00e4r n\u00f6dv\u00e4ndiga och du \u00e4r fullt medveten om specifikationen och konsekvenserna av deras anv\u00e4ndning):\n<ul>\n<li> liveness probe kan hj\u00e4lpa till att \u00e5terst\u00e4lla \"h\u00e4ngande\" containrar, men eftersom du har full kontroll \u00f6ver din applikation b\u00f6r s\u00e5dana saker som \"h\u00e4ngande\" processer och deadlocks inte idealt f\u00f6rekomma: det b\u00e4sta alternativet \u00e4r att avsiktligt l\u00e5ta applikationen krascha och \u00e5terf\u00f6ra den till ett tidigare stabilt tillst\u00e5nd;<\/li>\n<li> ett misslyckat liveness-prover leder till att containern startas om, vilket potentiellt f\u00f6rv\u00e4rrar konsekvenserna av fel relaterade till lastning: omstart av containern kommer att orsaka stillest\u00e5nd (\u00e5tminstone under applikationens starttid, s\u00e4g mer \u00e4n 30 sekunder), vilket skapar nya fel, \u00f6kar belastningen p\u00e5 andra containrar och \u00f6kar risken f\u00f6r deras misslyckande, etc.;<\/li>\n<li> liveness-kontroller i kombination med externa beroenden \u00e4r den v\u00e4rsta av m\u00f6jliga kombinationer och hotar med kaskadmisslyckanden: en obetydlig f\u00f6rdr\u00f6jning fr\u00e5n databasen leder till att alla dina containrar startas om!<\/li>\n<\/ul>\n<\/li>\n<li> Parametrar f\u00f6r liveness- och readiness-kontroller <b>b\u00f6r vara olika<\/b>:\n<ul>\n<li> du kan anv\u00e4nda liveness probe med samma health check men med en h\u00f6gre tr\u00f6skel f\u00f6r aktivering (<code>failureThreshold<\/code>), till exempel, ge status <i>not-ready<\/i> efter 3 f\u00f6rs\u00f6k och betrakta att liveness-proben misslyckas efter 10 f\u00f6rs\u00f6k;<\/li>\n<\/ul>\n<\/li>\n<li> <b>Anv\u00e4nd inte exec-kontroller<\/b>, eftersom de \u00e4r f\u00f6rknippade med v\u00e4lk\u00e4nda problem som leder till zombiprocesser:\n<ul>\n<li> detaljer: se <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">Datadogs experters presentation<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Sammanfattning<\/h2>\n<p><\/p>\n<ul>\n<li> Anv\u00e4nd readiness probes f\u00f6r att best\u00e4mma n\u00e4r podden \u00e4r redo att ta emot trafik.<\/li>\n<li> Anv\u00e4nd liveness probes endast n\u00e4r de verkligen \u00e4r n\u00f6dv\u00e4ndiga.<\/li>\n<li> Felaktig anv\u00e4ndning av readiness\/liveness probes kan leda till minskad tillg\u00e4nglighet och kaskadmisslyckanden.<\/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 vara farliga\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Ytterligare material om \u00e4mnet<\/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-dokumentation: Konfigurera Liveness- och 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- och Readiness-Probes \u00c5terbes\u00f6kt: Hur man Undviker att Skjuta Sig Sj\u00e4lv i Foten<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">NRE Labs Avbrott Post-Mortem<\/a><\/noindex> (ber\u00e4ttar \u00e4ven om livenessProbe).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Uppdatering nr 1 fr\u00e5n 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">Om init-containrar f\u00f6r databasflyttningar<\/a><\/noindex>: en fotnot har lagts till.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ p\u00e5minde mig<\/a><\/noindex> om PDB: en av problemen med liveness-kontroller \u00e4r bristen p\u00e5 samordning mellan poddar. I Kubernetes finns det <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> f\u00f6r att begr\u00e4nsa antalet parallella kraschningar som en applikation kan uppleva, men kontrollerna tar inte h\u00e4nsyn till PDB. I idealfallet kan vi be K8s: \"Starta om en pod om dess kontroll misslyckas, men starta inte om alla, f\u00f6r att inte g\u00f6ra det \u00e4nnu v\u00e4rre.\"<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan uttryckte det utm\u00e4rkt<\/a><\/noindex>: \"Anv\u00e4nd liveness-probing n\u00e4r du \u00e4r s\u00e4ker p\u00e5 att <b>det b\u00e4sta som kan g\u00f6ras \u00e4r att \"d\u00f6da\" applikationen<\/b>\" (\u00e5terigen, var f\u00f6rsiktig med detta).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"Liveness probes i Kubernetes kan vara farliga\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Uppdatering #2 fr\u00e5n 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">N\u00e4r det kommer till att l\u00e4sa dokumentationen innan anv\u00e4ndning<\/a><\/noindex>: jag skapade en relevant beg\u00e4ran (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">feature request<\/a><\/noindex>) f\u00f6r att komplettera dokumentationen om liveness probes.<\/p>\n<h2>P.S. fr\u00e5n \u00f6vers\u00e4ttaren<\/h2>\n<p>\nL\u00e4s \u00e4ven i v\u00e5r blogg:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: livscykel f\u00f6r en pod<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">7 b\u00e4sta praxis f\u00f6r containerhantering enligt Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 principer f\u00f6r design av containerbaserade applikationer<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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 vara farliga | ProHoster","description":"Obs. om \u00f6vers\u00e4ttning: Senioringenj\u00f6ren fr\u00e5n Zalando \u2014 Henning Jacobs \u2014 har flera g\u00e5nger p\u00e5pekat att anv\u00e4ndare av Kubernetes har problem med att f\u00f6rst\u00e5 betydelsen av liveness (och readiness) probes och deras korrekta till\u00e4mpning.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/38965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}