Я настраиваю кластер Mesos (ZooKeeper+Mesos) с помощью докера, с тремя узлами (A, B, C), на каждом из которых запущены контейнеры zookeeper, master и slave.
узлы B и C перенаправляют друг друга (кворум=2)
Когда я запускаю контейнер Mesos-Master и открываю веб-интерфейс Mesos,
- узел 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 узла перенаправляют в группе (кворум=1)
Когда я запускаю Mesos-Master с quorum=1
, узлы перенаправляются в группе, например A->B->C->A->....
На каждом узле отображается сообщение "В настоящее время нет главного узла..." (quorum=3)
Когда я запускаю Mesos-Master с quorum=1
, перенаправления не происходит, и каждый узел показывает «Ни один мастер в настоящее время не ведет ...»