3

У меня есть 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 , отвечая на ping и telnet. Но haproxy прежнему относится к web интерфейсу.

Я ожидаю, что haproxy повторит проверку внутренней web интервал по умолчанию (каждые 2 секунды в соответствии с документацией), и, как resilt, будет пытаться разрешить dns снова при каждой проверке.

Как я могу настроить haproxy для ожидания, пока dns разрешит имя внутреннего сервера, а затем автоматически создаст резервную копию этого внутреннего сервера?

1 ответ1

2

Ваша текущая конфигурация позволяет 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).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .