在群集上运行大量任务

ezykj2lf  于 2021-06-21  发布在  Mesos
关注(0)|答案(2)|浏览(402)

我正在寻找一种解决方案来运行大量任务并监视它们在集群上的状态。
具体来说:每个任务由3-4个进程组成,这些进程都包含在docker中(每个进程都是docker run命令)。所有进程都必须在同一台服务器上运行。
我们所说的任务量是一次几百个任务的爆发。
我研究了几种基于Mesos的解决方案:
chronos-似乎在高负载下会步履蹒跚,而且在任何情况下都更倾向于重复(cron)工作。而我需要一份一次性的(繁重的)工作。
自定义mesos-fw-似乎对我的需要低水平将需要我写调度和重试机制,我会保存这个作为最后手段。
aurora—这似乎很有希望,因为每个任务都在同一个节点上运行,并且由多个进程组成。不过,我在这里遗漏了几个问题:aurora似乎无法将多个任务作为单个作业的一部分来运行。由于我的任务在不同的输入下都是相似的,所以我可以使用一个具有多个(比如400个)示例的作业,每个任务的第一个进程(其作用是从s3下载输入)可以根据示例id下载不同的集合。这就给我带来了另一个问题:我找不到在中使用{mesos.instance}的工作示例.aurora文件谁能给我举个例子?
谢谢所有的鱼人

fumotvh3

fumotvh31#

除了另一个很好的答案之外,你还可以看看两西格玛的库克,他们最近才开源,但已经在大规模生产中使用了一段时间。

3npbholx

3npbholx2#

您还可以看看kubernetes(它也可以作为mesos中的框架运行)。kubernetes有pods的概念,pods基本上是一组位于同一位置的容器。因此,在您的情况下,pod将由3-4个进程/容器组成,然后这些pod可以按比例放大/缩小。
关于您提到的其他解决方案的简短评论:
chronos:不是真正针对你的用例
自定义fw:其实没那么难,但这是一个很好的电话保存作为最后手段。
极光:非常强大但也很复杂的框架
marathon(您没有提到):针对长时间运行的应用程序,这些应用程序可以轻松地进行放大和缩小。

相关问题