Выборы лидера в кластере Mesos, кажется, не работают

Я настраиваю кластер 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, перенаправления не происходит, и каждый узел показывает «Ни один мастер в настоящее время не ведет ...»


person ai0307    schedule 25.05.2015    source источник


Ответы (1)


Для 3 главных узлов кворум должен быть не менее 2 (см. http://mesos.apache.org/documentation/latest/configuration/). Не могли бы вы поделиться мастер-логами? Они могут помочь понять, что пошло не так.

person rukletsov    schedule 26.05.2015
comment
В соответствии с '''docker run.. -e MESOS_QUORUM=2''' размер кворума должен быть 2 - person js84; 26.05.2015