Aller au contenu principal

Lab 3.2 - Déploiement avec ReplicaSets

Objectifs

À la fin de ce lab, vous serez capable de:

  • Créer et gérer des ReplicaSets
  • Comprendre l'auto-guérison
  • Scaler des ReplicaSets
  • Observer le comportement des ReplicaSets

Exercice 1: Créer un ReplicaSet

Étape 1: Créer le fichier YAML

Créez 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

Étape 2: Appliquer

kubectl apply -f replicaset.yaml

Étape 3: Vérifier

# Voir le ReplicaSet
kubectl get replicaset

# Voir les Pods créés
kubectl get pods -l app=web

Exercice 2: Auto-Guérison

Étape 1: Supprimer un Pod

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

# Observer immédiatement
kubectl get pods -l app=web -w

Question: Que se passe-t-il? Un nouveau Pod est créé automatiquement.

Étape 2: Vérifier le ReplicaSet

kubectl describe replicaset web-replicaset

Exercice 3: Scaling

Étape 1: Augmenter les réplicas

# Scale à 5 réplicas
kubectl scale replicaset web-replicaset --replicas=5

# Vérifier
kubectl get pods -l app=web

Étape 2: Réduire les réplicas

# Scale à 2 réplicas
kubectl scale replicaset web-replicaset --replicas=2

# Observer la suppression
kubectl get pods -l app=web -w

Exercice 4: Modifier le Template

Étape 1: Éditer le ReplicaSet

kubectl edit replicaset web-replicaset

Changez l'image de nginx:1.20 à nginx:1.21.

Question: Que se passe-t-il? Les Pods existants ne changent pas. Pourquoi?

Étape 2: Supprimer les Pods

# Supprimer tous les Pods
kubectl delete pods -l app=web

# Observer la recréation
kubectl get pods -l app=web

Les nouveaux Pods utilisent la nouvelle image.


Nettoyage

kubectl delete replicaset web-replicaset

Questions de Réflexion

  1. Pourquoi le ReplicaSet ne met-il pas à jour les Pods existants?
  2. Comment le ReplicaSet maintient-il le nombre de réplicas?
  3. Quelle est la différence entre un ReplicaSet et un Deployment?

Prochaines Étapes

Lab 3.3: Deployments et Rolling Updates
Chapitre 3.6: Deployments


Lab créé le: Décembre 2024