互斥docker容器的Marathon约束

互斥docker容器的Marathon约束,docker,mesosphere,marathon,Docker,Mesosphere,Marathon,我正在尝试使用mesos/marathon实现一个lizardfs集群。我为此制作了一些docker图像 我需要使某一类型的docker容器(lizardfs master)不在已经运行另一类型容器(lizardfs shadow或lizardfs metalogger)的同一节点上运行。也就是说,我需要运行这三种容器中每一种的实例,但它们不能同时在同一个节点上运行。它们是相互排斥的 我不想限制可以运行每个容器的节点。我只是想让它们成为独家的 有没有办法在马拉松比赛中做到这一点,即使用约束?怎么

我正在尝试使用mesos/marathon实现一个lizardfs集群。我为此制作了一些docker图像

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

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

有没有办法在马拉松比赛中做到这一点,即使用约束?怎么样


谢谢。

我可以想象有几种方法可以做到这一点

我会做以下事情

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

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

我认为您还可以定义多个节点


我没有对此进行测试,但在我看来这是合理的

我可以想象有几种方法可以解决这个问题。:)

我会做以下事情

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

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

我认为您还可以定义多个节点


我没有对此进行测试,但在我看来这是合理的

理想情况下,我的想法不是将docker容器绑定到特定节点,而是marathon可以“意识到”它不能在已经运行其他容器类型的节点上运行特定容器。我想要一个“扁平”集群,在节点断开的情况下,marathon可以决定在哪里运行“死”容器,选择另一个没有运行互斥容器的节点:)是的,您还可以将集群拆分为多个组,然后使用“相似”或“不相似”约束将容器分配给一个节点组并相互排除。这很有意义。因此,我可以将集群节点拆分为不相交的集合,并强制每个互斥容器在不同的节点子集中运行。谢谢理想情况下,我的想法不是将docker容器绑定到特定节点,而是marathon可以“意识到”它不能在已经运行其他容器类型的节点上运行特定容器。我想要一个“扁平”集群,在节点断开的情况下,marathon可以决定在哪里运行“死”容器,选择另一个没有运行互斥容器的节点:)是的,您还可以将集群拆分为多个组,然后使用“相似”或“不相似”约束将容器分配给一个节点组并相互排除。这很有意义。因此,我可以将集群节点拆分为不相交的集合,并强制每个互斥容器在不同的节点子集中运行。谢谢