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