Chapitre 2.8 - Container Runtime
Objectifs d'Apprentissage
À la fin de ce chapitre, vous serez capable de:
- Comprendre le rôle du Container Runtime
- Identifier les différents runtimes supportés
- Expliquer l'interface CRI
- Comprendre l'isolation des conteneurs
Qu'est-ce qu'un Container Runtime?
Le Container Runtime est le logiciel responsable de l'exécution des conteneurs sur un node. Il gère le cycle de vie des conteneurs: création, démarrage, arrêt, suppression.
Container Runtime Interface (CRI)
Kubernetes utilise CRI pour communiquer avec les runtimes:
Opérations CRI
RunPodSandbox()- Créer un environnement isoléCreateContainer()- Créer un conteneurStartContainer()- Démarrer un conteneurStopContainer()- Arrêter un conteneurRemoveContainer()- Supprimer un conteneur
Runtimes Supportés
1. containerd (Recommandé)
Runtime moderne, léger, utilisé par défaut dans beaucoup de distributions:
Avantages:
- Léger et performant
- Standard de l'industrie
- Supporte OCI (Open Container Initiative)
2. CRI-O
Runtime optimisé pour Kubernetes:
Avantages:
- Spécialement conçu pour Kubernetes
- Léger
- Conforme OCI
3. Docker (Déprécié)
Docker via dockershim (déprécié depuis Kubernetes 1.24):
Note: Docker Engine peut toujours être utilisé, mais via containerd.
Isolation et Sécurité
Namespaces Linux
Les conteneurs utilisent les namespaces Linux pour l'isolation:
Types de namespaces:
- PID: Isolation des processus
- Network: Isolation réseau
- Mount: Isolation du filesystem
- UTS: Isolation hostname
- IPC: Isolation inter-processus
- User: Isolation utilisateurs
Cgroups
Limitation des ressources:
Cycle de Vie d'un Conteneur
Images de Conteneurs
Pull d'Images
Le Container Runtime télécharge les images depuis les registries:
Formats d'Images
- OCI: Open Container Initiative (standard)
- Docker: Format Docker (compatible OCI)
Commandes Utiles
# Voir les conteneurs (si Docker)
docker ps
# Voir les images
docker images
# Voir les logs d'un conteneur
docker logs <container-id>
# Inspecter un conteneur
docker inspect <container-id>
Résumé
Dans ce chapitre, vous avez appris:
Container Runtime: Exécute les conteneurs sur les nodes
CRI: Interface standard pour communiquer avec les runtimes
Runtimes: containerd, CRI-O (recommandés), Docker (déprécié)
Isolation: Namespaces Linux et cgroups
Images: Téléchargement depuis les registries
Prochaines Étapes
Maintenant que vous comprenez le Container Runtime:
Chapitre 2.9: Communication Inter-Composants
Chapitre 2.10: Add-ons et Extensions
Chapitre créé le: Décembre 2024