提供在同一个Mesos从站上启动应用程序组

时间:2015-12-17 05:11:54

标签: mesos marathon

我有3个Mesos从属集群,我有两个应用程序:“redis”和“memcached”。其中redis依赖于memcached,并且要求是两个应用程序/服务都应该在相同的节点而不是不同的从节点上启动。

所以我创建了应用程序组并在JSON文件中正确添加了依赖项。通过“v2 / groups”REST API启动JSON文件后,我发现有时两个应用程序组都将在同一节点上启动,但有时会在不同的从属服务器上启动,这会破坏我们的要求。

所以意图/要求是;如果任何应用程序无法在从属设备上启动,则应用程序应该故障转移到其他从属节点。我也可以配置JSON文件,告诉Marathon在slave-1(特定slave)上启动应用程序组(如果可用),或者在集群中的其他slave上启动它。由于某种原因,如果此应用程序组将从其他从属服务器启动,可以将Marathon重新启动应用程序组到slave-1(如果可用于服务请求)。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

编辑/更新(2): 现在可以使用Mesos,Marathon和DC / OS对POD的支持: DC / OS:https://dcos.io/docs/1.9/usage/pods/using-pods/ Mesos:https://github.com/apache/mesos/blob/master/docs/nested-container-and-task-group.md 马拉松:https://github.com/mesosphere/marathon/blob/master/docs/docs/pods.md

我认为你在谈论马拉松应用程序。

Marathon application groups没有关于同一节点上的共址的任何语义,并且依赖性也是如此。

你似乎在寻找马拉松中的Kubernetes like Pod abstraction ,这是在路线图上但尚未提供(参见上面的更新: - ))。

希望这有帮助!

答案 1 :(得分:0)

如果您在群组的JSON中指定了正确的应用程序约束,我认为这应该是可行的(作为解决方法)。

查看

上的示例请求

中的约束语法

e.g。

"constraints": [["hostname", "CLUSTER", "slave-1"]]

应该这样做。缺点是没有自动故障转移到另一个奴隶那样。不过,我很好奇为什么两个应用程序都需要专门在同一个从节点上运行......