Кластер Mesos не восстанавливается при перезапуске физического хоста

Я использую мезосферу на 3 хосте поверх Ubuntu 14.04 следующим образом:

  • один с мастером мезо
  • двое с мезо раб

Все работает нормально, но после перезапуска всех физических хостов все запланированные задания были потеряны. Это нормально? Я ожидаю, что zookeeper сохранит текущие задания, а затем, когда системе потребуется перезагрузить его, все задания будут перенесены после основной загрузки.

Обновление: я использую марафон и мезо на одном узле, и я бегу марафон с флагом --zk


person enrique-carbonell    schedule 04.02.2015    source источник
comment
Какой планировщик вы используете?   -  person KirkSpaziani    schedule 04.02.2015
comment
@KirkSpaziani, я использую марафон   -  person enrique-carbonell    schedule 04.02.2015
comment
Не могли бы вы проверить состояние zookeeper?   -  person drexin    schedule 06.02.2015


Ответы (3)


При включенных --zk и --ha marathon, Marathon должен сохранять свое состояние в ZK и восстанавливать его при перезапуске, если Mesos позволяет ему повторно регистрироваться с тем же идентификатором фреймворка.

Тем не менее, вам также необходимо включить реестр Mesos (даже для одного мастера), чтобы гарантировать, что Mesos сохранит информацию о том, какие frameworkIds зарегистрированы в случае аварийного переключения мастера. Это можно сделать, установив --registry=replicated_log (по умолчанию), --quorum=1 (поскольку у вас только 1 мастер) и --work_dir=/path/to/registry (где хранить состояние).

person Adam    schedule 09.02.2015

Я решил проблему, следуя инструкциям по установке: Как настроить готовый мезосферный кластер в Ubuntu 14.04

person enrique-carbonell    schedule 09.10.2015
comment
Не могли бы вы оставить в этом ответе полный набор инструкций, а не просто оставлять ссылку? Таким образом, это поможет будущим посетителям Stack Overflow, даже если ссылка не работает. - person josliber♦; 09.10.2015

Хотя вы нашли решение, я хотел бы подробнее объяснить эту проблему :)

В официальном документе : http://mesos.apache.org/documentation/latest/slave-recovery/

Обратите внимание, что если операционная система на ведомом устройстве перезагружается, все исполнители и задачи, запущенные на узле, прекращаются и не перезапускаются автоматически, когда узел восстанавливается.

Таким образом, все фреймворки на Mesos будут убиты после перезагрузки. Один из способов перезапуска фреймворков - запустить все фреймворки на Marathon, который будет управлять другими фреймворками и перезапускать их при необходимости.

Однако тогда вам нужно будет автоматически перезапустить Marathon, когда он будет убит. В упомянутой вами ссылке digitialocean Marathon установлен со скриптом в init.d, поэтому его можно перезапустить после перезагрузки. В противном случае, если вы установили Marathon с помощью исходного кода, вы можете использовать такие инструменты, как supervisord, для мониторинга Marathon.

person Dark.Passenger    schedule 13.05.2016