Qu'est-ce Qu'Apache Mesos fait réellement?
je suis en train d'envelopper ma tête autour de Apache Mesos et besoin de précisions sur quelques points.
Mon comprendre de Mesos est que c'est un exécutable qui est installé sur chaque serveur physique/VM ("noeud") dans un cluster, et fournit ensuite une API Java (en quelque sorte) qui traite chaque noeud individuel comme un pool collectif de ressources informatiques (CPU/RAM/etc.). Par conséquent, pour les programmes codant avec L'API Java, ils ne voient qu'un seul jeu de ressources, et n'ont pas à se soucier de comment/où le code est déployé.
donc, pour une fois, je pourrais être fondamentalement erroné dans ma compréhension ici (dans ce cas, s'il vous plaît me corriger!). Mais si je suis sur la cible, comment L'API Java (fournie par Mesos) permet-elle aux clients Java d'exploiter ces ressources?!? Quelqu'un peut-il donner un exemple concret de Mésos en action?
mise à Jour
regardez mon horrible dessin ci-dessous. Si je comprends les Mésos l'architecture correctement, nous avons un cluster de 3 serveurs physiques (phys01
,phys02
et ). Chacun de ces tests physiques est en cours D'exécution D'un hôte Ubuntu (ou autre). Grâce à un hyperviseur, disons, Xen, on peut exécuter 1+ VMs.
je suis intéressé par Docker & CoreOS, donc je vais utiliser ceux dans cet exemple, mais je suppose que la même chose pourrait s'appliquer à d'autres non-conteneur des configurations.
donc sur chaque VM nous avons des CoreOS. Sur chaque instance CoreOS, un exécutable/serveur Mesos est lancé. Tous les noeuds Mesos dans un cluster voir tout ce qui se trouve en dessous d'eux comme une seule réserve de ressources, et des Artéfacts peuvent être déployés arbitrairement dans le cluster Mesos et Mesos va trouver à quelle instance CoreOS les déployer réellement.
courir sur Mesos est un "Mesos framework" tel que Marathon ou Kubernetes. A l'intérieur des Kubernetes, il y a plusieurs dockers (C1
-C4
).
cette compréhension des Mésos est-elle plus ou moins - il correct?
1 réponses
Votre résumé est presque droit, mais il ne reflète pas l'essence de ce mesos représente. La vision de mesosphere, la société derrière le projet, est de créer un "Datacenter Operating System" et mesos est le noyau de celui-ci en analogie avec le noyau d'un OS normal. L'API n'est pas limitée à Java, vous pouvez utiliser C, C++, Java/Scala, ou Python. Si vous avez mis en place votre cluster mesos, comme vous le décrivez dans votre question et que vous souhaitez utiliser vos ressources, vous le faites généralement par le biais d'un cadre au lieu d'exécuter votre charge de travail directement sur elle. Cela ne veut pas dire que c'est compliqué voici un très petit exemple en Scala ce qui démontre ceci. Il existe des cadres pour plusieurs systèmes de traitement de données distribués populaires comme Apache Spark, Apache Cassandra. Il y a d'autres cadres tels que Chronos un cron au niveau du centre de données ou Marathon qui vous permet d'exécuter Docker basé application.
mise à Jour:
Oui, mesos se chargera du placement dans le cluster car c'est ce que fait un noyau -- la planification et la gestion de ressources limitées. La configuration que vous avez esquissée soulève cependant plusieurs questions évidentes.
couches sous mésos: Installation de mesos sur CoreOS est possible mais encombrant comme je pense. Ce n'est pas un scénario typique pour exécuter des mésos -- Habituellement il est déplacé au plus bas couche possible (au-dessus D'Ubuntu dans votre cas). J'espère donc que vous avez de bonnes raisons de lancer CoreOS!--1-->et un hyperviseur.
couches au-dessus des mésos: Kubernetes est disponible comme cadre et la mésosphère semble y consacrer beaucoup d'efforts. Il ne fait cependant aucun doute qu'il y a chevauchement partiel en termes de fonctionnalité, notamment en ce qui concerne l'ordonnancement. Si vous voulez programmer des charges de travail de base basées sur les conteneurs, vous pourriez être mieux avec Marathon ou dans le futur, peut-être Aurore. J'espère donc que vous avez de bonnes raisons de le faire. Sidenote: Kubernetes est similaire à Marathon avec une approche plus large et assez opinionated.