我在运行 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"]]
}'