马拉松应用程序的单个实例创建多个 docker 容器



我在运行 macOS 的 mbp 上的以下本地设置上遵循了示例 json 应用程序 cfg @ https://mesosphere.github.io/marathon/docs/native-docker.html#bridged-networking-mode(将实例计数修改为 1 而不是 2(-

  • Mesos-1.9.0(下载源代码并在本地构建(
  • Zookeeper-3.4.8(与上面的 Mesos-1.9.0 一起打包为第三方框架(
  • marathon-1.5.0-96(从Mesosphere GitHub下载源代码并在本地构建(

使用桥接 python webapp 的单个实例,我观察到创建了多个docker 容器。

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                                             NAMES
120bf164b817        python:3            "/bin/sh -c 'python3…"   20 seconds ago       Up 19 seconds       0.0.0.0:31532->161/udp, 0.0.0.0:31531->8080/tcp   mesos-eb3765bb-2c98-4cdf-8dbe-95ef33bdd58b
eee64f6d845b        python:3            "/bin/sh -c 'python3…"   About a minute ago   Up About a minute   0.0.0.0:31733->161/udp, 0.0.0.0:31732->8080/tcp   mesos-c17f8df0-f7a3-4352-a266-c2bf74c211fa
5dc28a7457e2        python:3            "/bin/sh -c 'python3…"   2 minutes ago        Up 2 minutes        0.0.0.0:31811->161/udp, 0.0.0.0:31810->8080/tcp   mesos-d44f0ff6-73a1-4609-bc9a-2a32330fc37e

我不认为这是预期的行为,对于单个马拉松应用程序实例,只应创建 1 个 docker 容器。

如果我的观察是正确的或纠正我的理解,请帮助我解决这个问题。

蒂亚。

我假设你可以使用约束的唯一运算符。 https://mesosphere.github.io/marathon/docs/constraints.html

例如:

$ curl -X POST -H "Content-type: application/json" localhost:8080/v2/apps -d '{
"id": "sleep-unique",
"cmd": "sleep 60",
"instances": 3,
"constraints": [["hostname", "UNIQUE"]]
}'

最新更新