Que fait Apache Mesos que Kubernetes ne peut pas faire et vice versa?
Mesos est un planificateur à deux niveaux. Bien sûr, il récupère les informations sur les ressources de chaque machine et les transmet au planificateur de niveau supérieur de sorte que les frameworks comme kubernetes puissent utiliser pour planifier des conteneurs sur plusieurs machines, mais Kubernetes peut lui-même planifier des conteneurs sur plusieurs machines (pas besoin de Mesos à cet égard). Alors, quelles sont les petites choses qu'Apache Mesos peut faire que Kubernetes ne peut pas faire et vice versa?
Mesos et Kubernetes sont tous deux des orchestrateurs de conteneurs de niveau n. Cela signifie que vous pouvez obtenir les mêmes fonctionnalités, mais certaines tâches pourraient être plus faciles (lire. Mieux) sur l'une d'entre elles. En fait, vous pouvez exécuter Kubernetes sur Mesos et vice versa.
Passons en revue les principales différences qui donnent un indice lorsque vous devez prendre une décision:
Comme vous l'avez souligné, Mesos est un planificateur à deux niveaux et c'est la principale différence d'architecture. Cela vous donne la possibilité de créer votre planificateur personnalisé (aka framework) pour exécuter vos tâches. De plus, vous pouvez avoir plusieurs planificateurs. Tous vos ordonnanceurs se disputent les ressources qui sont équitablement réparties à l'aide de algorithme d'équité des ressources dominantes (qui pourrait être remplacé par un allocateur personnalisé). Vous pouvez également affecter rôles aux cadres et tâches et affecter poids à ces rôles pour hiérarchiser certains planificateurs. Les rôles sont étroitement liés à ressources . Les fonctionnalités ci-dessus vous permettent de créer votre propre méthode de planification pour différentes applications (par exemple, Fenzo ) avec différentes heuristiques en fonction du type de tâches que vous souhaitez exécuter. Par exemple, lors de l'exécution de tâches par lots, il est bon de les placer près des données et le temps de démarrage n'est pas si important. D'un autre côté, l'exécution de services sans état est indépendante des nœuds et il est plus critique de les exécuter dès que possible.
L'architecture Kubernetes est un planificateur à un seul niveau. Cela signifie que les décisions relatives à l'exécution du pod sont prises en un seul composant. L'offre de ressources n'existe pas. D'un autre côté, tout y est enfichable et construit avec un design en couches.
Mesos a été créé sur Twitter (anciennement à Berkeley mais la première utilisation de production a été sur Twitter) pour soutenir leur échelle.
En mars 2010, environ un an après le début du projet Mesos, Hindman et ses collègues de Berkeley ont donné une conférence sur Twitter. Au début, il a été déçu. Seulement huit personnes environ se sont présentées. Mais ensuite, le scientifique en chef de Twitter lui a dit que huit personnes, c'était beaucoup - environ dix pour cent de l'ensemble du personnel de l'entreprise. Et puis, après l'entretien, trois de ces personnes l'ont approché.
Bientôt, Hindman consultait sur Twitter, travaillant main dans la main avec ces anciens ingénieurs de Google et d'autres pour étendre le projet. Il a ensuite rejoint l'entreprise en tant que stagiaire. Et, un an après cela, il s'est engagé comme employé à temps plein. source
Kubernetes a été créé par Google pour amener les utilisateurs dans leur cloud promettant une expérience sans verrouillage. C'est la même technique qu'Amazon a utilisée avec Kindle. Vous pouvez lire n'importe quel livre dessus, mais l'utiliser avec Amazon vous offre la meilleure expérience. Il en va de même pour Google. Vous pouvez exécuter Kubernetes sur n'importe quel cloud (public ou privé), mais les meilleurs outils, intégration et support que vous obtiendrez uniquement sur Google Cloud.
Mais Google et Microsoft sont différents. Microsoft veut tout prendre en charge sur Azure, tandis que Google veut Kubernetes partout. (Dans un sens, Microsoft est à la hauteur du nom Borg, assimilant tous les orchestrateurs, plus que Google.) Et littéralement, Kubernetes est la façon dont Google joue jusqu'à la foule du cloud sur site en le différenciant d'AWS (qui a gagné ne vendez pas son infrastructure sous forme de pile avec une licence, bien qu'il indique que VMware est son partenaire de cloud privé) et Microsoft (qui n'a toujours pas son cloud privé Azure Stack à la porte). source
La communauté Mesos est beaucoup plus petite que Kubernetes. Voilà le fait. Kubernetes bénéficie du soutien financier de nombreuses grandes entreprises, dont Google, Intel, Mirantis, RedHat et bien plus, tandis que Mesos est développé principalement par Mesosphere avec un certain soutien d'Apple, Microsoft. Bien que Mesos soit un projet mature, son développement est lent mais stable. D'un autre côté, Kubernetes est beaucoup plus jeune, mais se développe rapidement.
Origine des contributeurs méso
La communauté Kubernetes - Ian Lewis, développeur avocat, Google
Mesos a été ciblé pour les gros clients dès le début. Il est utilisé sur Twitter, Apple, Verizon, Yelp, Netflix pour exécuter des centaines de milliers de conteneurs sur des milliers de serveurs.
Kubernetes a été lancé par Google pour offrir aux développeurs une expérience de l'infrastructure Google ( GIFFE ). Dès le début, il a été préparé pour une petite échelle jusqu'à des centaines de machines. Cette contrainte est augmentée à chaque version, mais ils ont commencé petit à grandir. Il n'y a pas de données publiques sur la plus grande installation de Kubernetes.
En raison de problèmes d'échelle, Kuberntetes a commencé à être populaire auprès des petites entreprises (pas à l'échelle du cloud) tandis que Mesos était destiné aux utilisateurs d'entreprise. Kubernetes est pris en charge par Cloud Native Foundation tandis que Mesos est Apache Foundation Project. Ces deux fondations ont des fondateurs et des sponsors différents. En général, plus d'argent vous donne un meilleur marketing et Kubernetes l'a bien fait.
Il semble que Kubernetes ait déjà remporté la guerre de l'orchestrateur de conteneurs. Mais si vous avez des charges de travail personnalisées et à très grande échelle, Mesos pourrait être un bon choix.
La principale différence réside dans la taille de la communauté et le modèle open source: où DCOS est pris en charge par la mésosphère et fournit des fonctionnalités d'entreprise uniquement dans un produit commercial (car la mésosphère n'est pas un philanthrope), K8S a une communauté plus grande avec de fortes contributions de différentes sociétés en fournissant des fonctionnalités d'entreprise beaucoup plus intégrées (mutualisation, RBAC, quota, préemption, passerelles ...), ce qui signifie qu'elles sont plus faciles à utiliser, pas nécessairement qu'elles n'existent pas dans DCOS. Je dirais globalement que:
- DCOS est plus testé pour les charges de travail avec état et Big Data, mais manque d'intégration avec d'autres composants périmétriques, y compris la surveillance et la journalisation centrale plug and play et des fonctionnalités d'entreprise telles que le modèle de sécurité, l'hébergement multiple, les mises à jour automatiques ... C'était une manière très difficile d'intégrer tout pour une plate-forme de production.
- K8S est plus testé pour les applications sans état et fournit de nombreux outils plug and play comme prometheus, EFK, helm ... ce qui facilite la mise en œuvre d'une plate-forme de production. À côté de cela, il y a un grand mouvement sur les charges de travail avec état avec les ensembles avec état et le modèle d'opérateur qui est comparable aux frameworks mesos mais encore une fois, K8S fournit de nombreux outils pour les développer à moindre coût car de nombreuses fonctionnalités sont fournies dès le départ, cela prend moi 2 mois pour développer un opérateur MongoDB pour fournir MongoDB en tant que service multi locataire et sécurisé et j'avais besoin d'apprendre le Golang en même temps.