Pular para o conteúdo principal

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