Вопрос Использование интерфейса DNS consul в контейнерах докеров


У меня есть агент-консул, запущенный на моей главной машине, и несколько служб, работающих внутри контейнеров-докеров. Я использую «gliderlabs / registrator», чтобы открыть эти службы и зарегистрировать их у местного агента консула.

Консул-агент настроен на прием соединений со всех сторон ("client_addr": "0.0.0.0" вариант), который я могу «доказать», делая dig @172.17.42.1 -p 8600 someservice.service.consul от главной машины.

Проблема в том, что я, похоже, не в состоянии сделать то же самое из контейнеров, запрос на копирование просто время, и я не могу curl это тоже. Я прохожу --dns 172.17.42.1, Есть идеи?

Примечание. Я хочу избежать использования --net=host если возможно.

Благодаря!


3
2018-06-11 10:22


происхождения




ответы:


Я попал в один и тот же блокпост, и ваши настройки и мой взгляд выглядят очень похожими (я запускаю Consul отдельно, а не как контейнер Docker).

Я также против использования --net=host !!!.

Что заставило его работать в моем случае:

а) Я создал config.json для Консула, и внутри него я создал ports.dsn свойство использовать порт 53 (DNS по умолчанию).

Вы не можете использовать 8600 внутри контейнеров Docker, это связано с тем, что docker run --dns Аргумент не позволяет вам предоставить порт.

б) Я использовал LAN (частный) IP хоста, как --dns стоимость. Я пробовал с другими значениями раньше (0.0.0.0, публичный IP и 127.0.0.1), но они не работали.

с) Дополнительно: вы можете добавить --dns-search="service.consul" к docker run поэтому у вас могут быть более короткие доменные имена (т. е. не нужно писать service.consul часть).

После внутри контейнера вы можете выполнить nslookup ubuntu.service.consul если это имя службы, которое вы имеете для этот контейнер.

Важные заметки:

  • Вам необходимо открыть порты (т. Е. -P или -p флаг) на контейнере для registrator забрать их. Если вы не используете порт, registrator будет молча игнорировать контейнер.
  • Приятно настроить имя хоста (используя -h флаг).

Надеюсь это поможет!


3
2018-06-23 17:43