iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
Formations
YAML / Bash · Intermédiaire

Kubernetes

De Docker Compose à Kubernetes : architecture complète, distributions (K8s, K3s, K0s, MicroK8s), objets fondamentaux, networking, Ingress, scaling automatique et déploiement en production.

KubernetesK3skubectlHelmDocker
01Pourquoi Kubernetes — le problème Docker seul ne résout pas02K8s, K3s, K0s, MicroK8s — quelle distribution choisir03Architecture interne — Control Plane et Worker Nodes04Installation — K3s en production et kubectl05Objets fondamentaux — Pod, Deployment, Service, Namespace06Configuration et stockage — ConfigMap, Secret, PVC07Networking et Ingress — exposer vos services08Scaling, RBAC, Helm et production
Chapitre 1·20 min

Pourquoi Kubernetes — le problème Docker seul ne résout pas

Docker résout un problème réel : packager une application avec ses dépendances dans un conteneur reproductible. Kubernetes résout un problème différent : faire tourner des centaines de ces conteneurs de façon fiable, sur plusieurs machines, sans intervention humaine permanente.

Comprendre pourquoi K8s existe avant de toucher la moindre commande kubectl — c'est ce qui fait la différence entre "je suis la doc" et "je comprends ce que je fais".

Ce que Docker Compose gère bien

Docker Compose est excellent pour un seul serveur. Vous définissez vos services dans un fichier YAML, vous tapez docker compose up, et tout tourne. Simple, lisible, efficace.

docker-compose.yml
services:
  web:
    image: mon-app:latest
    ports: ["3000:3000"]
    depends_on: [db, redis]
  db:
    image: postgres:16
    volumes: [db_data:/var/lib/postgresql/data]
  redis:
    image: redis:7-alpine

Pour un blog, une petite API, un projet perso — Docker Compose est suffisant. N'utilisez pas Kubernetes si Docker Compose fait le travail.

Où Docker Compose atteint ses limites

Un seul point de défaillance

Votre application tourne sur un VPS. Le VPS tombe — disque défaillant, panne réseau, maintenance chez l'hébergeur. Votre app est down jusqu'à ce que vous interveniez.

Docker Compose n'a aucun mécanisme pour démarrer vos conteneurs sur une autre machine. C'est vous qui devez le faire, manuellement.

Pas de scaling horizontal natif

# Docker Compose peut scaler sur une même machine
docker compose up --scale web=3
 
# Mais les 3 instances sont sur la même machine
# Si la machine est à 100% CPU, les 3 instances souffrent ensemble

Kubernetes distribue les instances sur différentes machines (nodes). Si un node est saturé, K8s place les nouvelles instances ailleurs.

Déploiement = interruption

Avec Docker Compose, mettre à jour une image signifie arrêter le conteneur, le recréer, le redémarrer. Pendant ce temps — quelques secondes à quelques minutes — votre service est indisponible.

Kubernetes fait des rolling updates : il démarre la nouvelle version, vérifie qu'elle répond, puis coupe l'ancienne. Zéro interruption.

Pas d'auto-healing

Docker Compose redémarre un conteneur qui crashe (avec restart: always). Mais si le nœud où tourne le conteneur tombe, Docker Compose ne peut rien faire. Kubernetes, lui, détecte que le nœud est mort et replanifie les pods sur les nœuds survivants — automatiquement, en quelques secondes.

Pas de service discovery dynamique

En Docker Compose, les services se trouvent par nom de service (résolution DNS interne de Docker). Ça fonctionne bien sur une machine. Mais quand un service tourne sur 10 machines différentes, il faut un système pour savoir où chaque instance se trouve et distribuer le trafic.

Kubernetes a cela nativement avec les Services — une IP virtuelle stable qui distribue le trafic vers toutes les instances saines.

Ce que Kubernetes apporte concrètement

Problème                    →  Solution K8s
──────────────────────────────────────────────────────
Serveur qui tombe           →  Multi-node, rescheduling automatique
Montée en charge soudaine   →  HPA (Horizontal Pod Autoscaler)
Déploiement sans downtime   →  Rolling update + readiness probes
Configuration sécurisée     →  Secrets chiffrés, ConfigMaps
Traffic distribution        →  Services + Ingress
Rollback rapide             →  kubectl rollout undo
Isolation des environnements →  Namespaces (dev/staging/prod)

Docker Compose vs Kubernetes — quand choisir quoi

CritèreDocker ComposeKubernetes
Complexité opérationnelleFaibleÉlevée
Scaling multi-machineNonOui
Auto-healing multi-nodeNonOui
Rolling updatesManuelNatif
Équipe < 5 devs, 1 serveur✅ Suffisant❌ Overkill
SLA > 99.9%, plusieurs régions❌ Insuffisant✅ Adapté
Service mesh, RBAC, auditNonOui

La règle simple : si une panne de 10 minutes est acceptable et que vous tenez sur un serveur, Docker Compose. Si vous avez besoin de haute disponibilité, de scaling automatique, ou de gérer plusieurs équipes sur une même infrastructure — Kubernetes.

Docker Swarm — la troisième option

Docker a son propre orchestrateur : Swarm. Il est intégré dans Docker Engine, plus simple que Kubernetes, et fait du multi-node.

docker swarm init
docker stack deploy -c docker-compose.yml myapp

Swarm vs K8s en 2026 : Swarm est maintenu mais n'évolue plus vraiment. L'écosystème K8s (Helm, Prometheus, Istio, ArgoCD, etc.) n'a pas d'équivalent pour Swarm. En production sérieuse, K8s a gagné.


Le problème est clair. Le chapitre suivant compare les distributions Kubernetes — K8s vanilla, K3s, K0s, MicroK8s, et les offres cloud managées — pour choisir celle qui correspond à votre contexte.

Suivant
K8s, K3s, K0s, MicroK8s — quelle distribution choisir

Développeur fullstack passionné. J'apprends en construisant et je documente tout — front, back, outils. Le code s'apprend mieux en public.

Naviguer

IndexTous les articlesFormationsProfilOutilsBibliothech

Ailleurs

GitHub RSS

Newsletter

Les articles, libs et découvertes. Une fois par semaine, pas plus.

© 2026 William LoreeConçu & codé à la main