Pular para o conteúdo principal

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​

  1. Por que o ReplicaSet não atualiza os Pods existentes?
  2. Como o ReplicaSet mantém o número de réplicas?
  3. 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