Колба консул и консул DNS - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь научиться играть с флягой и консулом.

Вот мой /etc/consul.d/consul.json

{ "data_dir": "/ opt / consul / data", "сервер": правда, "bind_addr": "0.0.0.0", "bootstrap_expect": 1, "UI": правда, "домен": "bino.inc", "client_addr": "0.0.0.0", "имя_узла": "узел01" }

запустить с / usr / bin / consul agent -config-dir = / etc / consul.d /

Протестируйте с dig @ 127.0.0.1 -p 8600 node01.node.bino.inc и получите ;; ОТВЕТ РАЗДЕЛ: node01.node.bino.inc. 0 В 192.168.1.5

Я просто делаю копию примера с https://github.com/vsudilov/flask-consulate сделайте небольшое изменение:

# Register Consul service:
consul.register_service(
    address='127.0.0.1',
    name='webapp',
    interval='10s',
    tags=['master', ],
    port=5000,
    httpcheck='http://localhost:5000/healthcheck'
)

consul.app.run (порт = 5000, с резьбой = False, отладка = True)

Похоже, сценарий консула и фляги связывает друг друга. Колба отладки получила:

127.0.0.1 - - [15 / Nov / 2018 08:38:27] «GET / healthcheck HTTP / 1.1» 200 -

Мой вопрос - полное доменное имя моего скрипта-фляги, сгенерированного консулом?

Я пытался

dig @ 127.0.0.1 -p 8600 webapp.bino.inc

, и консул отладки сказал:

2018/11/15 08:41:29 [WARN] днс: QName недействительно: webapp.

Пробовал с

dig @ 127.0.0.1 -p 8600 webserver.bino.inc

, консул-отладчик сказал:

2018/11/15 08:43:37 [WARN] днс: QName недействительно: веб-сервер.

С уважением -bino-

1 Ответ

0 голосов
/ 05 марта 2019

Для запроса зарегистрированных служб в Консуле через интерфейс DNS требуется специальное структурирование полного доменного имени службы, как описано в этой ссылке для стандартного поиска ( Стандартный поиск Conusl DNS )

Полное доменное имя зарегистрированной в Консуле службы должно быть в форме:

<service>.service[.datacenter].<domain>

, где <service> - это название вашей услуги, зарегистрированной в Консуле, в вашем случае webapp или webserver. <domain> является доменом консула, как определено в вашем consul.json. [datacenter] является необязательным, и сервер Consul возвращает службы для центра обработки данных, к которому он принадлежит Поскольку вы не определили его в consul.json, это dc1.

Итак, ваш dig запрос должен выглядеть так:

dig @127.0.0.1 -p 8600  webapp.service.bino.inc

или

dig @127.0.0.1 -p 8600  webserver.service.bino.inc

По желанию вы можете попробовать добавить центр обработки данных к полному доменному имени. Ваш запрос dig должен выглядеть следующим образом и должен возвращать тот же ответ, что и выше, поскольку вы работаете с одним узлом DC кластера Консул:

dig @127.0.0.1 -p 8600  webserver.service.dc1.bino.inc

Надеюсь, это поможет решить вашу проблему.

...