Quelle est la différence entre les Mésos D'Apache et les Kubernetes de Google?

Quelle est exactement la différence entre les Mésos D'Apache et les Kubernetes de Google? Je comprends que les deux sont des logiciels de gestion de clusters de serveurs. Quelqu'un peut-il élaborer où les principales différences sont - quand qui cadre à privilégier?

Pourquoi voulez-vous utiliser Kubernetes au sommet de la mésosphère ?

311
demandé sur binaryanomaly 2014-11-03 01:28:55

5 réponses

Kubernetes est un projet open source qui apporte des capacités de gestion de clusters 'Google style' au monde des machines virtuelles, ou 'sur le métal' scénarios. Il fonctionne très bien avec les environnements de systèmes d'exploitation modernes (comme CoreOS ou Red Hat Atomic) qui offrent des "noeuds" de calcul léger qui sont gérés pour vous. Il est écrit en Golang et est léger, modulaire, portable et extensible. Nous (l'équipe de Kubernetes) travaillons avec un certain nombre de technologies différentes entreprises (y compris Mesosphere qui organise le Mesos open source project) pour établir Kubernetes comme la manière standard d'interagir avec les clusters informatiques. L'idée est de reproduire les modèles que nous voyons les gens qui ont besoin de construire des applications cluster basé sur notre expérience chez Google. Certains de ces concepts comprennent:

  • gousses - une manière de regrouper les conteneurs ensemble
  • contrôleurs de réplication - une façon de gérer le cycle de vie des conteneurs
  • étiquettes - un moyen de trouver et d'interroger les conteneurs, et
  • services - un ensemble de conteneurs remplissant une fonction commune.

donc avec Kubernetes seul vous aurez quelque chose qui est simple, facile à obtenir up-and-running, portable et extensible qui ajoute "cluster" comme un nom aux choses que vous gérez dans le poids le plus léger possible. Lancez une application sur un cluster, et arrêtez de vous soucier d'une machine individuelle. Dans ce cas, cluster est une ressource flexible tout comme une VM. C'est une logique d'unité de calcul. Monte le son, utilise-le, redimensionne-le, Baisse-le rapidement et facilement.

avec Mesos, il y a beaucoup de chevauchement en termes de vision de base, mais les produits sont à des moments très différents de leur cycle de vie et ont des points sucrés différents. Mesos est un un noyau de systèmes distribués qui recrée un grand nombre de machines différentes dans un ordinateur logique. Il est né pour un monde où vous possédez beaucoup de ressources physiques pour créer un grand cluster de calcul statique. La grande chose à propos de cela est que beaucoup d'application de traitement de données évolutive moderne fonctionnent bien sur Mesos (Hadoop, Kafka, Spark) et il est agréable parce que vous pouvez les exécuter tous sur le même pool de ressources de base, avec vos nouvelles applications de conteneur d'âge. Il est un peu plus de poids lourd que le projet Kubernetes, mais est de plus en plus facile à gérer grâce au travail de gens comme Mesosphere.

maintenant ce qui devient vraiment intéressant est que Mesos est actuellement adapté pour ajouter beaucoup de concepts Kubernetes et pour soutenir L'API Kubernetes. Donc, il sera une passerelle pour obtenir plus de capacités pour votre application Kubernetes (maître de haute disponibilité, la sémantique de planification plus avancée, la capacité d'échelle à un très grand nombre de noeuds) si vous avez besoin le Kubernetes est encore à l'état alpha.

quand on me le demande, j'ai tendance à dire:

  1. Kubernetes est un excellent endroit pour commencer si vous êtes nouveau dans le monde du clustering; c'est la façon la plus rapide, la plus facile et la plus légère de tirer les pneus et de commencer à expérimenter avec le développement orienté clustering. Il offre un très haut niveau de portabilité car il est soutenu par beaucoup de différents fournisseurs (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare, etc).

  2. si vous avez des charges de travail existantes (Hadoop, Spark, Kafka, etc), Mesos vous donne un cadre qui vous laissez vous interférer ces charges de travail les uns avec les autres, et mélanger dans un certain nombre de nouvelles choses, y compris les applications Kubernetes.

  3. Mesos vous donne une soupape d'évacuation si vous avez besoin de capacités qui ne sont pas encore mises en œuvre par la communauté dans le Kubernetes cadre.

426
répondu Craig Mcluckie 2015-05-01 22:09:01

