Problemas de atualização do Kubernetes
Quais são os problemas na atualização do Kubernetes?
Problemas de atualização do Kubernetes ocorrem quando componentes ou aplicativos do cluster se tornam incompatíveis após a atualização da versão do Kubernetes. Isso pode afetar cargas de trabalho, rede, armazenamento ou complementos do cluster.
Dica: antes de atualizar o Kubernetes, sempre verifique a matriz de compatibilidade de versões, as notas de versão e as APIs obsoletas.
Sintomas
- Os aplicativos falham após a atualização do cluster.
- Os pods entram em
CrashLoopBackOffou permanecem pendentes. - Os plugins CNI ou CSI param de funcionar.
- Os componentes do Kubernetes ficam indisponíveis.
- Erros de API relacionados a recursos obsoletos.
Causas comuns
| Causa | Descrição |
|---|---|
| APIs obsoletas | Os aplicativos ainda usam APIs do Kubernetes removidas ou obsoletas. |
| Incompatibilidade de versão | Os componentes do Kubernetes estão executando versões não suportadas. |
| Incompatibilidade de driver CSI | Os drivers de armazenamento são incompatíveis com a versão atualizada. |
| Problema com plugin CNI | Os plugins de rede não são compatíveis após a atualização. |
| Complementos desatualizados | CoreDNS, Ingress Controller, Metrics Server ou outros complementos precisam ser atualizados. |
Como diagnosticar
- Verifique a versão do Kubernetes
kubectl version
Verifique as versões do cliente e do servidor.
- Verificar a compatibilidade de CNI, CSI e complementos
Verifique se todos os plugins de rede e armazenamento são compatíveis com a versão atualizada do Kubernetes.
Exemplos:
- Calico
- Cilium
- Flannel
- CoreDNS
- Metrics Server
- Ingress Controller
- CSI Drivers
- Verifique se há APIs obsoletas.
Verifique seus manifestos em busca de versões de API obsoletas.
Exemplo:
apiVersion: extensions/v1beta1
deve ser atualizado para uma versão compatível, como:
apiVersion: apps/v1
- Verificar componentes do cluster
kubectl get pods -n kube-system
Verifique se o CoreDNS, o kube-proxy, o CNI, o CSI e outros Pods do sistema estão íntegros.
- Revisar eventos
kubectl get events --sort-by=.metadata.creationTimestamp
Procure por erros relacionados à atualização.
Como consertar
- Atualize os componentes do Kubernetes na ordem recomendada (Plano de Controle → Nós de Trabalho).
- Atualize CNI, CSI, CoreDNS e outros complementos de cluster.
- Migre as APIs obsoletas para versões compatíveis.
- Analise as notas de versão e as alterações que podem causar incompatibilidade do Kubernetes antes de atualizar.
- Verifique a compatibilidade do aplicativo antes de atualizar os clusters de produção.
Comandos importantes
kubectl version
kubectl get pods -n kube-system
kubectl get events --sort-by=.metadata.creationTimestamp
kubectl api-resources
kubectl api-versions
Pontos-chave
- Leia sempre as notas de versão do Kubernetes antes de atualizar.
- Atualize na ordem correta:
- Plano de controle
- Nós de trabalho
- Plugin CNI
- CSI driver
- CoreDNS e outros complementos
- Substitua as APIs obsoletas antes de atualizar para evitar falhas no aplicativo.
- Verifique se todos os componentes do kube-system estão íntegros após a atualização.
- Teste as atualizações em um ambiente que não seja de produção antes de aplicá-las em produção.