Chapitre 3.1 - Introduction aux Pods
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre ce qu'est un Pod
- Expliquer pourquoi les Pods existent
- Distinguer les Pods des conteneurs
- Comprendre les cas d'usage des Pods multi-conteneurs
Qu'est-ce qu'un Pod?
Un Pod est la plus petite unité déployable dans Kubernetes. C'est un groupe d'un ou plusieurs conteneurs qui partagent:
- La même adresse IP
- Le même namespace réseau
- Les mêmes volumes (stockage)
- Le même namespace IPC
Pourquoi les Pods?
Abstraction au-dessus des Conteneurs
Kubernetes ne gère pas directement les conteneurs, mais les Pods:
Avantages:
- Gestion de groupes de conteneurs
- Partage de ressources
- Cohérence réseau
Pods Mono-Conteneur
La plupart des Pods contiennent un seul conteneur:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.20
Pods Multi-Conteneurs
Un Pod peut contenir plusieurs conteneurs qui travaillent ensemble:
Cas d'Usage: Sidecar Pattern
apiVersion: v1
kind: Pod
metadata:
name: app-with-logger
spec:
containers:
- name: app
image: my-app:1.0
- name: logger
image: fluentd:latest
Exemples de sidecars:
- Logging (Fluentd, Logstash)
- Monitoring (Prometheus exporter)
- Proxy (Envoy, nginx)
- Synchronisation de fichiers
Communication Inter-Conteneurs dans un Pod
Les conteneurs dans un Pod communiquent via localhost:
Exemple:
# Dans le conteneur 1
curl http://localhost:8080 # Communique avec conteneur 2
Volumes Partagés
Les conteneurs dans un Pod partagent les volumes:
apiVersion: v1
kind: Pod
metadata:
name: shared-volume-pod
spec:
containers:
- name: writer
image: busybox
volumeMounts:
- name: shared-data
mountPath: /data
- name: reader
image: busybox
volumeMounts:
- name: shared-data
mountPath: /data
volumes:
- name: shared-data
emptyDir: {}
Résumé
Dans ce chapitre, vous avez appris:
Pod: Plus petite unité déployable, groupe de conteneurs
Ressources partagées: IP, réseau, volumes, IPC
Pods mono-conteneur: Cas le plus courant
Pods multi-conteneurs: Pour sidecars et conteneurs collaboratifs
Communication: Via localhost entre conteneurs d'un même Pod
Prochaines Étapes
Maintenant que vous comprenez les Pods:
Chapitre 3.2: Déclaration YAML des Pods
Lab 3.1: Création et Gestion de Pods
Chapitre créé le: Décembre 2024