Comme vous le lisez sur sa page Github :
Kubernetes est un système open source pour la gestion des applications conteneurisées sur plusieurs hôtes, fournissant des mécanismes de base pour le déploiement, la maintenance et la mise à l'échelle des applications.
Kubernetes c'est:
lean: lightweight, simple, accessible
portable: public, private, hybrid, multi cloud
extensible: modular, pluggable, hookable, composable
self-healing: auto-placement, auto-restart, auto-replication
Kubernetes s'appuie sur une décennie et demie d'expérience chez Google dans la gestion de charges de travail de production à grande échelle, combinées aux meilleures idées et pratiques de la communauté.
Pour moi, Kubernetes est un outil d'orchestration de conteneurs de Google. En raison de sa conception, vous pouvez implémenter la compatibilité avec n'importe quel moteur de conteneur, mais je pense que maintenant c'est limité à Docker. Il y a quelques concepts importants dans son architecture:
Kubernetes fonctionne avec les concepts suivants:
Les clusters sont les ressources de calcul sur lesquelles vos conteneurs sont créés. Kubernetes peut fonctionner n'importe où! Consultez les Guides de mise en route pour obtenir des instructions sur une variété de services.
Les pods sont un groupe colocalisé de conteneurs Docker avec des volumes partagés. Ce sont les plus petites unités déployables pouvant être créées, planifiées et gérées avec Kubernetes. Les pods peuvent être créés individuellement, mais il est recommandé d'utiliser un contrôleur de réplication même si vous créez un seul pod. En savoir plus sur les pods.
Les contrôleurs de réplication gèrent le cycle de vie des pods. Ils garantissent qu'un nombre spécifié de pods s'exécutent à un moment donné, en créant ou en supprimant des pods selon les besoins. En savoir plus sur les contrôleurs de réplication.
Les services fournissent un nom et une adresse uniques et stables pour un ensemble de pods. Ils agissent comme des équilibreurs de charge de base. En savoir plus sur les services.
Les étiquettes sont utilisées pour organiser et sélectionner des groupes d'objets en fonction de paires clé / valeur. En savoir plus sur les étiquettes.
Ainsi, vous avez un groupe de machines qui forme un cluster où vos conteneurs sont exécutés. Vous pouvez également définir un groupe de conteneurs qui fournissent un service, de la même manière que vous le faites avec d'autres outils comme fig (par exemple: le pod webapp peut être un serveur rails et une base de données postgres). Vous disposez également d'autres outils pour assurer un certain nombre de conteneurs / pods d'un service s'exécutant en même temps, un magasin clé-valeur, une sorte d'équilibreur de charge intégré ...
Si vous savez quelque chose sur coreos, c'est une solution très similaire mais de Google. Algo Kubernetes a une bonne intégration avec Google Cloud Engine.