2016-03-13 5 views
3
  • Испытательная среда: многоузловой мезос 0.27.2 кластер на AWS (3 x мастеров, 2 x подчиненных, кворум = 2).
  • Протестировано сохранение с zkCli.sh, и он отлично работает.
  • Если я запустил мастеров с --registry=in_memory, он отлично работает, мастер избран, я могу запускать задания через марафон.
  • Если я использовать по умолчанию (--registry=replicated_log) кластер не может избрать хозяина:

https://gist.github.com/mitel/67acd44408f4d51af192Кластер Mesos не может выбрать мастер при использовании replicated_log

EDIT: видимо, проблема была брандмауэр. Применял правило всех допустимых правил для всех типов безопасности, и теперь у меня есть стабильный мастер. Как только я выясню, что блокирует сообщение, я отправлю его здесь.

ответ

1

Обнаруженный что Mesos мастера также инициировать соединения с другими мастерами по 5050. После добавления правила выхода для группы безопасности мастера, кластер является стабильным, мастер выборов происходит, как ожидалось. firewall rules

UPDATE: для тех, кто пытается построить внутренний межсетевой экран между различными компонентами mesos/zk/.. - не делайте этого. лучше спроектировать безопасность, как в Mesosphere DCOS

+0

Да, реплики журнала живут в одном и том же ОС с мастером и общаются друг с другом с использованием того же сокета, который использует мастер (TCP на 5050). – rukletsov

1

Прежде всего, позвольте мне вкратце разъяснить значение флагов для потомков. --registry не влияет на выбор лидеров, он определяет стратегию сохранения реестра (где Mesos отслеживает данные, которые должны переноситься при отказе). Значение in_memory не должно использоваться в производстве, оно может быть даже удалено в будущем.

Лидерские выборы проводятся зоопарком. Согласно вашему журналу, вы используете следующий кластер zookeeper: zk://10.1.69.172:2181,10.1.9.139:2181,10.1.79.211:2181/mesos.

Теперь, из журнала, кластер не преминул избрать хозяин, он на самом деле сделал это дважды:


I0313 18:35:28.257139 3253 master.cpp:1710] The newly elected leader is [email protected]:5050 with id edd3e4a7-ede8-44fe-b24c-67a8790e2b79 
... 
I0313 18:35:36.074087 3257 master.cpp:1710] The newly elected leader is [email protected]:5050 with id c4fd7c4d-e3ce-4ac3-9d8a-28c841dca7f5 

Я не могу сказать, почему именно лидер был избран в два раза, за что я нужны журналы от 2 других мастеров. Согласно вашему журналу, последний избранный мастер находится на 10.1.9.139:5050, что, скорее всего, не та, с которой вы предоставили журнал.

Одна подозрительная вещь, которую я вижу в журнале, состоит в том, что идентификаторы мастера различаются для одного и того же IP-порта. У вас есть идея, почему?

I0313 18:35:28.237251 3244 master.cpp:374] Master 24ecdfff-2c97-4de8-8b9c-dcea91115809 (10.1.69.172) started on 10.1.69.172:5050 
... 
I0313 18:35:28.257139 3253 master.cpp:1710] The newly elected leader is [email protected]:5050 with id edd3e4a7-ede8-44fe-b24c-67a8790e2b79 
+0

(К последнему вопросу) Этот мастер, вероятно, перезапустился и дал себе новый masterId. Вот почему один и тот же IP-порт может иметь разные masterIds. – Adam

+0

Спасибо @rukletsov. Действительно, «-регистрация» не должна влиять на выборы лидеров. Мне показалось странным, что при той же настройке и постоянстве 'in_memory' кластеру удается выбрать« стабильный »мастер. Я воссоздал кластер, вот журналы: [master1] (https://gist.github.com/mitel/1c2406200466da59ec21) [master2] (https://gist.github.com/mitel/60ad6eefccf90621277e) [master3] (https://gist.github.com/mitel/13ccc7dad9fcc6f59627) – mitelone

+0

@mitelone, на основе ваших журналов, похоже, проблема связана с кворумом и синхронизацией между репликами replicated_log. Прежде чем я расскажу о причинах, не могли бы вы сделать тест для меня? Не могли бы вы запустить всех мастеров одновременно (не с задержкой в ​​4 с, как в ваших журналах) или поставить их под супервизор, например. monit, и скажите, сохраняется ли проблема? Благодаря! – rukletsov