Docker vs Kubernetes : lequel choisir ?
Docker ou Kubernetes : lequel choisir ?
Docker et Kubernetes sont souvent associés, mais ils ne répondent pas au même besoin.
Docker
Sert principalement à construire et exécuter des conteneurs.
Un conteneur permet d'empaqueter une application avec ce dont elle a besoin pour fonctionner de manière isolée et reproductible.
Docker est parfaitement adapté pour :
- développer une application ;
- tester un environnement ;
- faire tourner quelques services ;
- héberger une application sur un VPS ;
- gérer une petite infrastructure.
Par exemple, une application avec une API, PostgreSQL et Redis peut très bien fonctionner avec Docker Compose.
Serveur
├── API
├── PostgreSQL
└── Redis
Pas besoin de sortir Kubernetes pour trois conteneurs.
Kubernetes
Intervient lorsque l'infrastructure devient beaucoup plus complexe.
Il permet d'orchestrer automatiquement des conteneurs répartis sur plusieurs machines.
Il peut notamment gérer :
- plusieurs instances d'une application ;
- le redémarrage automatique ;
- le scaling ;
- la répartition des services ;
- les déploiements progressifs ;
- la haute disponibilité.
Par exemple :
Load Balancer
/ | \
Node 1 Node 2 Node 3
API API API
Si vous devez gérer des dizaines ou des centaines de services sur plusieurs machines, Kubernetes devient beaucoup plus intéressant.
La règle simple
Docker : « Je veux faire tourner mes conteneurs. »
Docker Compose : « Je veux gérer plusieurs conteneurs simplement. »
Kubernetes : « Je veux automatiser l'orchestration d'une infrastructure distribuée. »
Kubernetes est puissant, mais il ajoute aussi beaucoup de complexité. Pour une petite application, Docker peut largement suffire.
N'utilisez donc pas Kubernetes parce que c'est à la mode : utilisez-le lorsque votre infrastructure est suffisamment complexe pour justifier son orchestration.