les deux projets visent à faciliter le déploiement et la gestion des applications à l'intérieur des conteneurs de votre datacenter ou cloud.

afin de déployer des applications au-dessus de Mesos, on peut utiliser Marathon ou Kubernetes pour Mesos.

Marathon est un système d'initialisation et de contrôle pour la gestion des services Linux dans les cgroups et les dockers. Marathon dispose d'un certain nombre de différentes fonctionnalités canary deploy et est un projet très mature.

Marathon court au-dessus de Mesos, qui est un gestionnaire de ressources hautement évolutif, éprouvé au combat et flexible. Marathon est éprouvé à l'échelle et court beaucoup dans de nombreux environnements de production.

la pile de technologies Mesos et Mesosphere fournit un environnement semblable à un nuage pour exécuter les charges de travail Linux existantes, mais elle fournit également un environnement natif pour la construction de nouveaux systèmes distribués.

Mesos est un noyau de systèmes distribués, avec une API complète pour programmation directement contre le datacenter. Il fait abstraction de la quincaillerie sous-jacente (p. ex. métal nu ou VMs) et expose simplement les ressources. Il contient des primitives pour écrire des applications distribuées (par exemple Spark était à l'origine une application Mesos, Chronos, etc.) tels que la transmission de messages, L'exécution de tâches, etc. Ainsi, des applications entièrement nouvelles sont rendues possibles. Apache Spark est un exemple pour un nouveau (en jargon Mesos appelé) framework qui a été construit à l'origine pour Mesos. Cela a permis un développement très rapide - les développeurs de Spark n'ont pas eu à se soucier de la mise en réseau pour distribuer les tâches parmi les noeuds car c'est une primitive de base dans Mesos.

a ma connaissance, Kubernetes n'est pas utilisé à L'intérieur de Google dans les déploiements de production aujourd'hui. Pour la production, Google utilise Omega / Borg, qui est beaucoup plus similaire au Modèle Mesos/Marathon. Cependant, la grande chose à propos de L'utilisation de Mesos comme la base est que Kubernetes et Marathon peuvent courir sur elle.

plus ressources sur Marathon:

https://mesosphere.github.io/marathon /

vidéo: https://www.youtube.com/watch?v=hZNGST2vIds

52
répondu mesospherian 2015-02-25 17:44:48

Kubernetes et Mesos sont une correspondance faite dans le ciel. Kubernetes permet l'abstraction Pod (group of co-located containers), ainsi que les étiquettes Pod pour la découverte de services, l'équilibrage de la charge et le contrôle de la réplication. Mesos fournit les allocations de ressources à grain fin pour les gousses à travers les noeuds dans un cluster, et peut faire Kubernetes bien jouer avec d'autres cadres tournant sur les mêmes ressources de cluster.

de readme of kubernetes-mesos

29
répondu herodot 2015-01-21 08:01:52

Mesos et Kubernetes peuvent à la fois être utilisés pour gérer un groupe de machines et abstraire le matériel.

Mesos, par conception, ne vous fournit pas un planificateur (pour décider où et quand exécuter des processus et ce qu'il faut faire si le processus échoue), vous pouvez utiliser quelque chose comme Marathon ou Chronos, ou écrire votre propre.

Kubernetes fera l'ordonnancement pour vous hors de la boîte, et peut être utilisé comme un ordonnanceur pour Mesos (s'il vous plaît corriger moi si je suis mal ici!) qui est où vous pouvez les utiliser ensemble. Mesos peut avoir plusieurs programmeurs partageant le même cluster, donc en théorie vous pouvez exécuter kubernetes et chronos ensemble sur le même matériel.

très simpliste: si vous voulez contrôler la façon dont vos conteneurs sont programmés, allez sur Mesos, sinon Kubernetes rochers.

14
répondu user2851943 2015-03-02 10:49:33

j'aime cette courte vidéo ici mesos matériel d'apprentissage

avec des amas de métal nu, vous auriez besoin de créer des piles comme HDFS, SPARK, MR etc... donc, si vous lancez des tâches liées à ceux-ci en utilisant seulement la gestion de cluster métal nu, il y aura beaucoup de temps froid de départ.

avec mesos, vous pouvez installer ces services sur les métaux nus et vous pouvez éviter le temps de mise en place de ces services de base. C'est quelque chose que mesos fait bien. et peut être utilisé par kubernetes construire sur le dessus de celui-ci.

3
répondu zinking 2016-02-28 10:50:58