Capítulo 3.8 - Health Checks
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender os três tipos de probes
- Configurar Liveness Probes
- Configurar Readiness Probes
- Utilizar Startup Probes
- Escolher a estratégia correta de health check
Tipos de Probes
O Kubernetes oferece três tipos de probes para verificar a saúde dos containers:
1. Liveness Probe
Determina se o container deve ser reiniciado.
Exemplo
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
Comportamento
Se a probe falhar: O container é reiniciado.
2. Readiness Probe
Determina se o container está pronto para receber tráfego.
Exemplo
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 3
Comportamento
Se a probe falhar: O Pod é removido dos Endpoints do Service.
3. Startup Probe
Para aplicações lentas para iniciar.
Exemplo
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30 # 30 tentativas
periodSeconds: 10 # A cada 10 segundos
# Total: até 5 minutos
Comportamento
Durante o startup: As outras probes ficam desativadas.
Tipos de Probes
HTTP GET
livenessProbe:
httpGet:
path: /health
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
TCP Socket
livenessProbe:
tcpSocket:
port: 8080
Command Exec
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
Configuração Completa
apiVersion: v1
kind: Pod
metadata:
name: healthy-pod
spec:
containers:
- name: app
image: my-app:1.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30
periodSeconds: 10
Boas Práticas
Quando Usar Cada Probe
- Liveness: Se a aplicação pode travar
- Readiness: Se a aplicação precisa de tempo para ficar pronta
- Startup: Se a aplicação inicia lentamente (>30s)
Parâmetros Recomendados
- initialDelaySeconds: Tempo suficiente para o startup
- periodSeconds: 5-10 segundos
- timeoutSeconds: 1-3 segundos
- failureThreshold: 3 (padrão)
Resumo
Neste capítulo, você aprendeu:
Liveness Probe: Reinicia o container se ele travar
Readiness Probe: Remove o Pod do Service se não estiver pronto
Startup Probe: Para aplicações lentas para iniciar
Tipos: HTTP GET, TCP Socket, Command Exec
Configuração: initialDelaySeconds, periodSeconds, failureThreshold
Próximos Passos
Agora que você domina os Health Checks:
Lab 3.4: Configuração de Health Checks
Quiz Módulo 3: Valide seus conhecimentos
Capítulo criado em: Dezembro 2024