K8s em Exemplos: Probes de Vivacidade
| Liveness probes detectam containers quebrados. Se a probe falhar consecutivamente (failureThreshold vezes), Kubernetes mata e reinicia o container. Use para: deadlocks, memory leaks, erros irrecuperáveis. |
| pod-liveness.yaml | |
| HTTP probe é a escolha mais comum. Use quando sua app tem um endpoint HTTP. Saudável se status é 200-399. | |
| pod-liveness-headers.yaml | |
| HTTP probes podem incluir headers customizados para autenticação ou roteamento. Use | |
| pod-liveness-tcp.yaml | |
| TCP probe verifica se a porta aceita conexões. Use para serviços não-HTTP (bancos de dados, Redis, gRPC sem health checks). Limitação: apenas confirma que a porta está aberta, não que o serviço está saudável. Prefira HTTP ou exec quando possível. | |
| pod-liveness-exec.yaml | |
| Exec probe executa um comando dentro do container. Saudável se código de saída é 0. Use para lógica de health customizada (verificar arquivos, rodar CLI tools como | |
| pod-startup-probe.yaml | |
| Startup probes substituem liveness durante startup do container. Use para apps de inicialização lenta ao invés de initialDelaySeconds longo. Liveness probe só inicia após startup probe ter sucesso. Este exemplo permite até 5 minutos (30 × 10s) para startup. | |
| pod-probe-params.yaml | |
| Parâmetros de probe: | |
| pod-liveness-best.yaml | |
| Erros comuns: (1) Configurações muito agressivas causam loops de restart. Aumente timeoutSeconds para endpoints lentos. (2) Verificar dependências como banco de dados ou APIs externas. Se o DB está fora, reiniciar não ajuda e causa falhas em cascata. (3) Usar liveness para apps que crasham de forma limpa. Kubernetes já reinicia containers que crasham. Use liveness apenas para falhas silenciosas (deadlocks, travamentos). | |
| terminal | |
| Debug falhas de probe com events e logs. Restarts de container incrementam o contador RESTARTS. Verifique endpoint da probe diretamente com kubectl exec ou port-forward. | |