it-swarm.com.ru

Как настроить параметр dns в веб-приложении Azure для контейнеров

Это то, что происходит с контейнером. Интересно, есть ли способ запустить веб-приложение для контейнеров с настраиваемым DNS.

У меня есть 5 микросервисов в моем ILB-ASE Они должны иметь возможность звонить друг другу, используя мой собственный DNS-сервер в виртуальной сети. Когда я проверяю resolv.conf, я вижу 127.0.0.11. Мне нужно, чтобы это было установлено на мой собственный сервер DNS.

как мы можем ввести мое собственное значение DNS здесь?

Должны ли мы использовать appsettings, если да, каковы значения в веб-приложении для контейнеров?

Так что я могу использовать опцию --dns

Таинственная часть, которой управляет Azure. Некоторые значения появляются из настроек приложения.

2018-08-23 14: 12: 56.100 ИНФОРМАЦИЯ - запуск докера -d -p 13940: 5001 - имя xxx -e DOCKER_CUSTOM_IMAGE_NAME = xxx.azurecr.io/xxx: 558 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE = false -e WEBSITES_PORT = 5001 -e WEBSITE_SITE_NAME = xxx -e WEBSITE_AUTH_ENABLED = False -e WEBSITE_ROLE_INSTANCE_ID = 0 -e WEBSITE_INSTANCE_ID = xxx -e HTTP_LOGGING_ENABLED = 1 xxx.azurecr.io/xxx:558

===== DOCKER LOG =========

2018_08_23_RD0003FF2D0408_default_docker.log:

2018-08-23T14: 12: 49.755843301Z [40 м [1 м [33 м предупреждать [39 м [22 м [49 м: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [35]

2018-08-23T14: 12: 49.755897801Z Не настроен шифровщик XML. Ключ {xxx-xxx-xxx-xxx-xxx} может храниться в незашифрованном виде.

2018-08-23T14: 12: 54.761216323Z [40 м [1 м [33 м предупреждать [39 м [22 м [49 м: Microsoft.AspNetCore.Server.Kestrel [0]

2018-08-23T14: 12: 54.761251623Z Переопределяющий адрес (а) ' http: // +: 80 ' . Привязка к конечным точкам, определенным в UseKestrel ().

2018-08-23T14: 12: 54.908189021Z Хостинговая среда: Производство

2018-08-23T14: 12: 54.908386123Z Путь к корню содержимого:/app

2018-08-23T14: 12: 54.908961927Z Сейчас слушаю: http://0.0.0.0:5001

2018-08-23T14: 12: 54.909256229Z Приложение запущено. Нажмите Ctrl + C, чтобы неисправность.

2018_08_23_RD0003FF2D0408_docker.log:

2018-08-23 14: 12: 44.125 ИНФОРМАЦИЯ - Переработка контейнера из-за AppFrameworkVersionИзменить и appFrameworkVersion = xxx.xxx.io/xxx:558

2018-08-23 14: 12: 45.900 INFO - Стартовый контейнер для сайта

2018-08-23 14: 12: 45.900 ИНФОРМАЦИЯ - запуск докера -d -p 30464: 5001 - имя xxx -e DOCKER_CUSTOM_IMAGE_NAME = xxx.azurecr.io/xxx: 549 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE = false -e WEBSITES_PORT = 5001 -e WEBSITE_SITE_NAME = xxx -e WEBSITE_AUTH_ENABLED = False -e WEBSITE_ROLE_INSTANCE_ID = 0 -e WEBSITE_INSTANCE_ID = xxx -e HTTP_LOGGING_ENABLED = 1 xxx.xxx.io/xxx:558

2018-08-23 14: 12: 55.972 ИНФОРМАЦИЯ - Инициализирован контейнер xxx для сайта xxx успешно.

2018-08-23 14: 12: 55.976 ИНФОРМАЦИЯ - Переработка контейнера из-за AppSettingsChange и isMainSite = True

2018-08-23 14: 12: 56.099 INFO - Стартовый контейнер для сайта

2018-08-23 14: 12: 56.100 ИНФОРМАЦИЯ - запуск докера -d -p 13940: 5001 - имя xxx -e DOCKER_CUSTOM_IMAGE_NAME = xxx.azurecr.io/xxx: 558 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE = false -e WEBSITES_PORT = 5001 -e WEBSITE_SITE_NAME = xxx -e WEBSITE_AUTH_ENABLED = False -e WEBSITE_ROLE_INSTANCE_ID = 0 -e WEBSITE_INSTANCE_ID = xxx -e HTTP_LOGGING_ENABLED = 1 xxx.azurecr.io/xxx:558

2018-08-23 14: 13: 05.385 INFO - инициализирован контейнер xxx для сайта xxx успешно.

12
Rıfat Erdem Sahin

мы ответили на ваш вопрос о Github и Reddit. Повторно опубликовать наш ответ здесь для наглядности.

«В настоящее время существует обходной путь для этого: вы должны изменить стандартное resolv.conf на собственный IP-адрес DNS, а затем добавить свой собственный resolv.conf в сборку Docker, добавив команду COPY в сценарий точки входа и указав собственный resolv.conf в/и т.д.

Однако мы ищем лучшее решение для этого, чтобы не было необходимости вручную обновлять resolv.conf, поэтому следите за обновлениями ».

3
Grace MacJones - MSFT

Вы не должны использовать DNS для связи с микросервисами, вместо этого вы должны использовать сервисный реестр .

Проверить это бумага Microsoft говорить об этом:

Каждый микросервис имеет уникальное имя (URL), которое используется для разрешения его место нахождения. Ваш микросервис должен быть адресуемым, где бы он ни был Бег. Если вам нужно подумать о том, на каком компьютере работает В конкретном микросервисе все может быстро испортиться. Точно так же этот DNS разрешает URL для конкретного компьютера, вашего микросервиса должно иметь уникальное имя, чтобы его текущее местоположение было обнаруживаемый. Микросервисам нужны адресуемые имена, которые делают их независимо от инфраструктуры, на которой они работают. Это подразумевает, что существует взаимодействие между вашим сервисом развернут и как он обнаружен, потому что должен быть сервис реестр. В том же духе, когда компьютер выходит из строя, реестр служба должна иметь возможность указывать, где сейчас работает служба.

Как видите, лучшее решение будет зависеть от вашей модели развертывания. Проверьте это примечание о контейнерах:

В некоторых средах развертывания микросервисов (называемых кластерами, которые будут описаны в следующем разделе) обнаружение служб является встроенным. За Например, в среде службы контейнеров Azure Kubernetes и DC/OS с Marathon может обрабатывать регистрацию экземпляров сервисов и снятие с учета. Они также запускают прокси на каждом узле кластера, который играет роль сервера обнаружения маршрутизатора. Другой пример - Azure Service Fabric, которая также предоставляет реестр служб через готовая служба именования.

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

2
Fabio Manzano