Docker 应用程序部署在 Marathon 上挂起,在 Mesos 上失败

Docker app deployment hangs on Marathon, fails on Mesos

我正在尝试 Docker 化 Zookeeper/Marathon/Mesos 并部署 Docker 容器 Docker化了 Mesos 集群。

到目前为止,我在两个物理上独立的节点上有一个工作的 Mesos 集群:一个节点 运行同时连接一个 Mesos master and a slave(容器 Docker 文件链接),以及第二个节点 运行ning 只是一个奴隶。它们似乎运行良好;我能够通过 Marathon 提交非常简单的作业(也是它自己的容器,运行在具有主从节点的节点上)并且它们成功完成。

但是,当我尝试 submit Docker containers through the Marathon API 时,它 似乎 挂起。 Marathon 界面挂在 "Deploying" 并且永远不会改变,即使在让它静置 15 分钟、停止、重新提交并让它再静置 15 分钟之后也是如此。

同时,任务仍在提交给Mesos slaves; Mesos UI 左右报告失败的任务。

编辑 1

每个执行程序生成的沙箱日志也完全是空的。

编辑 2

在奴隶日志中发现了一些有趣的东西:

兴趣线:

None of the enabled containerizers (mesos) could create a container for the provided TaskInfo/ExecutorInfo message.

看起来容器化器无法 运行,据我所知,它甚至没有考虑将 docker 作为容器化器。我按照配置 here 部署了 Docker 个作业;如果 Mesos 从服务器本身就是 Docker 容器,这会改变吗?

我有点不知所措,找不到任何与这些相关的参考资料。知道发生了什么吗?

你对奴隶的docker run命令是什么? 以下是其他人认为有用的一些参数:

--net host \
--pid host \
--privileged \
--env MESOS_CONTAINERIZERS=docker,mesos \
--env MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /sys:/sys:ro \
-v /usr/bin/docker:/usr/bin/docker:ro \
-v /lib64/libdevmapper.so.1.02:/lib/libdevmapper.so.1.02:ro \
-v /home/core/.dockercfg:/root/.dockercfg:ro \

另请注意,您不应将容器命名为 mesos-slave,因为从服务器将在恢复时尝试删除任何前缀为 mesos- 的容器。

仅供参考,Mesos 使用 docker --version 命令查看是否可以使用 docker 容器化器。尝试启动一个仅运行 docker --version 的 Marathon 任务,看看它是否可以在您的 docker 化从属环境中运行。