相互排斥的docker容器的Marathon限制

时间:2015-10-15 13:24:45

标签: docker mesosphere marathon

我试图使用mesos / marathon实现lizardfs集群。我为此创建了一些泊坞窗图像。

我需要获得某种类型的docker容器(lizardfs-master),而不是在已运行其他类型容器(lizardfs-shadow或lizardfs-metalogger)的同一节点上运行。也就是说,我需要运行这三种容器中的每一种的实例,但它们不能同时在同一节点上运行。它们是相互排斥的。

我不想限制可以运行每个容器的节点。我只想让它们独占。

有没有办法在马拉松比赛中完成这项任务,即使用约束?怎么会这样?

感谢。

1 个答案:

答案 0 :(得分:0)

我可以想象有几种方法。 :)

我会做以下事情......

设置3个应用程序,每个应用程序用于特定的docker镜像(master,shadow,metalogger)。 然后,您可以在将应用程序绑定到特定节点的应用程序上创建约束:

"constraints": [["hostname", "CLUSTER", "a.specific.node.com"]]

https://github.com/mesosphere/marathon/blob/master/docs/docs/constraints.md#cluster-operator

我认为你也可以定义多个节点。

我没有对此进行测试,但对我来说这看起来很合理。 ;)