top of page

Como funciona o Rollout Pause e Rollout Resume no kubernetes

  • Foto do escritor: Rodrigo Saito
    Rodrigo Saito
  • há 2 dias
  • 2 min de leitura

Fala pessoal, tudo bem?


Vamos aprender a utilizar 2 variações do comando Rollout, sendo o Pause e o Resume. Geralmente podemos utilizar quando aplicamos uma arquivos para fazer a criação de componentes e percebemos que pode haver algo de errado. É possível pausarmos a criação dos componentes e e verificarmos o ambiente.


Para isso, verifique se o minikube está executando:

minikube status

Se ele não estiver executando, de o comando:

minikube start
minube status


Vamos fazer a abetura de 3 terminais ao mesmo tempo, para tentar enxergar o que a contece quando executamos o Rollout Paulo e Resumo, pois são muito rápidos.


Abra os 3 terminais com aproximadamente esta disposição em seu desktop do Linux:



No primeiro terminal, execute o comando para fazer um delete em todo o seu deployment (caso exista)

kubectl delete deployment.apps/frontend-deployment

Verifique se todos os pods foram eliminados:

kubectl get pods

Faça a aplicação do arquivo my-deployment,yaml:


cd Downloads
kubectl apply -f my-deployments-yaml

e verifique novamente se todos os seus pods foram criados:

kubectl get pods

No primeiro terminal, fique monitorando os pods com o comando:

watch kubectl get pods

Abra o arquiivo my-deployments.yaml e altere a versao do nginx e salve o arquivo. Ele deve estar atualmente com a versao nginx 1.21.5:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend-deployment
  labels:
    app: frontend
spec:
  template:
    metadata:
      name: pod-my-nginx
      labels:
        env: production
    spec:
      containers:
        - name: nginx-container
          image: nginx:1.16.1
  selector:
    matchLabels:
      env: production
  replicas: 8

No segundo terminal, apenas digite o comando: (NÃO APERTE O <ENTER> PARA EXECUTAR o ulimo comando)

cd Downloads
kubectl apply -f my-deployment.yaml

No terceiro terminal, apenas digite o comando de pause:

kubectl rollout pause deployment.apps/frontend-deployment         

Vá no terminal 2 e presione o enter para executar o comando e em 1 segundo, vá para o terminal 3 e pressione enter. E perceba que no terminal 1, ele vai ter iniciado a atualização mas não vai dar tempo de ele ter feito a atualização em todos.



No nosso caso, deu tempo do K8s fazer somente 3 atualizações. Imagine a situação onde voce teria que atualizar 5000, 10000 pods e que algo tivesse acontecido de inesperado, voce conseguiria parar a tempo de não atualizar todos pods.


Nesse caso, vamos liberar para que as proximas pods sejam atualizados. Digite o comando no terminal 3

kubectl rollout resume deployment.apps/frontend-deployment

No temrinal 1, todos pods estão com status running:



Caso voce quisesse voltar a versão anterior, voce pode utilizar o comando history para verificar as versoes já feitas:

kubectl rollout history deployment.apps/frontend-deployment

E depois execute o comando para a versão desejada:

kubectl rollout undo deployment.apps/frontend-deployment --to-revision=5

Todos os pods iráo voltar a versao anterior (no terminal 1:



Dessa forma, conseguimos interagir com Rollout Pause e Rollout Resume do K8s.


Obrigado e até+!





Comentários


Nunca perca um post. Assine agora!

Caso queira receber noticias sobre o blog, assine!

© 2022 por datalib

  • Ícone do Facebook Cinza
  • Ícone do Linkedin Cinza
bottom of page