Skip to main content

Conteneurs & orchestrateurs

Introduction

Les conteneurs et les orchestrateurs comme Docker et Kubernetes sont des technologies clés pour la virtualisation légère et la gestion d'applications à grande échelle. Ce résumé corrige les fautes d'orthographe et de grammaire du document fourni, en conservant les informations essentielles sans ajouter ni supprimer de contenu factuel.

Les conteneurs & Docker

voir la fiche sur les généralités Docker 

Les conteneurs

Ils sont une méthode de virtualisation légère qui permet de regrouper une application et ses dépendances dans un environnement isolé. Contrairement aux machines virtuelles, qui virtualisent un système d'exploitation entier, les conteneurs partagent le noyau du système d'exploitation hôte, ce qui les rend plus légers et plus rapides à démarrer.

 

Avantages principaux : portabilité (exécutables sur tout système compatible), efficacité (moins de surcharge), isolation (améliore sécurité et stabilité), scalabilité (facile à mettre à l'échelle).

 

Différences conteneurs vs machines virtuelles

Caractéristique Conteneurs Machines virtuelles
Virtualisation Au niveau OS Au niveau matériel conteneurs-et-orchestration.pptx.pdf
Performance Plus rapide à démarrer et exécuter Plus lent conteneurs-et-orchestration.pptx.pdf
Ressources Partage le noyau hôte, moins gourmand OS complet par VM, plus de ressources conteneurs-et-orchestration.pptx.pdf
Isolation Moins forte, mais suffisante souvent Plus forte conteneurs-et-orchestration.pptx.pdf
Portabilité Très portable Moins, dépend de l'hyperviseur conteneurs-et-orchestration.pptx.pdf

Les conteneurs conviennent aux microservices et déploiements rapides ; les VM aux OS complets ou isolation maximale.

 

Docker

Docker est une plateforme open-source pour développer, livrer et exécuter des applications dans des conteneurs.

Composants clés : Docker Engine (gère les conteneurs), Docker Images (modèles immuables avec code et dépendances), Docker Containers (instances exécutables), Docker Hub (registre public).

 

Kubernetes

Kubernetes est un système open-source créé par google pour gérer le workload interne mais donné à l'opensource autour de 2018 pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées, souvent avec Docker.

Docker ne peut créer des work loads que sur des nœuds. Si le nœud tombe, le service tombe. Pour gérer les noeuds il faut utiliser docker swarm ou kubernetes. Kubernetes fonctionne en cluster avec un container runtime (docker, cointainer d) qui va créer les containers.

Composants : Master Node (gère le cluster : API Server, Scheduler, Controller Manager, etcd), Worker Nodes (exécutent les apps : kubelet, kube-proxy, moteur comme Docker), Pods (unités minimales, 1+ conteneurs), Services (accès aux pods), Volumes (stockage persistant).

 

Orchestration avec Kubernetes

Kubernetes gère déploiement (via YAML), mise à l'échelle (auto/manuelle, ex. kubectl scale deployment my-app --replicas=5), réseaux/stockage (services, volumes), sécurité/monitoring (Prometheus, politiques). Exemple YAML déploiement : apiVersion: apps/v1, kind: Deployment, replicas: 3, etc

 

Intégration Docker-Kubernetes

Docker crée/gère images ; Kubernetes orchestre clusters. Étapes : créer image Docker, push vers registre (Docker Hub), YAML Kubernetes, déployer. Bonnes pratiques : images légères, YAML config, monitoring/logging, sécurité.

 

Cas d'usage

Déploiement apps web à grande échelle.

Traitement données (ex. Apache Spark).

Architectures microservices

Exemple entreprise : image Docker → push Hub → YAML → déploiement auto Kubernetes.

 

=) Conteneurs : virtualisation légère. Docker : gestion conteneurs. Kubernetes : orchestration. Ensemble pour apps scalables. 

=) Ressources : docs officielles Docker/Kubernetes, tutoriels.