#consul #hashicorp #consul-kv
Вопрос:
У меня есть 2 разных кластера консулов HashiCorp (давайте назовем их кластером A и кластером B), работающих на разных хостах.
Мое приложение Python работает на хосте, который я уже установил на 1 клиентском агенте, настроенном для кластера A, и я хочу, чтобы мое приложение также могло отправлять запросы в кластер B (каким-то образом различать 2 агента).
Можно ли установить второй клиентский агент (настроенный для кластера B) на том же хосте? и если да, то как это можно сделать? Мне просто нужно будет переключиться на другой порт? Не могу найти документацию для этого варианта использования.
Любые возможные решения будут полезны, спасибо!
Ответ №1:
Consul позволяет настраивать порты для ваших агентов, чтобы они не конфликтовали на одном хосте. Я смог сделать это в файле с именем:
consul.json
С содержанием:
{
"ports": {
"dns": 9600,
"http":9500,
"serf_lan":9301,
"serf_wan": 9401,
"server":9300,
"grpc":9502
}
}
Затем я запустил агента со следующей командой:
consul agent -dev -bind 127.0.0.1 --config-file consul.json
Затем у меня было два агента на одной машине, которые я видел с помощью инструмента командной строки ps x
(сокращенный вывод).:
7510 ... consul agent -dev -bind 127.0.0.1
7780 ... consul agent -dev -bind 127.0.0.1 --config-file consul.json
Наконец, я использовал --http-addr=
указанную здесь опцию, чтобы поговорить с агентом порта, не использующим порт по умолчанию, и сгруппировал их вместе на одном хосте, просто чтобы посмотреть, возможно ли это, конечно, было:
[vagrant@localhost ~]$ consul members
Node Address Status Type Build Protocol DC Segment
localhost.localdomain 127.0.0.1:8301 alive server 1.10.2 2 dc1 <all>
localhost.localdomain.dc1 127.0.0.1:9401 alive server 1.10.2 2 dc1 <all>
Поэтому я вполне уверен, что вы можете запустить два агента на одних и тех же хостах с соответствующими настройками в файле конфигурации для каждого возраста (или использовать значения по умолчанию для одного и файл конфигурации для другого).
Комментарии:
1. Спасибо за подробное объяснение!
2. Во-первых, просто хочу напомнить, что запуск двух агентов на одном хосте не рекомендуется для развертывания. Если вам абсолютно необходимо сделать это в рабочем режиме, не используйте
-dev
режим и настройте отдельныйdata_dir
для каждого агента, чтобы они не пытались сохранить данные в одном каталоге. Возможно , вам также потребуется явно указать разныеnode_id
буквы s в конфигурации. Кроме того, другие предложения по настройке, предложенные Асланом, верны. 🙂