Orquestração de Contêineres Question #019e3a4f
Qual é a estratégia de deployment padrão no Kubernetes?
Rolling update
Blue/Green deployment
Canary deployment
Recreate deployment
Official Explanation / Community Explanations
A estratégia de deployment padrão no Kubernetes é a Rolling Update. Essa estratégia garante que os pods sejam gradualmente substituídos por novos, minimizando o tempo de inatividade e mantendo a disponibilidade da aplicação durante as atualizações.
Como Funciona
Quando um Deployment é atualizado (por exemplo, uma nova versão da imagem do contêiner), o Kubernetes cria um novo ReplicaSet e o escala gradualmente enquanto reduz o ReplicaSet antigo. Os parâmetros maxSurge e maxUnavailable controlam o ritmo da atualização. Por padrão, maxSurge é 25% (permite até 25% de pods extras acima da contagem desejada) e maxUnavailable é 25% (permite que até 25% dos pods fiquem indisponíveis durante a atualização). Esse comportamento de rolling é definido no campo spec.strategy.type do Deployment, que por padrão é RollingUpdate.
Por que o Valor Correto está Certo
A estratégia Rolling Update é o padrão porque oferece um equilíbrio entre velocidade e segurança. Ela atualiza os pods incrementalmente, garantindo que um certo número de pods permaneça disponível para atender ao tráfego. Isso é adequado para a maioria das aplicações que exigem deployments com zero downtime.
Por que os Valores Incorretos estão Errados
- Blue/Green deployment: Essa estratégia envolve executar dois ambientes idênticos (blue e green) e alternar o tráfego de uma só vez. Não é o padrão; requer configuração manual ou ferramentas adicionais (por exemplo, usando Services com seletores de label).
- Canary deployment: Essa estratégia libera uma nova versão para um pequeno subconjunto de usuários antes de distribuir para todos. Não é incorporada como estratégia padrão; requer configurações personalizadas ou recursos de service mesh.
- Recreate deployment: Essa estratégia encerra todos os pods antigos antes de criar novos. Não é o padrão porque causa tempo de inatividade. Pode ser definida explicitamente alterando
spec.strategy.typeparaRecreate.
Em resumo, o Kubernetes usa por padrão o Rolling Update para fornecer um processo de atualização seguro e gradual com o mínimo de interrupção.