我已在两台机器上安装了Marathon和Mesos。
我可以成功地从Marathon Web控制台调度命令,但是当我尝试调度涉及Docker镜像的作业时,立即出现作业失败。此外,我没有得到stderr或stdout文件。
例如运行普通命令:
在Mesos上,我看到任务已经成功。我有标准的stderr和stdout文件。
在Mesos上,我看到它立即失败了:
我看到一个名为zookeeper的用户。也许这个用户没有访问docker的权限?
但是当我执行以下操作时:
例如运行普通命令:
Marathon job conf:
{
"id": "testecho",
"cmd": "echo hello; sleep 10",
"cpus": 1,
"mem": 128,
"disk": 0,
"instances": 1
}
在Mesos上,我看到任务已经成功。我有标准的stderr和stdout文件。
但是现在,如果我运行一个简单的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
我不改变用户个人资料