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
- ¿Por qué el ReplicaSet no actualiza los Pods existentes?
- ¿Cómo mantiene el ReplicaSet el número de réplicas?
- ¿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