Aller au contenu principal

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 conteneur
  • StartContainer() - Démarrer un conteneur
  • StopContainer() - Arrêter un conteneur
  • RemoveContainer() - 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