Lab 3.2 - Deploy com ReplicaSets
Objetivos
Ao final deste lab, você será capaz de:
- Criar e gerenciar ReplicaSets
- Entender auto-recuperação
- Escalar ReplicaSets
- Observar o comportamento dos ReplicaSets
Exercício 1: Criar um ReplicaSet
Etapa 1: Criar o arquivo YAML
Crie replicaset.yaml:
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: web-replicaset
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.20
ports:
- containerPort: 80
Etapa 2: Aplicar
kubectl apply -f replicaset.yaml
Etapa 3: Verificar
# Ver o ReplicaSet
kubectl get replicaset
# Ver os Pods criados
kubectl get pods -l app=web
Exercício 2: Auto-recuperação
Etapa 1: Deletar um Pod
# Deletar um Pod
kubectl delete pod <pod-name>
# Observar imediatamente
kubectl get pods -l app=web -w
Pergunta: O que acontece? Um novo Pod é criado automaticamente.
Etapa 2: Verificar o ReplicaSet
kubectl describe replicaset web-replicaset
Exercício 3: Escalando
Etapa 1: Aumentar os réplicas
# Escalar para 5 réplicas
kubectl scale replicaset web-replicaset --replicas=5
# Verificar
kubectl get pods -l app=web
Etapa 2: Reduzir os réplicas
# Escalar para 2 réplicas
kubectl scale replicaset web-replicaset --replicas=2
# Observar a remoção
kubectl get pods -l app=web -w
Exercício 4: Modificar o Template
Etapa 1: Editar o ReplicaSet
kubectl edit replicaset web-replicaset
Altere a imagem de nginx:1.20 para nginx:1.21.
Pergunta: O que acontece? Os Pods existentes não mudam. Por quê?
Etapa 2: Deletar os Pods
# Deletar todos os Pods
kubectl delete pods -l app=web
# Observar a recriação
kubectl get pods -l app=web
Os novos Pods usam a nova imagem.
Limpeza
kubectl delete replicaset web-replicaset
Perguntas para Reflexão
- Por que o ReplicaSet não atualiza os Pods existentes?
- Como o ReplicaSet mantém o número de réplicas?
- Qual a diferença entre um ReplicaSet e um Deployment?
Próximos Passos
Lab 3.3: Deployments e Rolling Updates
Capítulo 3.6: Deployments
Lab criado em: Dezembro 2024