2015-10-14 97 views
2

我正在寻找解决方案来运行大量任务并监视群集上的状态。在群集上运行大量任务

详细说明:每个任务由包含docker的每个进程组成(每个进程是docker run命令)。所有进程必须在同一台服务器上运行。

我们正在讨论的任务数量是一次突发数百个任务。

我已经研究过基于Mesos几种解决方案,所有的人:

  • 的Chronos - 似乎将高负载下,在任何情况下动摇更针对经常性(的cron)作业。虽然我需要一次性(重)工作。
  • 自定义Mesos FW - 似乎为我的需求低层次将需要我编写调度和重试机制,我会保存这是最后的手段。
  • Aurora - 这看起来很有前途,因为每个任务都在同一个节点上运行,并由多个进程组成。虽然我在这里错过了一些,但Aurora似乎无法作为单个作业的一部分运行多个任务。由于我的任务都与不同的输入类似,我可以使用包含多个(比如400个)实例的单个作业,每个任务的第一个进程(其作用是从S3下载输入)可以根据实例ID下载不同的集合。这给我带来了另一个问题:我找不到在.aurora文件中使用{{mesos.instance}}的示例,任何人都可以给我一个例子吗?

感谢所有的鱼人

回答

2

你也可能对Kubernetes看(这也可以作为一个framework in Mesos运行)。 Kubernetes的概念是Pods,它们基本上是一组共同定位的容器。因此,在您的情况下,吊舱将包含3-4个工艺/容器,然后这些吊舱可以放大/缩小。

关于你提到的其他解决方案短注释:

  • 的Chronos:不是针对你的使用情况
  • 定制FW:其实没有那么难,但良好的通话保存这个作为最后的手段。
  • 极光:非常强大,但也是复杂的框架
  • Marathon(你没有提到):针对长时间运行的应用程序,可以轻松地扩大和缩小。
+0

首先,谢谢 至于Marathon,我知道它是Mesos的一种init.d。 我不是在寻找一种服务,而是在寻找和应用程序。所以我认为它不适合。 –

+0

同意,只要记住,如果它总是需要少量的实例运行,然后在某些事件中爆发(即增加实例的数量),那么它可能也很有趣。 – js84

1

除了出色的对方的回答,您可以检查出两个Sigma的Cook,他们只是在最近才开源,但一直使用督促大规模一会儿。

+0

很好的建议,我个人还没有测试过它:-)。协同定位约束似乎很好地映射到kubernetes豆荚,并没有发现厨师是否具有相似的基元。 – js84