top of page

Como fazer a alteração do Strategy Type no deployment do K8s

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

Tudo bem pessoal?


No Kubernetes, o campo .spec.strategy.type determina como um Deployment gerencia a transição entre diferentes versões da sua aplicação.


O Kubernetes suporta nativamente dois tipos principais de estratégia:


  • RollingUpdate (Padrão): Substitui os Pods antigos pelos novos gradualmente para garantir zero tempo de inatividade (zero downtime). Você pode ajustar esse processo usando dois parâmetros:


    • maxSurge: O número de Pods que podem ser criados acima da quantidade de réplicas desejada.

    • maxUnavailable: O número máximo de Pods que podem ficar indisponíveis durante a atualização.


  • Recreate: Remove todos os Pods existentes antes que os novos Pods sejam criados. É uma abordagem mais simples que evita conflitos de versão, mas gera tempo de inatividade durante a transição.


Para fazer essa demonstração, veja se o seu minikube está totalmente limpo. Caso não utilite os seguintes comandos:


minikube stop
minikube delete

E veja o estado em que encontra:

minikube status

Inicie novamente o minikube:

minikube start

O seu arquivo dentro de Downloads , my-deployment.yaml deve conter aproximadamente este conteúdo:


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

Aplique o conteúdo do arquivo para fazer a criacao dos pods:

kubectl apply -f my-deployment.yaml

Verifique os pods criados:

kubectl get pods

Altere e salve o conteúdo do arquivo my-deployment para:


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
  strategy:
    type: Recreate
  replicas: 8

Abra 2 terminais com aproximadamente esta disposição:


No temrinal 1 digite o comando para ficar monitorando a criação dos pods:

watch kubectl get pods

E no terminal 2 digite o comando que irá aplicar o arquivo my-deployment.yaml

kubectl apply -f my-deployment.yaml

Veja que as suas PODs agora termina todos de uma vez e depois recria tudo de novo:



Com a estratégia Recreate voce tem uma certa indisponibilidade ao invés de ir parando e recriando gradualmente.


Pense bem antes de utilizá-la.


Esperamos que tenha gostado!


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