Como fazer a alteração do Strategy Type no deployment do K8s
- 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 deleteE 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: 8Aplique o conteúdo do arquivo para fazer a criacao dos pods:
kubectl apply -f my-deployment.yamlVerifique 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: 8Abra 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