我正在使用 docker 设置 Mesos 集群(ZooKeeper+Mesos),其中 3 个节点(A、B、C)为每个节点运行 zookeeper&master&slave 容器。
节点 B 和 C 相互重定向 (quorum=2)
当我运行 Mesos-Master 容器并打开 Mesos Web UI 时,
- 节点 A 看起来像一个主节点
- 节点 B 重定向到节点 C
- 节点 C 重定向到节点 B
节点 A 是孤立的,节点 B 和 C 永远相互重定向,这似乎很奇怪。
这里发生了什么?
docker run
Mesos-Master 的命令如下。(除了 3 个节点相同MESOS_IP
)
docker run
--net=host
-e MESOS_LOG_DIR=/var/log/mesos
-e MESOS_ZK=zk://<hostname-nodeA>:2181,<hostname-nodeB>:2181,<hostname-nodeC>:2181/mesos
-e MESOS_CLUSTER=cheeter
-e MESOS_HOSTNAME=<hostname-nodeA>
-e MESOS_WORK_DIR=/var/lib/mesos
-e MESOS_QUORUM=2
-e MESOS_ISOLATOR=cgroups/cpu,cgroups/mem,cgroups/devices
-e MESOS_CONTAINERIZERS=docker,mesos
-e MESOS_IP=<ip-nodeA>
-p 5050:5050
-v /run/docker.sock:/var/run/docker.sock
-v /var/log:/var/log
-v /cgroup:/cgroup
-v /sys:/sys
-v /proc:/proc
-t mesosphere/mesos-master:0.20.1
docker run
ZooKeeper 的命令如下。(除了 3 个节点相同ZOOKEEPER_ID
)
docker run
-e ZOOKEEPER_ID=1
-e ZOOKEEPER_SERVER_1=<hostname-nodeA>:2888:3888
-e ZOOKEEPER_SERVER_2=<hostname-nodeB>:2888:3888
-e ZOOKEEPER_SERVER_3=<hostname-nodeC>:2888:3888
-e ZOOKEEPER_DATADIR=/var/zookeeper
-p 2181:2181
-p 2888:2888
-p 3888:3888
-v /var:/var
-v /sys:/sys
-v /proc:/proc
-v /cgroup:/cgroup
-t jplock/zookeeper:3.4.6
我试图改变法定人数 1-3,结果是;
3 个节点在循环中重定向 (quorum=1)
当我使用 运行 Mesos-Master 时quorum=1
,节点会像 A->B->C->A->....
每个节点显示“当前没有主控...”(quorum=3)
当我使用 运行 Mesos-Master 时quorum=1
,没有发生重定向,每个节点都显示“当前没有主控...”