我在我的两台机器上安装了马拉松和mesos。我可以从MarathonWeb控制台成功地调度命令,但是当我尝试调度涉及docker映像的作业时,我立即得到作业失败。而且我没有标准文件。
运行普通命令的示例:
Marathon job conf:
{
"id": "testecho",
"cmd": "echo hello; sleep 10",
"cpus": 1,
"mem": 128,
"disk": 0,
"instances": 1
}
在mesos上,我看到任务已经成功了。我有标准文件和标准文件一样正常。
但是现在如果我运行一个简单的docker映像任务:
Marathon job conf:
{
"id": "/ubuntu",
"cmd": "date -u +%T",
"cpus": 0.5,
"mem": 512,
"disk": 0,
"instances": 1,
"container": {
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "libmesos/ubuntu",
"network": null,
"portMappings": null,
"privileged": false,
"parameters": [],
"forcePullImage": false
}
},
"portDefinitions": [
{
"port": 10001,
"protocol": "tcp",
"labels": {}
}
]
}
在mesos上,我看到它立即失败了:
我没有stderr或stdout文件:
我还注意到,在我的两台机器上,当我运行时:
docker ps -a
我在两台机器上什么也看不到。所以这就意味着 Docker 的工作还没有开始
什么会影响docker部署?
我能想到的一个原因是,marathon用来启动任务的用户没有访问docker的权限?如何测试?
我注意到当我运行命令时:
sudo cat /etc/passwd
我看到一个用户zookeeper。也许这就是没有访问docker的用户?
但当我这么做的时候:
su zookeeper
我不更改用户配置文件
1条答案
按热度按时间fjaof16o1#
在阅读了一些教程之后,我从以下教程中找到了答案:http://frankhinek.com/deploy-docker-containers-on-mesos-0-20/
我必须在我的mesos奴隶上启用docker集装箱船
设置--containerizers=docker,mesos“命令行参数:
将executor timeout增加到5分钟1:(我猜这是可选的)
重新启动mesos从机: