Использование DNS-интерфейса консула в контейнерах docker

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

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

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

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

спасибо!

15
задан techraf
06.01.2023 17:09 Количество просмотров материала 2386
Распечатать страницу

1 ответ

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

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

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

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

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

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

c) дополнительно: вы можете добавить --dns-search="service.consul" до docker run таким образом, вы можете иметь более короткие доменные имена (i.e избегайте написания service.consul часть).

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

важная информация:

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

надеюсь, что это помогает!

3
отвечен Franco Laiuppa 2023-01-08 00:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх