2

我正在尝试 Dockerizing Zookeeper/Marathon/Mesos 的(可能是愚蠢的)任务,并Dockerized Mesos 集群部署 Docker 容器。

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

但是,当我尝试通过 Marathon API 提交 Docker 容器时,它似乎挂起。Marathon 界面一直挂在“正在部署”,并且永远不会改变,即使在让它静置 15 分钟、停止、重新提交并再静置 15 分钟后也是如此。

Marathon UI,描绘看似冻结的 Docker 任务部署

与此同时,任务仍在提交给 Mesos 从站;Mesos UI 左右报告 FAILED 任务。

Mesos UI,描述失败的任务

编辑 1

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

空沙箱

编辑 2

在从属日志中发现了一些有趣的东西:

从属日志

兴趣线:

所有已启用的容器化器 (mesos) 都不能为提供的 TaskInfo/ExecutorInfo 消息创建容器。

看起来容器化程序无法运行,据我所知,它甚至没有将 docker 视为容器化程序。我按照这里的配置来部署Docker作业;如果 Mesos 从站本身就是 Docker 容器,这会改变吗?

我有点脱离了我的元素,找不到这些方面的任何参考资料。知道发生了什么吗?

4

1 回答 1

5

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 containerizer。尝试启动一个 Marathon 任务,该任务只是运行docker --version以查看它是否可以在您的 dockerized slave 环境中运行。

于 2015-07-14T07:46:48.700 回答