top of page

Como utilizar o Rollout History do Kubernetes

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

Fala pessoal, tudo bem?


É possível fazermos revisões de deployment já utilizamos no kubernetes.


Para isso, abra o arquivo dentro de Downloads\my-deployment.yaml. Caso voce não tenha, segue conteúdo do arquivo:


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
  selector:
    matchLabels:
      env: production
  replicas: 4

Obedeça exatamente essa indentação e utilize <barra-espaço> ao invés de <tab>


Faça a aplicação do arquivo my-deployment.yaml, utilizando o seguinte comando:

kubectl apply -f my-deployment.yaml


Veja todos os compomentes com o comando:

kubectl get all

Vamos agora fazer o rollout

kubectl rollout status deployment.apps/frontend-deployment

Vamos ver o historio do deployment

kubectl rollout history deployment.apps/frontend-deployment

A primeira vez ele foi implementado, a revisão com 1


Altere o arquivo my-deployment.yaml, colocando o replicas para 8 e salve


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
  selector:
    matchLabels:
      env: production
  replicas: 8

Aplique novamente o arquivo:

kubectl apply -f my-deployment.yaml

Confira com o comando abaixo para verificar quandos PODs foram criados:

kubectl get pods

Veja que ele já criou o restante:


Execute o comando history novamente para verificar o revisao:

kubectl rollout history deployment.apps/frontend-deployment

Perceba que a revisão não foi alterada. Simplesmente salvar o arquivo com o novo numero de replicas, não faz a revisão feita pela quantidade de replicas.


Altere mais uma vez o arquivo my-deployment.yaml e salve novamente o arquivo:


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.18.0
  selector:
    matchLabels:
      env: production
  replicas: 8

Aplique novamente o arquivo:

kubectl apply -f my-deployment.yaml

Nesse momento, todos os PODs estão sendo trocados:

kubectl get pods


Execute o comando rollout novamente:


kubectl rollout history deployment.apps/frontend-deployment

Agora perceba que apareceu a outra revisão:


Não fizemos uma alteração não somente na quantidade, mas sim agora na aplicação.


Altere novamente o arquivo my-deployment.yaml para a versao anterior e salve o arquivo:


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
  selector:
    matchLabels:
      env: production
  replicas: 8

Aplique novamente o arquivo:

kubectl apply -f my-deployment.yaml

Veja novamente a versão:

kubectl rollout history deployment.apps/frontend-deployment

Veja que o K8s sabe que a revisao 1 e 3 são as mesmas, então ele apaga a revisao 1 para não deixar o historico tão longo.


Altere novamente o arquivo my-deployment.yaml para a versao anterior e salve o arquivo:


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.14.2
  selector:
    matchLabels:
      env: production
  replicas: 8

Aplique novamente o arquivo:

kubectl apply -f my-deployment.yaml

Veja novamente a versão:

kubectl rollout history deployment.apps/frontend-deployment

Veja que ele manteve a versao agora.


Mude o arquivo novamente para a versao: nginx:1.20.2


Salve o arquivo


Aplique o arquivo


Faça a revisão novamente


Veja em que revisão o K8s controlou.


Esse é um recurso muito bom para conseguirmos versionar os novos arquivos.


Muito obrigado e até mais!









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