{"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\/pt\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","title":{"rendered":"As sondas de liveness no Kubernetes podem ser perigosas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Nota do tradutor.<\/b>: O engenheiro principal da Zalando, Henning Jacobs, notou v\u00e1rias vezes que usu\u00e1rios do Kubernetes t\u00eam dificuldades em entender o prop\u00f3sito dos liveness (e readiness) probes e sua aplica\u00e7\u00e3o correta. Por isso, ele organizou seus pensamentos nesta nota concisa, que eventualmente far\u00e1 parte da documenta\u00e7\u00e3o do K8s.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"As sondas de liveness no Kubernetes podem ser perigosas\" src=\"\/wp-content\/uploads\/2019\/10\/b246e18dadd582889382f306508135a8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs verifica\u00e7\u00f5es de estado, conhecidas no Kubernetes como <i>liveness probes<\/i> <i>(ou seja, literalmente, 'testes de viabilidade' \u2014 nota do tradutor)<\/i>, podem ser bastante perigosas. Recomendo, sempre que poss\u00edvel, evit\u00e1-las; exce\u00e7\u00f5es s\u00e3o apenas os casos em que elas s\u00e3o realmente necess\u00e1rias e voc\u00ea compreende completamente a especificidade e as consequ\u00eancias de seu uso. Nesta publica\u00e7\u00e3o, falaremos sobre liveness e readiness probes, e em quais situa\u00e7\u00f5es <i>est\u00e1<\/i> e quando n\u00e3o devemos aplic\u00e1-las.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Meu colega Sandor compartilhou recentemente no Twitter os erros mais comuns que ele encontra, incluindo aqueles relacionados ao uso de readiness\/liveness probes:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175377157343907840\"><img decoding=\"async\" alt=\"As sondas de liveness no Kubernetes podem ser perigosas\" src=\"\/wp-content\/uploads\/2019\/10\/8bc2e834e77e2b51baf06d2465a97b4f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Uma configura\u00e7\u00e3o inadequada <code>livenessProbe<\/code> pode agravar situa\u00e7\u00f5es de alta carga (desligamento em cadeia + poss\u00edvel longo tempo de inicializa\u00e7\u00e3o do cont\u00eainer\/aplica\u00e7\u00e3o) e levar a outras consequ\u00eancias negativas, como a falha de depend\u00eancias <i>(veja tamb\u00e9m <noindex><a rel=\"nofollow\" href=\"https:\/\/srcco.de\/posts\/k3s-outage-traefik-acme-lets-encrypt-local-path.html\">meu artigo recente<\/a><\/noindex> sobre limita\u00e7\u00e3o de requisi\u00e7\u00f5es na combina\u00e7\u00e3o K3s+ACME)<\/i>. \u00c9 ainda pior quando a liveness probe \u00e9 combinada com a verifica\u00e7\u00e3o de sa\u00fade de uma depend\u00eancia (health check), que \u00e9 uma base de dados externa: <b>uma \u00fanica falha no banco de dados pode reiniciar todos os seus cont\u00eaineres.<\/b>!<\/p>\n<p>A mensagem geral <i>\u2018N\u00e3o use liveness probes\u2019<\/i> neste caso ajuda pouco, ent\u00e3o vamos considerar para que servem as verifica\u00e7\u00f5es de readiness e liveness. <\/p>\n<p><i>Nota: a maior parte do teste abaixo foi inicialmente inclu\u00edda na documenta\u00e7\u00e3o interna para desenvolvedores da Zalando.<\/i><\/p>\n<h2>Verifica\u00e7\u00f5es de Readiness e Liveness<\/h2>\n<p>\nO Kubernetes fornece dois mecanismos importantes, chamados de <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/configure-pod-container\/configure-liveness-readiness-probes\/\">liveness probes e readiness probes<\/a><\/noindex>. Eles realizam periodicamente alguma a\u00e7\u00e3o \u2014 por exemplo, enviando uma solicita\u00e7\u00e3o HTTP, abrindo uma conex\u00e3o TCP ou executando um comando dentro do cont\u00eainer \u2014 para confirmar que a aplica\u00e7\u00e3o est\u00e1 funcionando corretamente.<\/p>\n<p>O Kubernetes utiliza <b>readiness probes<\/b>, para entender quando o cont\u00eainer est\u00e1 pronto para receber tr\u00e1fego. Um pod \u00e9 considerado pronto se todos os seus cont\u00eaineres estiverem prontos. Uma das aplica\u00e7\u00f5es desse mecanismo \u00e9 controlar quais pods s\u00e3o usados como backends para servi\u00e7os Kubernetes (e especialmente para Ingress).<\/p>\n<p><b>Verifica\u00e7\u00f5es de liveness<\/b> ajudam o Kubernetes a entender quando \u00e9 hora de reiniciar um cont\u00eainer. Por exemplo, essa verifica\u00e7\u00e3o pode interceptar um deadlock, quando a aplica\u00e7\u00e3o \"fica presa\". Reiniciar o cont\u00eainer nesse estado ajuda a mover a aplica\u00e7\u00e3o do ponto morto, apesar dos erros, mas tamb\u00e9m pode levar a falhas em cascata (veja abaixo).<\/p>\n<p>Se voc\u00ea tentar implantar uma atualiza\u00e7\u00e3o de aplica\u00e7\u00e3o que falhe nas verifica\u00e7\u00f5es de liveness\/readiness, sua implanta\u00e7\u00e3o ser\u00e1 interrompida, pois o Kubernetes aguardar\u00e1 o status <code>Pronto<\/code> de todos os pods.<\/p>\n<h2>Exemplo<\/h2>\n<p>\nAqui est\u00e1 um exemplo de readiness probe, verificando o caminho <code>\/health<\/code> via HTTP com configura\u00e7\u00f5es padr\u00e3o (<i>interval<\/i>: 10 segundos, <i>timeout<\/i>: 1 segundo, <i>threshold de sucesso<\/i>: 1, <i>threshold de falha<\/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>Recomenda\u00e7\u00f5es<\/h2>\n<p><\/p>\n<ol>\n<li> Para microsservi\u00e7os com endpoints HTTP (REST, etc.) <b>sempre defina um readiness probe<\/b>, que verifica se a aplica\u00e7\u00e3o (pod) est\u00e1 pronta para receber tr\u00e1fego.<\/li>\n<li> Certifique-se de que o readiness probe <b>cobre a prontid\u00e3o da porta real do servidor web<\/b>:\n<ul>\n<li> usando portas para necessidades administrativas, chamadas de \"admin\" ou \"management\" (por exemplo, 9090), para <code>readinessProbe<\/code>, certifique-se de que o endpoint retorna OK somente se a porta HTTP principal (como 8080) estiver pronta para receber tr\u00e1fego*;\n<p><i>* Tenho conhecimento de pelo menos um caso na Zalando, onde isso n\u00e3o aconteceu, ou seja, <code>readinessProbe<\/code> verificou a porta \"management\", mas o servidor n\u00e3o come\u00e7ou a funcionar devido a problemas de carregamento de cache.<\/i><\/li>\n<li> ligar a readiness probe em uma porta separada pode fazer com que a sobrecarga na porta principal n\u00e3o seja refletida no health check (ou seja, o pool de threads no servidor est\u00e1 cheio, mas o health check ainda mostra que est\u00e1 tudo OK).<\/li>\n<\/ul>\n<\/li>\n<li> Verifique se <b>a readiness probe inclui inicializa\u00e7\u00e3o\/migra\u00e7\u00e3o do banco de dados<\/b>;\n<ul>\n<li> a maneira mais simples de conseguir isso \u00e9 acessar o servidor HTTP somente ap\u00f3s a conclus\u00e3o da inicializa\u00e7\u00e3o (por exemplo, migra\u00e7\u00e3o do banco de dados com <noindex><a rel=\"nofollow\" href=\"https:\/\/flywaydb.org\/\">Flyway<\/a><\/noindex> etc.); ou seja, em vez de mudar o status do health check, simplesmente n\u00e3o inicie o servidor web at\u00e9 que a migra\u00e7\u00e3o do banco de dados esteja conclu\u00edda*.\n<p><i>* Tamb\u00e9m \u00e9 poss\u00edvel executar migra\u00e7\u00f5es de banco de dados a partir de init-containers fora do pod. Eu ainda sou f\u00e3 de aplica\u00e7\u00f5es aut\u00f4nomas (self-contained), ou seja, aquelas em que o cont\u00eainer da aplica\u00e7\u00e3o sabe como colocar o banco de dados no estado necess\u00e1rio sem coordena\u00e7\u00e3o externa.<\/i><\/li>\n<\/ul>\n<\/li>\n<li> Use <code>httpGet<\/code> para verifica\u00e7\u00f5es de readiness atrav\u00e9s de endpoints t\u00edpicos de health check (por exemplo, <code>\/health<\/code>).<\/li>\n<li> <b>Entenda os par\u00e2metros das verifica\u00e7\u00f5es definidas por padr\u00e3o<\/b> (<code>intervalo: 10s<\/code>, <code>timeout: 1s<\/code>, <code>successThreshold: 1<\/code>, <code>failureThreshold: 3<\/code>):\n<ul>\n<li> os par\u00e2metros padr\u00e3o significam que o pod se tornar\u00e1 <i>n\u00e3o pronto<\/i> em cerca de 30 segundos (3 verifica\u00e7\u00f5es de disponibilidade falhadas).<\/li>\n<\/ul>\n<\/li>\n<li> Use uma porta separada para \"admin\" ou \"management\", se a pilha tecnol\u00f3gica (como Java\/Spring) permitir, para separar o gerenciamento de \"sa\u00fade\" e m\u00e9tricas do tr\u00e1fego normal:\n<ul>\n<li> mas n\u00e3o se esque\u00e7a do item 2.<\/li>\n<\/ul>\n<\/li>\n<li> Se necess\u00e1rio, o readiness probe pode ser usado para aquecer\/carregar o cache e retornar o c\u00f3digo de estado 503 enquanto o cont\u00eainer n\u00e3o estiver \"aquecido\":\n<ul>\n<li> tamb\u00e9m recomendo examinar a nova verifica\u00e7\u00e3o <code>startupProbe<\/code>, <noindex><a rel=\"nofollow\" href=\"https:\/\/sysdig.com\/blog\/whats-new-kubernetes-1-16\/\">que apareceu na vers\u00e3o 1.16<\/a><\/noindex> <i>(escrevemos sobre isso em russo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/467477\/\">aqui<\/a><\/noindex> \u2014 nota do tradutor.)<\/i>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Avisos<\/h2>\n<p><\/p>\n<ol>\n<li> <b>N\u00e3o confie em depend\u00eancias externas<\/b> (como bancos de dados) ao realizar testes de readiness\/liveness \u2014 isso pode levar a falhas em cascata:\n<ul>\n<li> como exemplo, vamos pegar um servi\u00e7o stateful REST com 10 pods dependentes de um \u00fanico banco de dados Postgres: quando a verifica\u00e7\u00e3o depende de uma conex\u00e3o ativa com o banco de dados, todos os 10 pods podem falhar se houver um atraso na rede\/no banco de dados \u2014 geralmente tudo isso termina pior do que poderia;<\/li>\n<li> note que o Spring Data verifica a conex\u00e3o com o banco de dados por padr\u00e3o*;\n<p><i>* Este \u00e9 o comportamento padr\u00e3o do Spring Data Redis (pelo menos era assim quando verifiquei da \u00faltima vez), o que levou a uma falha \"catastr\u00f3fica\": quando o Redis ficou indispon\u00edvel por um curto per\u00edodo, todos os pods \"falharam\".<\/i><\/li>\n<li> \"externo\" neste sentido tamb\u00e9m pode significar outros pods da mesma aplica\u00e7\u00e3o, ou seja, idealmente, a verifica\u00e7\u00e3o n\u00e3o deve depender do estado de outros pods do mesmo cluster para evitar falhas em cascata:\n<ul>\n<li> os resultados podem variar para aplica\u00e7\u00f5es com estado distribu\u00eddo (por exemplo, cache em mem\u00f3ria em pods).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li> <b>N\u00e3o use liveness probe<\/b> para pods (exceto em casos onde s\u00e3o realmente necess\u00e1rios e voc\u00ea est\u00e1 completamente ciente das especificidades e consequ\u00eancias de seu uso):\n<ul>\n<li> o liveness probe pode ajudar a recuperar cont\u00eaineres \"pendurados\", mas, como voc\u00ea tem controle total sobre seu aplicativo, situa\u00e7\u00f5es como processos \"pendurados\" e deadlocks idealmente n\u00e3o devem ocorrer: a melhor alternativa \u00e9 fazer o aplicativo falhar intencionalmente e retornar ao seu estado anterior est\u00e1vel;<\/li>\n<li> Uma falha na liveness probe levar\u00e1 ao rein\u00edcio do cont\u00eainer, potencialmente agravando as consequ\u00eancias de erros relacionados \u00e0 inicializa\u00e7\u00e3o: o rein\u00edcio do cont\u00eainer resultar\u00e1 em um tempo de inatividade (pelo menos, durante o tempo de inicializa\u00e7\u00e3o do aplicativo, digamos, mais de 30 segundos), causando novos erros, aumentando a carga sobre outros cont\u00eaineres e elevando a probabilidade de falhas, etc.;<\/li>\n<li> liveness probes combinadas com depend\u00eancias externas s\u00e3o a pior combina\u00e7\u00e3o poss\u00edvel, amea\u00e7ando falhas em cascata: um pequeno atraso no lado do banco de dados far\u00e1 com que todos os seus cont\u00eaineres sejam reiniciados!<\/li>\n<\/ul>\n<\/li>\n<li> As configura\u00e7\u00f5es de liveness e readiness probes <b>devem ser diferentes<\/b>:\n<ul>\n<li> pode-se usar o liveness probe com a mesma verifica\u00e7\u00e3o de sa\u00fade, mas com um limite de disparo mais alto (<code>failureThreshold<\/code>), por exemplo, atribuindo um status <i>n\u00e3o pronto<\/i> ap\u00f3s 3 tentativas e considerando que a liveness probe falhou ap\u00f3s 10 tentativas;<\/li>\n<\/ul>\n<\/li>\n<li> <b>N\u00e3o use exec checks<\/b>, pois est\u00e3o associados a problemas conhecidos que levam \u00e0 cria\u00e7\u00e3o de processos zumbis:\n<ul>\n<li> detalhes: ver <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=QKI-JRs2RIE\">palestra da equipe da Datadog<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Resumo<\/h2>\n<p><\/p>\n<ul>\n<li> Use readiness probes para determinar quando o pod est\u00e1 pronto para receber tr\u00e1fego.<\/li>\n<li> Utilize liveness probes apenas quando forem realmente necess\u00e1rias.<\/li>\n<li> O uso inadequado de readiness\/liveness probes pode resultar em menor disponibilidade e falhas em cascata.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/sszuecs\/status\/1175655221382529025\"><img decoding=\"async\" alt=\"As sondas de liveness no Kubernetes podem ser perigosas\" src=\"\/wp-content\/uploads\/2019\/10\/8c212c41d6e69cd515a85d2b6100aaed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Materiais adicionais sobre o tema<\/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\/\">Documenta\u00e7\u00e3o do Kubernetes: Configurar Liveness e 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\/\">Revis\u00e3o de Liveness e Readiness Probes do Kubernetes: Como Evitar se Prejudicar Ainda Mais<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/keepingitclassless.net\/2018\/12\/december-4-nre-labs-outage-post-mortem\/\">NRE Labs: An\u00e1lise Ap\u00f3s A Interrup\u00e7\u00e3o<\/a><\/noindex> (tamb\u00e9m fala sobre livenessProbe).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Atualiza\u00e7\u00e3o n\u00ba 1 de 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/BarrWill1\/status\/1178144162526453760\">Sobre init-containers para migra\u00e7\u00e3o de banco de dados<\/a><\/noindex>: nota adicionada.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/ejc3\/status\/1178077779293683713\">EJ me lembrou<\/a><\/noindex> sobre PDB: uma das dificuldades das liveness checks \u00e9 a falta de coordena\u00e7\u00e3o entre os pods. No Kubernetes h\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">Pod Disruption Budgets (PDB)<\/a><\/noindex> para limitar o n\u00famero de falhas paralelas que uma aplica\u00e7\u00e3o pode enfrentar, no entanto, as verifica\u00e7\u00f5es n\u00e3o consideram o PDB. Idealmente, podemos instruir o K8s: \"Reinicie um pod se sua verifica\u00e7\u00e3o falhar, mas n\u00e3o reinicie todos eles para n\u00e3o piorar ainda mais a situa\u00e7\u00e3o.\"<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178083887991398400\">Bryan articulou muito bem<\/a><\/noindex>: \"Use liveness probing quando voc\u00ea souber com certeza que <b>o melhor a fazer \u00e9 \u2018matar\u2019 o aplicativo<\/b>\" (novamente, n\u00e3o exagere).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/bboreham\/status\/1178207929540972544\"><img decoding=\"async\" alt=\"As sondas de liveness no Kubernetes podem ser perigosas\" src=\"\/wp-content\/uploads\/2019\/10\/524122a63bd4acd950bf9fc8aeeb45be.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h2>Atualiza\u00e7\u00e3o n\u00ba 2 de 2019-09-29<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/Guillaume_Swiss\/status\/1178258781152563200\">Sobre a leitura da documenta\u00e7\u00e3o antes de usar<\/a><\/noindex>: criei um pedido correspondente (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/website\/issues\/16607\">solicita\u00e7\u00e3o de funcionalidade<\/a><\/noindex>) para adicionar \u00e0 documenta\u00e7\u00e3o sobre liveness probes.<\/p>\n<h2>P.S. do tradutor<\/h2>\n<p>\nConfira tamb\u00e9m em nosso blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/415393\/\">Kubernetes: a vida do pod<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/425085\/\">As 7 melhores pr\u00e1ticas para a opera\u00e7\u00e3o de cont\u00eaineres segundo o Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/353272\/\">7 princ\u00edpios de design de aplicativos baseados em cont\u00eaineres<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47Probes de liveness no Kubernetes podem ser arriscadas | ProHoster","description":"Nota: O engenheiro l\u00edder da Zalando, Henning Jacobs, observou repetidamente que os usu\u00e1rios do Kubernetes t\u00eam dificuldades em entender o prop\u00f3sito das probes de liveness (e readiness) e sua aplica\u00e7\u00e3o correta.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/liveness-probes-v-kubernetes-mogut-byt-opasny","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/38965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=38965"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/38965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/29232"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=38965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=38965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=38965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}