O que é um conjunto de réplicas e um deployment?
sobes.tech IA
Resposta da IA
O ReplicaSet garante um número específico de pods idênticos a funcionar no cluster. Monitora o estado dos pods e substitui automaticamente aqueles que falharam ou pararam de funcionar.
O Deployment é fornecido sobre o ReplicaSet. Gerencia atualizações e retrocessos de aplicações, mantendo um histórico de versões do deployment. Permite realizar atualizações usando a estratégia de rolling update ou recreate.
# Exemplo de manifesto de Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Define o número desejado de pods (através do ReplicaSet)
selector:
matchLabels:
app: nginx
strategy:
type: RollingUpdate # Estratégia de atualização
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2 # Versão da imagem que será atualizada
ports:
- containerPort: 80
Neste exemplo, o Deployment criará um ReplicaSet que manterá 3 pods com a imagem nginx:1.14.2. Ao alterar a versão da imagem no manifesto do Deployment, ele criará um novo ReplicaSet para a nova versão e gradualmente direcionará o tráfego para ele, removendo os pods antigos de acordo com a estratégia de RollingUpdate.
Tabela de comparação:
| Oportunidade | ReplicaSet | Deployment |
|---|---|---|
| Garantia do número de pods | ✅ | ✅ |
| Atualização de aplicações | ❌ | ✅ |
| Reversão de versões | ❌ | ✅ |
| Gestão do histórico | ❌ | ✅ |