Como fazer rollback de uma aplicação que roda no kubernetes

Como fazer rollback de deployments no kubernetes

Sempre falo bastante sobre estrategias de CI/CD, uso do Auto DevOps do gitlab e como o kubernetes é legal. Mas, o que muito ocorre e pouco se fala, é: O que fazer quando da ruim e preciso fazer rollback rapidão?
Eu achei um artigo bem detalhado e que explica tudo muito bem, mas para aqueles que pulam para a flag verde no stackoverflow, vou resumir colocando os passos para operar um rollback de um deployment no kubernetes.

Bora lá

Vou partir da premissa que você já usa o kubectx e o kubens (por favor!) e também que nosso deployment possui o nome "app".

Seguem os passos:

# "acessar" o cluster
kubectx [cluster]

# "acessar" o namespace
kubens [namespace]

# verificar os deployments do namespace 
kubectl get deployments

# verifica a revisão (versão) do deployment que quero operar um rollback
kubectl describe deployment/app | grep deployment.kubernetes.io/revision:

# verificar o histórico de revisões (versões) do deployment que desejo fazer rollback
kubectl rollout history deployment/app

# faço rollback pra revisão que desejo
kubectl rollout undo deployment/app --to-revision=25

# acompanho e aguardo os pods e o deployment ficarem disponíveis
kubectl get deployments,pods

# verifico se a revisão foi alterada (vai incrementar)
kubectl describe deployment/app | grep deployment.kubernetes.io/revision: