haproxy подождите пока днс решит бэкэнд
У меня есть 2 док-контейнера в одной сети - web
а также proxy
Бег haproxy
с бэкэндом
backend web
server web web:80 check
Также init-addr
установлен в last,libc,none
, так что не выходит из строя, если не может решить web
на старте.
Если я начну proxy
первый, haproxy
отчеты could not resolve address 'web', disabling server
,
Тогда я начинаю web
, Это стало доступным по имени из proxy
, отвечая на пинг и телнет. Но haproxy
все еще лечит web
отступить вниз.
Я жду haproxy
повторить проверку бэкэнда web
по умолчанию (каждые 2 секунды в соответствии с документацией), и, как resilt - пытается разрешить DNS снова при каждой проверке.
Как я могу настроить haproxy
подождать, пока днс не разрешит имя внутреннего сервера, а затем автоматически создаст этот сервер?
1 ответ
Ваша текущая конфигурация позволяет HAProxy разрешать имена хостов только при запуске, как упомянуто здесь. Поскольку это не может решить web
при запуске рассматриваемый сервер будет отключен.
Чтобы заставить HAProxy выполнять DNS-разрешение после запуска, вам нужно добавить раздел распознавателей.
Пример:
resolvers mydns
nameserver dns1 10.0.0.1:53
nameserver dns2 10.0.0.2:53
backend web
server web web:80 check init-addr last,libc,none resolvers mydns
Тогда всякий раз web
становится разрешимым, вы будете что-то вроде этого в журналах:Server web/web ('web') is UP/READY (resolves again).