Upnetix Labs · protocolo de experimento
Protocolo: Qual o tempo de recuperação de um Deployment Kubernetes após falha de pod?
Este protocolo mede quanto tempo o Kubernetes leva para restaurar o número desejado de réplicas de um Deployment após a simulação de falha de pods. O objetivo é quantificar a resiliência do cluster em cenários de produção.

Quanto tempo o Kubernetes leva para recuperar o estado desejado de um Deployment após a exclusão forçada de pods?
Hipótese
O Kubernetes consegue restaurar o número desejado de réplicas de um Deployment em menos de X segundos após a falha de pods, desde que os recursos estejam disponíveis.
Variáveis
| Independentes (o que varia) | quantidade de réplicas do Deployment; estratégia de atualização (RollingUpdate, Recreate) |
|---|---|
| Dependentes (o que se mede) | tempo de recuperação (segundos) |
| Controladas (o que fica fixo) | imagem do container utilizada; recursos alocados por pod (CPU/memória); versão do Kubernetes; nó de worker disponível; rede estável |
Ambiente
Cluster Kubernetes com pelo menos 3 nós de worker, acesso kubectl, Prometheus instalado para coleta de métricas, e aplicação de teste baseada em nginx (imagem oficial). Ferramenta de medição: Prometheus (métrica kube_deployment_status_replicas_available).
Procedimento
- Criar Deployment
Crie um Deployment com N réplicas usando a imagem nginx oficial.
kubectl create deployment nginx-test --image=nginx --replicas=3 - Confirmar estado inicial
Verifique se todas as réplicas estão disponíveis.
kubectl get deployment nginx-test - Coletar timestamp inicial
Registre o horário imediatamente antes de simular a falha.
date +%s - Simular falha
Delete todos os pods do Deployment de uma vez.
kubectl delete pods -l app=nginx-test - Monitorar recuperação
Acompanhe via Prometheus o tempo até kube_deployment_status_replicas_available retornar ao valor desejado.
consulte a documentação do Prometheus para consulta adequada - Coletar timestamp final
Registre o horário em que todas as réplicas estiverem disponíveis novamente.
date +%s - Calcular tempo de recuperação
Subtraia o timestamp inicial do final.
- Repetir experimento
Repita todo o procedimento para cada configuração de variável independente.
Planilha de coleta
| quantidade_replicas (unidades) | estrategia_atualizacao (RollingUpdate/Recreate) | tempo_recuperacao (segundos) |
|---|---|---|
| EXEMPLO: 3, RollingUpdate, 8.2 | ||
Repetições recomendadas: 5. Baixe a planilha vazia em CSV: colunas prontas.
Análise
Calcule média, desvio padrão e percentis (p50, p90) do tempo de recuperação para cada configuração. Compare os resultados entre estratégias de atualização e diferentes quantidades de réplicas. Interprete se o tempo de recuperação atende ao esperado para workloads críticos.
Critérios de decisão
- Tempo de recuperação médio inferior ao limite definido pelo time de operações.
- Variação (desvio padrão) aceitável entre execuções.
- Sem falhas de agendamento ou crashloop.
Fontes de erro e mitigação
- Variação de carga no cluster pode afetar o tempo de recuperação; execute testes em horários de baixa utilização.
- Pods podem ser agendados em nós diferentes, afetando o tempo de pull da imagem; utilize imagens já presentes nos nós.
- Problemas de rede podem atrasar a recuperação; monitore conectividade.
Referências
- fonte oficial · Kubernetes (CNCF) (kubernetes.io)
- fonte oficial · Prometheus (CNCF) (prometheus.io)
- Publicado
- 09/09/2026
- Última revisão
- 09/09/2026
- Versão do conteúdo
- 1.0
- Referências
- 2 oficiais
- Revisão técnica
- redação e revisão por IA, URLs conferidas na publicação
- Status
- Atual
