Orquestração de Contêineres Question #019e3a4f
Qual é a diferença entre um Deployment e um ReplicaSet?
Com um Deployment, você não pode controlar o número de réplicas de Pod.
Um ReplicaSet não garante um conjunto estável de réplicas de Pod em execução.
Um Deployment é basicamente o mesmo que um ReplicaSet com anotações.
Um Deployment é um conceito de nível superior que gerencia ReplicaSets.
Official Explanation / Community Explanations
Um Deployment é um recurso Kubernetes de nível superior que gerencia ReplicaSets. Ele fornece atualizações declarativas para Pods e ReplicaSets, permitindo recursos como atualizações contínuas (rolling updates), reversões (rollbacks) e escalonamento. Um ReplicaSet garante que um número especificado de réplicas de Pod esteja em execução a qualquer momento, mas não suporta atualizações contínuas ou reversões por conta própria. Deployments criam e gerenciam ReplicaSets, permitindo atualizações controladas e reversão fácil para versões anteriores.
Como funciona:
- Um controlador de Deployment observa mudanças no objeto Deployment e cria ou atualiza um ReplicaSet para corresponder ao estado desejado.
- Quando você atualiza um Deployment (por exemplo, altera a imagem do contêiner), ele cria um novo ReplicaSet e reduz gradualmente o antigo enquanto aumenta o novo, garantindo zero downtime.
- ReplicaSets são responsáveis por manter um conjunto estável de Pods réplica. Eles usam um label selector para identificar quais Pods gerenciar.
- Deployments adicionam uma camada extra de abstração, permitindo gerenciar o ciclo de vida de ReplicaSets e Pods de forma declarativa.
Por que a resposta correta está certa:
- A afirmação "Um Deployment é um conceito de nível superior que gerencia ReplicaSets" está correta porque Deployments orquestram ReplicaSets para fornecer estratégias de implantação avançadas.
Por que as respostas incorretas estão erradas:
- A afirmação "Com um Deployment, você não pode controlar o número de réplicas de Pod" é falsa. Deployments permitem especificar o número desejado de réplicas através do campo
replicasno spec. - A afirmação "Um ReplicaSet não garante um conjunto estável de réplicas de Pod em execução" está incorreta. O objetivo principal de um ReplicaSet é garantir que um número especificado de réplicas de Pod esteja em execução o tempo todo.
- A afirmação "Um Deployment é basicamente o mesmo que um ReplicaSet com anotações" é falsa. Deployments são um tipo de recurso separado que gerencia ReplicaSets e fornece funcionalidades adicionais além do que os ReplicaSets oferecem.