🔁 Rollout
O rollout é a atualização gradual de uma aplicação: os pods antigos são trocados pelos novos aos poucos, sem derrubar o serviço. Se a versão nova não ficar pronta, o Kubernetes mantém os pods antigos atendendo.
informação
Rollouts são feitos com o kubectl. O Painel Nuvion não tem esse recurso.
🚀 Antes de começar
- Ter o acesso ao cluster configurado (veja Acesso ao Cluster).
- Ter o Deployment
web-deployda página Deploy (imagemnginx:1.26).
🚀 1. Atualizar a versão da imagem
kubectl set image deployment/web-deploy nginx=nginx:1.27
O formato é NOME-DO-CONTAINER=NOVA-IMAGEM. No modelo da página Deploy, o container se chama nginx.
🚀 2. Acompanhar a atualização
kubectl rollout status deployment/web-deploy
kubectl get pods -l app=web-deploy
Você verá pods novos subindo enquanto os antigos saem. O final é
successfully rolled out.
🚀 3. Registrar o motivo da mudança
kubectl annotate deployment/web-deploy kubernetes.io/change-cause="Atualiza nginx para 1.27" --overwrite
O texto aparece no histórico do passo 4.
🚀 4. Ver o histórico
kubectl rollout history deployment/web-deploy
Cada versão do Deployment é uma revisão numerada.
🚀 5. Controlar o ritmo da atualização
Por padrão, o Kubernetes atualiza em etapas. Você pode ajustar no Deployment:
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
| Campo | Significado |
|---|---|
maxUnavailable: 0 | Nunca ficar com menos pods do que o desejado |
maxSurge: 1 | Pode criar 1 pod a mais durante a troca |
🚀 6. Pausar e retomar (opcional)
kubectl rollout pause deployment/web-deploy
kubectl rollout resume deployment/web-deploy
✅ Como saber se deu certo
kubectl get deployment web-deploy -o jsonpath='{.spec.template.spec.containers[0].image}'
O comando mostra nginx:1.27.
❗ Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
rollout status fica esperando | Os pods novos não ficam prontos | Veja kubectl get pods: se aparecer ImagePullBackOff, a imagem não existe. Desfaça com Rollback |
unable to find container named | Nome do container errado | Veja o nome com kubectl describe deployment web-deploy |
timed out waiting for the condition | A atualização passou do prazo | Confira os Events e faça o Rollback |
➡️ Próximo passo: Rollback
🧠 Dúvidas?
Fale com nosso time de suporte técnico da SaveinCloud!