【问题标题】:How to run multiple docker container on one mesos slave node?如何在一个 mesos 从节点上运行多个 docker 容器?
【发布时间】:2015-04-20 15:11:32
【问题描述】:

我有 3 个 mesos 主节点和 87 个 mesos 从节点。所有节点的操作系统都是 Ubuntu 14.04。在每个 mesos 从节点上,我都安装了 docker。我有两个不同的爬虫,每个都构建在一个 docker 容器中。现在我通过马拉松启动它们。

在mesos从节点上,我没有发现两个爬虫容器在同一个节点上运行。每个节点只运行一个爬虫。

但我希望每个节点同时运行两个爬虫容器。我该怎么做? (原谅我可怜的英语语法)。

以下代码是马拉松启动json。

    {
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "slyang/final_crawlerv19"
    }
  },
  "id": "crawler-part",
  "instances": "30",
  "cpus": "0.5",
  "mem": "150",
  "uris": [],
  "constraints": [["hostname", "UNIQUE"]],
  "cmd": "ip=`wget http://ip.lustfield.net/ -O - -q`;echo $ip; sleep 20; echo $ip > /app/hostip;python user_info_fetcher.py part"
}

【问题讨论】:

  • 我很困惑。你为什么使用唯一的主机名?为什么只显示一个马拉松作业配置?没有更多信息很难调试。
  • @seanmcl 我是马拉松新手。我猜 constraints 字段导致了这个问题,但我不知道如何设置它。其他马拉松作业配置相同,除了 idimage 字段。
  • hostname=UNIQUE 约束将告诉 Marathon 每个主机名仅运行该应用程序的一个实例。假设每个从站都有不同的主机名,并且您有两个不同的 Marathon 应用程序定义,则此约束不应阻止 App1 容器与 App2 容器位于同一位置。

标签: docker mesos marathon


【解决方案1】:

现在,您必须将两个容器一起打包到一个映像中,以便 Marathon 在同一个节点上同时启动它们。否则,您需要的是类似 Kubernetes “pod”的构造,而 Marathon 中尚不存在这种构造。见https://github.com/mesosphere/marathon/issues/894

当您想在容器之间共享卷或其他资源时,就会出现额外的棘手问题。

【讨论】:

猜你喜欢
  • 2020-09-18
  • 1970-01-01
  • 2015-07-21
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多