Pular para o conteúdo principal

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​

  1. replicas: Número desejado de Pods
  2. selector: Como identificar os Pods a serem gerenciados
  3. 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