Skip to content
Latchkey

O que e uma liveness probe? Reiniciando contineres travados

Uma liveness probe e uma verificacao periodica de saude que o Kubernetes usa para decidir se um continer esta travado e deve ser reiniciado.

Um processo pode estar rodando e ainda assim emperrado - em deadlock, preso em um loop infinito, incapaz de se recuperar. De fora, parece vivo, mas nao serve nada. Uma liveness probe da ao Kubernetes uma forma de detectar isso e reiniciar automaticamente o continer, transformando um app travado em um com autocorreção.

Como funciona

Voce define uma probe (HTTP, TCP ou comando) que o Kubernetes executa em um intervalo. Se ela falha vezes consecutivas suficientes, o Kubernetes mata o continer e o reinicia de acordo com a restart policy do pod.

Liveness vs readiness

A readiness controla o trafego; a liveness controla os reinicios. Um pod pode estar vivo, mas nao pronto (ainda aquecendo) - entao as duas probes cumprem funcoes diferentes e muitas vezes ambas sao definidas.

Evitando restart loops

  • Defina um atraso inicial para que inicializacoes lentas nao sejam mortas prematuramente.
  • Torne a probe barata e independente de servicos downstream.
  • Uma probe agressiva demais causa crash loops - ajuste os limites com cuidado.

Uma armadilha comum

Se uma liveness probe depende de um banco de dados que esta temporariamente fora, todo pod reinicia junto e nada se recupera. Mantenha as verificacoes de liveness locais ao processo; use a readiness para a saude das dependencias.

O paralelo com a confiabilidade

Liveness probes incorporam a autocorreção: detectam um workload travado e se recuperam automaticamente. Runners de CI gerenciados aplicam a mesma filosofia aos jobs - recuperando-se automaticamente de falhas transitorias e de recursos em vez de deixa-las travadas.

Principais conclusões

  • Uma liveness probe reinicia um continer que esta rodando, mas travado.
  • A liveness controla reinicios; a readiness controla o trafego - use ambas.
  • Mantenha as probes baratas e locais para evitar restart loops sincronizados.

Guias relacionados