Kubernetes
La plateforme d'orchestration de conteneurs
Kubernetes est un système open source qui automatise le déploiement, la mise à l’échelle et la gestion des applications conteneurisées. Il regroupe les conteneurs en unités logiques pour faciliter leur gestion et leur découverte, et s’efforce en permanence de faire correspondre l’état réel d’un cluster à l’état que vous déclarez.
Comment ça fonctionne
Un cluster Kubernetes se compose d’un plan de contrôle (API server, scheduler, controller manager, etcd) et de nœuds de travail qui exécutent un runtime de conteneurs et l’agent kubelet. Vous décrivez l’état souhaité — combien de réplicas d’un Pod doivent tourner, de quelles ressources ils ont besoin, comment ils doivent être exposés — sous forme d’objets dans l’API, et les controllers de Kubernetes réconcilient en continu le cluster vers cet état.
Concepts clés
- Pod — la plus petite unité déployable : un ou plusieurs conteneurs qui partagent réseau et stockage.
- Deployment — gère un ensemble de Pods répliqués et prend en charge les mises à jour progressives et les retours en arrière.
- Service — un point d’accès réseau stable qui répartit le trafic entre un ensemble de Pods.
- Namespace — un moyen de découper un cluster en environnements logiques isolés.
- Controller — une boucle de contrôle qui surveille l’état du cluster et le rapproche de l’état souhaité.
Pourquoi les équipes adoptent Kubernetes
- Portable. Les mêmes manifestes fonctionnent sur tout cluster conforme, d’un ordinateur portable à un grand déploiement multi-régions.
- Auto-réparant. Les conteneurs défaillants sont redémarrés, les nœuds en mauvaise santé sont drainés et les charges de travail sont replanifiées automatiquement.
- Extensible. Les Custom Resource Definitions et les controllers permettent d’étendre l’API pour gérer vos propres ressources métier.
- Écosystème. Presque tous les projets de la CNCF — service meshes, outils d’observabilité, controllers GitOps — sont conçus pour fonctionner sur Kubernetes et l’étendre.
Pour commencer
Installez kubectl, obtenez l’accès à un cluster, et appliquez un manifeste de Deployment et de Service pour exécuter votre première charge de travail. Les guides ci-dessous s’appuient sur ces bases avec des patterns courants pour exécuter de vraies applications.