L’exploitation de centaines de milliers de conteneurs sur un système peut devenir ingérable et nécessite une solution de gestion d’orchestration.
C’est là que l’ orchestration de conteneurs entre en jeu qui permet aux entreprises de gérer de gros volumes tout au long de leur cycle de vie, en fournissant :
- Provisionner
- Redondance
- Surveillance de la santé
- allocation des ressources
- Mise à l'échelle et équilibrage de charge
- Déplacement entre hôtes physiques
Alors qu’il existe d’autres plateformes d’orchestration de conteneurs (par exemple, Apache Mesos, Nomad, Docker Swarm), Kubernetes est devenu la norme du secteur.
L'architecture Kubernetes consiste à exécuter des clusters qui permettent aux conteneurs de fonctionner sur plusieurs machines et environnements. Chaque cluster se compose généralement de nœuds de travail, qui exécutent les applications conteneurisées, et de nœuds de plan de contrôle, qui contrôlent le cluster. Le plan de contrôle fait office d'orchestrateur du cluster Kubernetes. Il comprend plusieurs composants : le serveur API (gère toutes les interactions avec Kubernetes), le gestionnaire de contrôle (gère tous les processus de contrôle), le gestionnaire de contrôleurs cloud (l'interface avec l'API du fournisseur de cloud), etc. Les nœuds worker gèrent les conteneurs à l'aide de systèmes d'exécution de conteneurs tels que Docker. Les pods, les plus petites unités déployables d'un cluster, contiennent un ou plusieurs conteneurs d'applications et partagent des ressources, telles que des informations de stockage et de réseau.
Kubernetes permet aux développeurs et aux opérateurs de déclarer l’état souhaité de leur environnement global de conteneurs par le biais de fichiers YAML. Kubernetes effectue ensuite tout le travail de traitement nécessaire pour établir et maintenir cet état, avec des activités qui incluent le déploiement d'un nombre spécifié d'instances d'une application ou workload donnée, le redémarrage de cette application en cas d'échec, l'équilibrage de charge, la mise à l'échelle automatique, les déploiements sans temps d'arrêt, etc. L’orchestration de conteneurs avec Kubernetes est également cruciale pour l’intégration et la distribution continues (CI/CD) ou le pipeline DevOps , ce qui serait impossible sans automatisation.
En 2015, Google a fait don de Kubernetes à la Cloud Native Computing Foundation (CNCF)8, le hub open source indépendant des fournisseurs de l’informatique cloud native exploité sous les auspices de la Linux Foundation. Depuis, Kubernetes est devenu l’outil d’orchestration de conteneurs le plus utilisé pour l’exécution des workloads basés sur les conteneurs dans le monde entier. Dans un rapport9 de la CNCF, Kubernetes est le deuxième plus grand projet open source au monde (après Linux) et le principal outil d'orchestration de conteneurs pour 71 % des entreprises du Fortune 100.