Consul bootstrap-ожидаемое значение

#consul #quorum

#консул #quorum

Вопрос:

У меня есть кластер consul, в котором обычно должно быть 5 серверов и куча клиентов. Наш скрипт для запуска серверов изначально настроен следующим образом

 consul agent -server -bootstrap-expect 5 -join <ips of all 5 servers>
  

Однако нам пришлось перезапустить все серверы и выполнить повторную загрузку — на одном из наших серверов возникли проблемы с оборудованием, и начальная загрузка больше не работает.

Мой вопрос — в ситуации, когда имеется 5 серверов, но для кворума достаточно 3, должен ли параметр -bootstrap-expect быть установлен равным 3?

Документация здесь https://www.consul.io/docs/agent/options.html#_bootstrap_expect похоже, подразумевается, что значение -bootstrap-expect должно быть установлено на общее количество серверов, что означает, что даже сбой одной машины предотвратит загрузку кластера

Для ясности, наши сценарии запуска представляют собой статические файлы, поэтому, когда я говорю, что есть 5 серверов, это означает, что до 5 могут быть запущены с тегом server.

Ответ №1:

В вашем случае, если вам явно не требуется, чтобы все 5 серверов были подключены к Сети во время начальной настройки кластера, вам следует установить -bootstrap-expect значение 3. Это позволит избежать ситуаций, подобных той, что произошла, т. Е. у вас есть 5 серверов, и вы говорите им, что они должны дождаться, пока все 5 подключатся к сети, для начальной настройки кластера. Как следует из документации:

При предоставлении Consul ожидает, пока не будет доступно указанное количество серверов, а затем загружает кластер. Это позволяет автоматически выбирать первоначального лидера.

С --bootstrap-expect=3 как только 3 из ваших 5 серверов Consul присоединятся к кластеру, начнутся выборы лидера, и в случае, если последние 2 присоединятся намного позже, кластер будет функционировать. И если уж на то пошло, вы можете позже подключить любое количество серверов.