Saltar al contenido principal

Lab 3.2 - Despliegue con ReplicaSets

Objetivos​

Al final de este laboratorio, usted será capaz de:

  • Crear y gestionar ReplicaSets
  • Comprender la auto-sanación
  • Escalar ReplicaSets
  • Observar el comportamiento de los ReplicaSets

Ejercicio 1: Crear un ReplicaSet​

Paso 1: Crear el archivo YAML​

Cree 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

Paso 2: Aplicar​

kubectl apply -f replicaset.yaml

Paso 3: Verificar​

# Ver el ReplicaSet
kubectl get replicaset

# Ver los Pods creados
kubectl get pods -l app=web

Ejercicio 2: Auto-Sanación​

Paso 1: Eliminar un Pod​

# Eliminar un Pod
kubectl delete pod <pod-name>

# Observar inmediatamente
kubectl get pods -l app=web -w

Pregunta: ¿Qué sucede? Se crea automáticamente un nuevo Pod.

Paso 2: Verificar el ReplicaSet​

kubectl describe replicaset web-replicaset

Ejercicio 3: Escalado​

Paso 1: Aumentar los réplicas​

# Escalar a 5 réplicas
kubectl scale replicaset web-replicaset --replicas=5

# Verificar
kubectl get pods -l app=web

Paso 2: Reducir los réplicas​

# Escalar a 2 réplicas
kubectl scale replicaset web-replicaset --replicas=2

# Observar la eliminación
kubectl get pods -l app=web -w

Ejercicio 4: Modificar el Template​

Paso 1: Editar el ReplicaSet​

kubectl edit replicaset web-replicaset

Cambie la imagen de nginx:1.20 a nginx:1.21.

Pregunta: ¿Qué sucede? Los Pods existentes no cambian. ¿Por qué?

Paso 2: Eliminar los Pods​

# Eliminar todos los Pods
kubectl delete pods -l app=web

# Observar la recreación
kubectl get pods -l app=web

Los nuevos Pods utilizan la nueva imagen.


Limpieza​

kubectl delete replicaset web-replicaset

Preguntas de Reflexión​

  1. ¿Por qué el ReplicaSet no actualiza los Pods existentes?
  2. ¿Cómo mantiene el ReplicaSet el número de réplicas?
  3. ¿Cuál es la diferencia entre un ReplicaSet y un Deployment?

Próximos Pasos​

Lab 3.3: Deployments y Rolling Updates
Capítulo 3.6: Deployments


Laboratorio creado el: Diciembre 2024