TP 4
Exposer un service Redis avec des StatefulSets et des volumes persistants dans Kubernetes
Ce TP vise à expérimenter l'utilisation des StatefulSets pour garantir la persistance des données dans les bases de données Redis, ainsi qu'à créer et utiliser des PersistentVolumeClaims (PVC) et des services pour exposer les bases de données.
Phase 1 : Création d'un Volume Persistant
- Action : Créer un PersistentVolumeClaim (PVC) et vérifier son enregistrement.
Observation : Le PVC doit être créé et associé à un volume disponible.
Contraintes:- Nom du namespace :
mynamespace
- Nom du PVC :
redis-pvc
- Taille du PVC :
100Mi
- AccessMode du PVC :
ReadWriteOnce
- Nom du namespace :
Indice
- Action : Utiliser le PVC dans un pod redis .
Observation : Le PVC doit être persisté même quand le pod est détruit et redéployé.
Contraintes:- Nom du namespace :
mynamespace
- Nom du pod :
redis-pod
" - Image du pod :
redis:latest
- Nom du volume dans le pod :
redis-storage
- Point de montage du PVC :
/data
- Nom du namespace :
Indice
- Action : Lister les volumes attachés au pod et identifier leurs types.
Observation : Vous devez voir que le PVC est correctement attaché au volume ainsi que d'autres volumes automatiques.
Indice
Solution
Afficher
Phase 2 : Déploiement de Redis avec StatefulSet
- Action : Créer un StatefulSet pour Redis avec un VolumeClaimTemplate.
Observation : Chaque Pod du StatefulSet doit avoir un volume persistant unique, basé sur unVolumeClaimTemplate
.
Contraintes:- Spécifications du StatefulSet :
- Nom du Stateful Set
redis-set
- Nombre de replicas :
2
- Labels :
app: redis
- Nom du pod : redis-pod
- Image du pod :
redis:latest
- Port exposé par le conteneur : 6379
- Nom du Stateful Set
- Spécifications du Volume :
name: redis-data
,taille du volume: 100Mi
,accessModes: [ "ReadWriteOnce" ]
- Spécifications du StatefulSet :
Indice
- Action : Observer l'obtention des PVC et des Pods dans le StatefulSet.
Observation : Vous devez observer que les Pods et les PVC sont nommés avec un index incrémental (par ex.,redis-data-0
,redis-data-1
).
Solution
Afficher
Phase 3 : Exposition des services
- Action : Créer un manfeste de service Redis en s'appuyant sur les labels du stateful set.
Observation : Le service doit permettre d'accéder à Redis depuis l'ip du service.
Contraintes:- Nom du namespace :
mynamespace
- Nom du service :
redis-service
- Type de service :
ClusterIP
(par défaut en ligne de commande) - Selector :
app: redis
- Nom du namespace :
Indice
- Action : Modifier le fichier YAML du service exposé et changer le label pour cibler un seul pod
Observation : Le fichier YAML doit refléter la configuration actuelle du service exposé.
Contraintes:- Image du pod :
redis:latest
- Selector :
statefulset.kubernetes.io/pod-name: redis-set-0
- Image du pod :
Indice
Solution
Afficher
Avancé
- Explorer les différents types de services Kubernetes (ClusterIP, NodePort, LoadBalancer) pour exposer Redis de manière différente.