Capítulo 3.5 - ReplicaSets
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o papel dos ReplicaSets
- Criar e gerenciar ReplicaSets
- Entender como os ReplicaSets mantêm o número de réplicas
- Utilizar ReplicaSets com Deployments
O que é um ReplicaSet?
Um ReplicaSet mantém um número estável de réplicas de Pods em execução. Ele garante que um número especificado de Pods idênticos esteja sempre disponível.
Por que usar ReplicaSets?
Auto-Cura
Se um Pod falhar, o ReplicaSet cria automaticamente um novo Pod:
Escalabilidade
Você pode facilmente aumentar ou diminuir o número de réplicas.
Declaração YAML
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: web-replicaset
labels:
app: web
tier: frontend
spec:
replicas: 3
selector:
matchLabels:
app: web
tier: frontend
template:
metadata:
labels:
app: web
tier: frontend
spec:
containers:
- name: nginx
image: nginx:1.20
ports:
- containerPort: 80
Seções Importantes
- replicas: Número desejado de Pods
- selector: Como identificar os Pods a serem gerenciados
- template: Modelo para criar novos Pods
Selector e Labels
Importante: Os labels em selector.matchLabels devem corresponder aos labels em template.metadata.labels.
Gerenciamento de ReplicaSets
Criar um ReplicaSet
# A partir de um arquivo YAML
kubectl apply -f replicaset.yaml
# Criar e visualizar o YAML
kubectl create replicaset web-rs --image=nginx:1.20 --replicas=3 --dry-run=client -o yaml
Escalabilidade
# Alterar o número de réplicas
kubectl scale replicaset web-replicaset --replicas=5
# Ou editar diretamente
kubectl edit replicaset web-replicaset
Remover
# Remover o ReplicaSet (os Pods também)
kubectl delete replicaset web-replicaset
# Remover apenas o ReplicaSet (manter os Pods)
kubectl delete replicaset web-replicaset --cascade=orphan
ReplicaSets vs Deployments
ReplicaSets (Baixo Nível)
- Gerenciam Pods diretamente
- Sem controle de versão
- Sem rolling updates
Deployments (Alto Nível)
- Gerenciam ReplicaSets
- Controle de versão
- Rolling updates e rollbacks
- Recomendado para a maioria dos casos
Resumo
Neste capítulo, você aprendeu:
ReplicaSet: Mantém um número estável de Pods idênticos
Auto-cura: Cria automaticamente novos Pods quando necessário
Escalabilidade: Facilmente ajustável
Selector: Identifica os Pods a serem gerenciados
Deployments: Utilizam ReplicaSets com funcionalidades avançadas
Próximos Passos
Agora que você entende os ReplicaSets:
Capítulo 3.6: Deployments - Gerenciamento Avançado
Lab 3.2: Deploy com ReplicaSets
Capítulo criado em: Dezembro de 2024