1

我正在尝试在 DC/OS 上使用 Airflow 安排“docker run”作业。这需要能够从包含 Airflow 的 docker 容器中启动 docker 容器。我可以在 OSX 上做到这一点,但只是运行:

docker run \
  -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock {image name}

有没有一种等效的方法可以让我使用 DC/OS 做到这一点?

4

2 回答 2

0

看起来 Airflow 有一个自己的 Apache Mesos 调度程序实现,它非常好,正是您正在寻找的。如果您正在运行 DC/OS,您可以安装多个 Mesos 调度程序,它们可以在 Mesos 上独立启动任务,实际上不需要特权模式。

您可以在此处找到 Airflow 文档: https ://airflow.apache.org/configuration.html#scaling-out-on-mesos-community-contributed

在这个描述的场景中,Airflow Server将通过马拉松(=DC/OS 服务部分)启动,这Airflow Server会将自己注册为 Mesos 的调度程序,然后它能够​​启动常规的 Mesos 任务。

于 2017-12-12T19:54:25.540 回答
0

DC/OS 方式是通过 Mesos Master 调度作业。这意味着编写一个框架来与 Master 协商资源分配(=“启动 Docker 作业”)。因此,在集群中具有任务可用资源的任何节点上启动作业。这样的框架是另一个负责与 Mesos Master 协商资源的服务。这样的框架有很多例子:

大多数都建立在dcos-commons服务框架之上。

一种解决方法是通过另一个现有框架(例如 Marathon)开始这项工作。Marathon 提供了一个 REST API

于 2017-12-04T08:05:44.710 回答