将默认参数传递给 apache-mesos 中的容器

Pass default parameters to container in apache-mesos

我正在尝试将默认参数(例如卷或环境)传递到我的 docker 容器,该容器是我通过 Marathon 和 Apache Mesos 创建的。通过传递给 mesos-slave 的参数是可能的。我已经放入 /etc/mesos-slave/default_container_info 文件 JSON 内容(mesos-slave 读取这个文件并将其作为参数):

{
  "type": "DOCKER",
  "volumes": [
    {
      "host_path": "/var/lib/mesos-test",
      "container_path": "/tmp",
      "mode": "RW"
    }
  ]
}

然后我重新启动了 mesos-slave 并在 marathon 中创建了新的容器,但是我在我的容器中看不到挂载的卷。我在哪里可以做错?如何以其他方式将默认值传递给我的容器?

这对你不起作用。当您使用 docker 在 Marathon 上安排任务时,Marathon 使用 ContainerInfo 创建 TaskInfo,这就是 Mesos 不填充默认值的原因。

来自documentation

--default_container_info=VALUE JSON-formatted ContainerInfo that will be included into any ExecutorInfo that does not specify a ContainerInfo

您需要为您拥有的每个 Marathon 任务添加卷,或者创建 RunSpecTaskProcessor 这将增加所有任务的卷