马拉松docker任务失败

798qvoo8  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(477)

我在我的两台机器上安装了马拉松和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

我不更改用户配置文件

fjaof16o

fjaof16o1#

在阅读了一些教程之后,我从以下教程中找到了答案:http://frankhinek.com/deploy-docker-containers-on-mesos-0-20/
我必须在我的mesos奴隶上启用docker集装箱船
设置--containerizers=docker,mesos“命令行参数:

echo "docker,mesos" | sudo tee /etc/mesos-slave/containerizers

将executor timeout增加到5分钟1:(我猜这是可选的)

echo "5mins" | sudo tee /etc/mesos-slave/executor_registration_timeout

重新启动mesos从机:

sudo service mesos-slave restart

相关问题