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 могут быть запущены с тегом сервера.


person Yana K.    schedule 22.03.2019    source источник


Ответы (1)


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

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

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

person bagljas    schedule 22.03.2019