How to run a one-off task with Apache Mesos/Marathon?

匿名 (未验证) 提交于 2019-12-03 08:36:05

问题:

I'm trying to run a one-off task with Marathon. I'm able to get the task container running, but after the task command completes, marathon runs another task, and so on. How can I prevent Marathon from running more than one task/command?

Or, if this is not possible with Marathon, how can I achieve the desired behaviour?

回答1:

As a hack you can kill a marathon task at the end, as suggested here: https://github.com/mesosphere/marathon/issues/344#issuecomment-86697361

As rukletsov already mentioned - Marathon is desigend for long-running tasks: https://stackoverflow.com/a/26647789/1047843

If Chronos doesn't fit in your situation you can use Jenkins with Mesos plugin: https://github.com/jenkinsci/mesos-plugin

Or you can try to talk with Mesos directly and write you own framework: http://mesos.apache.org/documentation/latest/app-framework-development-guide/

In my opinion the two easiest options would be Chronos and Jenkins.



回答2:

Marathon is designed for long running services, which means it will restart the task once it enters a terminal state. Depending on the nature of your task, you may want to take a look at other Mesos frameworks, e.g. Chronos. If you want to start a single task, you can use mesos-execute tool which accompanies Mesos.



回答3:

Since the question was answered a new framework called Eremetic has been developed for marathon that allows you to run one off tasks.

https://github.com/klarna/eremetic



回答4:

@Sander Smits: How @rukletsov wrote you can use the repeating intervals ISO8601 to execute services only one time. After the execution the job will be automatically disabled by chronos. Use"R0/.." (0 repetition) for schedule setting.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!