我正尝试在DC/OS上使用Airflow安排'docker run‘作业。这需要从包含气流的码头容器内启动码头集装箱的能力。我可以在OSX上做到这一点,但只需运行:
docker run \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock {image name}有没有使用DC/OS做这件事的等效方法?
发布于 2017-12-04 16:05:45
DC/OS的方式是通过Mesos Master调度作业。这意味着编写一个框架,与Master协商资源分配(=“启动Docker作业”)。从而在具有可用于该任务的资源的集群中的任何节点上启动作业。这样的框架是负责与Mesos Master进行资源协商的另一个服务。这样的框架有很多示例:
大多数都是建立在dcos-commons服务框架之上的。
一种解决办法是通过另一个现有的框架开始工作,例如Marathon。Marathon提供a REST API。
发布于 2017-12-13 03:54:26
看起来Airflow有一个自己的Apache Mesos调度器实现,这是非常好的,正是您正在寻找的。如果你运行的是DC/OS,你可以安装多个Mesos调度器,这些调度器可以独立地在Mesos上启动任务,而且实际上不需要特权模式。
你可以在这里找到Airflow文档:https://airflow.apache.org/configuration.html#scaling-out-on-mesos-community-contributed
在这个描述的场景中,Airflow Server将通过marathon (=DC/OS服务部分)启动,并且这个Airflow Server会将自己注册为Mesos的调度器,然后它就能够启动常规的Mesos任务。
https://stackoverflow.com/questions/47627134
复制相似问题