Зачем вообще выбирать роль worker для узлов в кластерах docker swarm?

Допустим, у нас есть тестовая установка из 10 узлов, 4 менеджеров и 6 рабочих.

Когда лидер-менеджер терпит неудачу, остальные 3 менеджера выбирают другого менеджера в качестве лидера.

Когда этот лидер тоже терпит неудачу, у нас остается только 2 менеджера из 4. Тогда другие менеджеры говорят:

Ответ об ошибке от демона: ошибка rpc: code = Unknown desc = У роя нет лидера. Возможно, в сети слишком мало менеджеров. Убедитесь, что более половины менеджеров онлайн.

Так как у нас осталось не больше половины менеджеров, они не смогут выбрать нового лидера, хотя осталось 2 менеджера кластера.

мой вопрос

  1. смысл этого правила в том, что кластер без лидера и больше не управляем до тех пор, пока в кластер не добавлены дополнительные менеджеры, хотя доступно 2 менеджера.
  2. Почему я вообще должен выбирать роль worker для узлов? Какие преимущества есть у узлов в качестве рабочих? Менеджеры также действуют как рабочие по умолчанию, но с тем недостатком, что они не могут вступить во владение, когда узлы менеджера выходят из строя.

person Cravid    schedule 04.04.2018    source источник
comment
Возможный дубликат Плюсы и минусы запуска всего Docker Узлы Swarm в качестве менеджеров?   -  person Bret Fisher    schedule 06.04.2018
comment
См. мой длинный ответ на вопрос об обмане: stackoverflow.com/a/48856496/749924   -  person Bret Fisher    schedule 06.04.2018


Ответы (1)


  1. Docker рекомендует использовать систему с нечетным количеством узлов-менеджеров. Таким образом, ваша первоначальная установка 4 менеджеров так же хороша, как наличие 3 узлов менеджера. Рекомендуется начать с 5 узлов, так как вы теряете 2 узла. Кроме того, нет ли какой-либо серьезной проблемы, которую необходимо решить в том, как вы используете? (потеря такого количества узлов не является хорошим признаком)

Если рой теряет кворум менеджеров, рой не может выполнять задачи управления. Если в вашем рое несколько менеджеров, всегда делайте больше двух. Для поддержания кворума необходимо наличие большинства менеджеров. Рекомендуется нечетное количество менеджеров, потому что следующее четное число не облегчает поддержание кворума. Например, независимо от того, есть ли у вас 3 или 4 менеджера, вы все равно можете потерять только 1 менеджера и сохранить кворум. Если у вас 5 или 6 менеджеров, вы все равно можете потерять только двоих.

  1. Наличие выделенных рабочих узлов гарантирует, что они не будут участвовать в распределенном состоянии Raft, принимать решения о планировании или обслуживать HTTP API режима роя. Таким образом, вся вычислительная мощность этих узлов предназначена специально для запуска контейнеров.

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

Цитаты взяты из официальной документации докера ссылка

person Vamsi    schedule 04.04.2018
comment
Таким образом, разница в наличии узлов в качестве рабочих, а не всех узлов в качестве менеджеров, заключается только в вычислительных и сетевых ресурсах, которые также будут использоваться для Raft и т. д.? Действительно ли они важны или ими можно пренебречь, чтобы иметь большую стабильность в кластере? Конечно, мой пример выше с 4 менеджерами и 2 отказавшими менеджерами (то есть 50%) был только примером, но высокая доступность особенно важна для особых случаев. См., например, нарушение работы Amazon S3 в феврале 2017 года. Поэтому я полагаю, что для многих сервисов, имеющих все узлы в качестве менеджеров, стоит немного накладных расходов на согласование плотов и т. д. - person Cravid; 04.04.2018
comment
Обратите внимание, что всегда высока вероятность того, что узлы перестанут работать с высокими вычислительными операциями => узлы, на которых запущены контейнеры. Таким образом, имея все узлы только в качестве менеджера, вы рискуете потерять больше узлов, если ваш контейнер вообще истощает слишком много ресурсов. Кроме того, наличие нескольких выделенных узлов в качестве менеджера гарантирует, что они остаются в рабочем состоянии и эффективно управляют рабочими узлами. Примечание. Докер упомянул, что не должен превышать 7 узлов менеджера по той же причине. - person Vamsi; 05.04.2018