Как получить экземпляры контейнеров Azure с помощью моего DNS-сервера?

В ACI мы используем контейнеры Linux с виртуальными сетевая поддержка. Там у нас есть несколько докеризованных приложений-функций Azure, которые используют Azure ServiceBus, учетные записи хранения Azure и Azure CosmosDb, которые находятся внутри виртуальной сети.

Все эти службы работают довольно хорошо, однако, когда мы пытаемся получить доступ к нашему управлению API (которое также находится внутри виртуальной сети), мы получаем ответ 502 - Bad Gateway. После подключения к экземпляру и добавления нашего DNS-сервера в resolv.conf все работает нормально - это приводит меня к выводу, что DNS, предоставленный в виртуальной сети, не принимается во внимание.

Есть ли что-то особенное, что нам нужно учитывать при использовании ACI с виртуальными сетями?


person DSpirit    schedule 05.11.2020    source источник


Ответы (1)


После некоторого расследования мы обнаружили, что развертывание Microsoft.ContainerInstance/containerGroups ARM-шаблона имеет следующее свойство: Microsoft.ContainerInstance/containerGroups/properties/dnsConfig/nameServers[]

Там мы добавили наш DNS-сервер, и он отлично заработал! Вот документация по нему: https://docs.microsoft.com/en-us/azure/templates/microsoft.containerinstance/containergroups#DnsConfiguration

Однако это решение не совсем чистое, поскольку требует от вас двойного обслуживания DNS-сервера (в настройках VNET, а также для каждого экземпляра контейнера). Если есть какой-нибудь способ избавиться от этого, мы будем очень признательны.

person DSpirit    schedule 06.11.2020