【发布时间】:2016-01-27 23:31:46
【问题描述】:
我有一个 1/1 主/从设置,从属具有 8gb ram 8 cpus。我正在尝试使用 marathon 部署一个具有 1gb 内存和 1 个 cpu 的 docker 容器,但它只是等待
我相信这通常是由于马拉松没有获得任务所需的资源 当我查看我的日志时,我看到了
向框架发送 1 个报价 8bb1a298-cc23-426e-ad43-d440a2a560c4-0000(马拉松)在 调度程序-d4a993b4-69ea-4ac3-9e98-b54afe1e790b@127.0.0.1:52016 I0127 23:07:37.396546 2471 master.cpp:3297] 处理 DECLINE 调用 提供:[ 5271fcb3-4d77-4b12-af85-d94fd9172514-O127 ] 用于框架 8bb1a298-cc23-426e-ad43-d440a2a560c4-0000(马拉松)在 调度程序-d4a993b4-69ea-4ac3-9e98-b54afe1e790b@127.0.0.1:52016 I0127 23:07:37.396917 2466 hierarchy.cpp:744] 恢复的 cpus():6; 内存():5968;磁盘():156020;端口():[31000-31056、31058-32000] (总计:cpus():8;mem():6992;磁盘():156020; 端口():[31000-32000],分配:cpus():2;内存():1024; 从端口(*):[31057-31057]) 来自框架的 8bb1a298-cc23-426e-ad43-d440a2a560c4-S0 8bb1a298-cc23-426e-ad43-d440a2a560c4-0000
所以看起来马拉松正在拒绝它得到的报价?日志中的下一行说 mesos 正在回收提供的资源,它的回收看起来对我的任务来说足够了吗?
关于如何进一步解决此问题的任何想法?
编辑:所以必须进一步深入研究并找到马拉松日志。
如果我们没有在 marathon docker 部分输入任何端口映射信息,则基本上部署工作。 docker 容器部署成功,我可以从它的主机成功 ping 它,但我无法从其他地方访问它。
如果我们将容器端口设置为 8081(这是 docker 容器公开其应用程序侦听的端口),我们会在部署过程中走得更远,但容器内的应用程序无法构建并出现错误
错误:监听 EADDRINUSE :::8081 在 Object.exports._errnoException (util.js:856:11) 在exports._exceptionWithHostPort (util.js:879:20) 在 Server._listen2 (net.js:1234:14) 在听 (net.js:1270:10) 在 Server.listen (net.js:1366:5) 在 EventEmitter.listen (/usr/src/app/node_modules/express/lib/application.js:617:24) 在对象。 (/usr/src/app/index.js:16:18) 在 Module._compile (module.js:425:26) 在 Object.Module._extensions..js (module.js:432:10) 在 Module.load (module.js:356:32) 在 Function.Module._load (module.js:313:12) 在 Function.Module.runMain (module.js:457:10) 启动时 (node.js:138:18) 在 node.js:974:3
所以我认为我们比以前更进一步,但我们仍然遇到一些端口问题。我不知道为什么容器会在没有端口设置的情况下自行构建成功,而在没有端口设置的情况下使用 marathon 时却不能成功
【问题讨论】:
-
你能发布马拉松日志吗?
-
您是否在从属配置中启用了 Docker 容器化程序?
-
感谢您的回复,今天晚些时候我将成为马拉松日志。是的,我们最初无法启动任何 docker 容器,然后我们启用了正确的 cintaineriser 并启动了 busybot 容器,但不是我们的自定义容器,它需要更多资源,但仍然远远少于应有的资源
-
不幸的是找不到马拉松日志,试图寻找我应该在文档中查找的位置
-
看看
/var/log/syslog或/var/log/messages。更多详情您可以找到here
标签: docker mesos marathon mesosphere