Skip to content
Latchkey

O Que É um Deployment no Kubernetes? Rolling Updates Explicados

Um Deployment é o objeto do Kubernetes que mantém um número escolhido de pods idênticos rodando e orquestra rolling updates seguros quando sua imagem muda.

Você raramente gerencia pods à mão. Em vez disso, você declara um Deployment que diz "rode N réplicas deste pod spec", e o Kubernetes o mantém. Quando você muda a imagem, o Deployment realiza um rollout controlado - e pode fazer rollback se der errado. É o objeto burro de carga para apps stateless.

O que ele gerencia

Um Deployment é dono de um ReplicaSet, que é dono dos pods. Você define replicas: 3 e um template de pod; o Kubernetes garante que três pods correspondentes existam, recriando qualquer um que morra.

Rolling updates

Mude a imagem e o Deployment gradualmente substitui pods antigos por novos - subindo novos pods, esperando readiness, depois aposentando os antigos. Configurações como maxUnavailable e maxSurge controlam quão agressivo é o rollout.

Rollbacks

Como o Deployment mantém histórico de revisões, kubectl rollout undo reverte para a versão anterior funcional se um novo rollout se comportar mal - uma rede de segurança crucial para o CD.

Um spec mínimo

Um YAML de Deployment define spec.replicas, um selector e um template descrevendo o pod (seus containers e imagem). Aplicá-lo com kubectl apply -f deploy.yaml o torna real.

Deployments como o alvo do CD

A entrega contínua geralmente atualiza a imagem do Deployment para o digest que o CI acabou de construir e fazer push. O Kubernetes então cuida do rollout. Readiness probes garantem que o tráfego só alcance pods que estão realmente prontos.

Principais conclusões

  • Um Deployment mantém N pods réplica e lida com rolling updates.
  • Ele mantém histórico de revisões, então rollbacks são um único comando.
  • O CD tem o Deployment como alvo, atualizando sua imagem para a recém-construída.

Guias relacionados