Problemas na Implantação e Implementação
Quais são os problemas de implantação?
Um problema de implantação ocorre quando uma nova versão de um aplicativo não pode ser implantada com sucesso. A implantação pode ficar travada, suspensa ou indisponível porque os novos Pods não ficam prontos.
Dica: a implantação só é concluída quando o número necessário de Pods estiver em execução e pronto.
Sintomas
- A implantação está travada ou permanece em andamento.
- O status de implantação mostra Unavailable.
- Os novos Pods não ficam Ready.
- Os módulos antigos não são substituídos com sucesso.
Causas comuns
| Causa | Descrição |
|---|---|
| Falha no Readiness Probe | Os pods nunca ficam Ready. |
| Erro de Imagem | Nome de imagem inválido ou falha no pull da imagem. |
| Falha no probe Liveness/Readiness | As verificações de integridade falham continuamente. |
| Erro de Configuração | ConfigMap, Secret ou variáveis de ambiente inválidos. |
| Comando de Inicialização Incorreto | O contêiner é encerrado imediatamente. |
| Recursos Insuficientes | Limites de CPU ou memória impedem a inicialização dos pods. |
Como diagnosticar
- Verificar o status da implementação
kubectl rollout status deployment/<deployment-name> -n <namespace>
Isso mostra se a implementação foi concluída ou se está travada.
- Descreva a implantação
kubectl describe deployment <deployment-name> -n <namespace>
Analise:
- Eventos
- Status da réplica
- Condições
- Atividade de escalonamento
- Verificar o estado do pod
kubectl get pods -n <namespace>
Identifique os Pods que são:
- Pendente
- CrashLoopBackOff
- Recuar imagem
- Não estou pronto
- Analisar os registros do pod
kubectl logs <pod-name> -n <namespace>
Se o Pod tiver sido reiniciado:
kubectl logs <pod-name> -n <namespace> --previous
- Verifique o histórico de implantação
kubectl rollout history deployment/<deployment-name> -n <namespace>
Revise as alterações anteriores antes de reverter.
Como consertar
- Corrija problemas de imagem, configuração ou comando de inicialização.
- Se necessário, reverta para a versão estável anterior.
BASH
kubectl rollout undo deployment/<deployment-name> -n <namespace> - Analise o histórico de implantação antes de reverter.
BASH
kubectl rollout history deployment/<deployment-name> -n <namespace> - Corrigir configurações de sondagem de prontidão e atividade.
- Aumente os recursos de CPU ou memória, se necessário.
- Verificar ConfigMaps, Secrets e variáveis de ambiente.
Comandos importantes
kubectl rollout status deployment/<deployment-name> -n <namespace>
kubectl describe deployment <deployment-name> -n <namespace>
kubectl get pods -n <namespace>
kubectl logs <pod-name> -n <namespace>
kubectl logs <pod-name> -n <namespace> --previous
kubectl rollout history deployment/<deployment-name> -n <namespace>
kubectl rollout undo deployment/<deployment-name> -n <namespace>
Pontos-chave
-
Implantação travada → Novos Pods não estão ficando prontos.
-
Comece kubectl rollout statusverificando o progresso da implantação.
-
Analise os eventos de implantação, o status do Pod e os logs do aplicativo para encontrar a causa raiz.
-
Se a versão mais recente apresentar falhas, utilize este comando kubectl rollout undopara restaurar a versão estável anterior.
-
Sempre verifique os testes de prontidão , os limites de recursos , a imagem e a configuração antes de tentar a implantação novamente.