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
  1. Verificar o status da implementação
BASH
kubectl rollout status deployment/<deployment-name> -n <namespace>

Isso mostra se a implementação foi concluída ou se está travada.

  1. Descreva a implantação
BASH
kubectl describe deployment <deployment-name> -n <namespace>

Analise:

  • Eventos
  • Status da réplica
  • Condições
  • Atividade de escalonamento
  1. Verificar o estado do pod
BASH
kubectl get pods -n <namespace>

Identifique os Pods que são:

  • Pendente
  • CrashLoopBackOff
  • Recuar imagem
  • Não estou pronto
  1. Analisar os registros do pod
BASH
kubectl logs <pod-name> -n <namespace>

Se o Pod tiver sido reiniciado:

BASH
kubectl logs <pod-name> -n <namespace> --previous​​
  1. Verifique o histórico de implantação
BASH
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
BASH
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.

Próximo Artigo Artigo anterior