Поделиться через


Использование политики DNS для балансировки нагрузки приложений

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

Предыдущие версии WINDOWS Server DNS предоставляют только балансировку нагрузки с помощью ответов циклического перебора; но при использовании DNS в Windows Server 2016 можно настроить политику DNS для балансировки нагрузки приложений.

При развертывании нескольких экземпляров приложения можно использовать политику DNS для балансировки нагрузки трафика между различными экземплярами приложений, тем самым динамически распределяя нагрузку трафика для приложения.

Пример балансировки нагрузки приложений

Ниже приведен пример использования политики DNS для балансировки нагрузки приложений.

В этом примере используется одна вымышленная компания — Contoso Gift Services, которая предоставляет онлайн-службы подарков, а также веб-сайт с именем contosogiftservices.com.

Веб-сайт contosogiftservices.com размещается в нескольких центрах обработки данных с разными IP-адресами.

В Северная Америка, который является основным рынком для Contoso Gift Services, веб-сайт размещается в трех центрах обработки данных: Чикаго, IL, Даллас, TX и Сиэтл, WA.

Веб-сервер Сиэтла имеет лучшую конфигурацию оборудования и может обрабатывать в два раза больше нагрузки, чем другие два сайта. Компания Contoso Gift Services хочет, чтобы трафик приложения был направлен следующим образом.

  • Так как веб-сервер Сиэтла включает дополнительные ресурсы, половина клиентов приложения направляется на этот сервер.
  • Четверть клиентов приложения направляется в Даллас, центр обработки данных TX
  • Четверть клиентов приложения направляется в Чикаго, IL, центр обработки данных

На следующем рисунке показан этот сценарий.

Балансировка нагрузки приложений DNS с помощью политики DNS

Как работает балансировка нагрузки приложений

После настройки DNS-сервера с политикой DNS для балансировки нагрузки приложений с помощью этого примера DNS-сервер отвечает 50% времени с адресом веб-сервера Сиэтла, 25% времени с адресом веб-сервера Далласа и 25% времени с адресом веб-сервера Чикаго.

Таким образом, для каждого четырех запросов DNS-сервер получает, он отвечает двумя ответами для Сиэтла и по одному для Далласа и Чикаго.

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

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

Настройка балансировки нагрузки приложений

В следующих разделах показано, как настроить политику DNS для балансировки нагрузки приложений.

Создание областей зоны

Сначала необходимо создать области зоны contosogiftservices.com для центров обработки данных, где они размещаются.

Область зоны — это уникальный экземпляр зоны. Зона DNS может иметь несколько областей зоны с каждой областью, содержащей собственный набор записей DNS. Одна запись может присутствовать в нескольких областях с разными IP-адресами или одинаковыми IP-адресами.

Примечание.

По умолчанию область зоны существует в зонах DNS. Эта область зоны имеет то же имя, что и зона, а устаревшие операции DNS работают с этой областью.

Для создания областей зоны можно использовать следующие команды Windows PowerShell.

Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "SeattleZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "DallasZoneScope"
Add-DnsServerZoneScope -ZoneName "contosogiftservices.com" -Name "ChicagoZoneScope"

Дополнительные сведения см. в разделе Add-DnsServerZoneScope

Добавление записей в области зоны

Теперь необходимо добавить записи, представляющие узел веб-сервера в области зоны.

В SeattleZoneScope можно добавить запись www.contosogiftservices.com с IP-адресом 192.0.0.1, расположенным в центре обработки данных Сиэтла.

В ChicagoZoneScope можно добавить ту же запись (www.contosogiftservices.com) с IP-адресом 182.0.0.1 в центре обработки данных Чикаго.

Аналогичным образом в ДалласеZoneScope можно добавить запись (www.contosogiftservices.com) с IP-адресом 162.0.0.1 в центре обработки данных Чикаго.

Для добавления записей в области зоны можно использовать следующие команды Windows PowerShell.

Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "192.0.0.1" -ZoneScope "SeattleZoneScope"
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "182.0.0.1" -ZoneScope "ChicagoZoneScope"
Add-DnsServerResourceRecord -ZoneName "contosogiftservices.com" -A -Name "www" -IPv4Address "162.0.0.1" -ZoneScope "DallasZoneScope"

Дополнительные сведения см. в разделе Add-DnsServerResourceRecord.

Создание политик DNS

После создания разделов (областей зоны) и добавленных записей необходимо создать политики DNS, которые распределяют входящие запросы между этими областями, чтобы 50% запросов для contosogiftservices.com ответили с IP-адресом веб-сервера в центре обработки данных Сиэтла, а остальные распределяются одинаково между центрами обработки данных Чикаго и Далласа.

Для создания политики DNS, которая балансирует трафик приложения в этих трех центрах обработки данных, можно использовать следующие команды Windows PowerShell.

Примечание.

В приведенном ниже примере команды выражение -ZoneScope "SeattleZoneScope,2; ChicagoZoneScope,1; ДалласZoneScope,1" настраивает DNS-сервер с массивом, включающим сочетание <ZoneScope>параметров.<weight>

Add-DnsServerQueryResolutionPolicy -Name "AmericaPolicy" -Action ALLOW -ZoneScope "SeattleZoneScope,2;ChicagoZoneScope,1;DallasZoneScope,1" -ZoneName "contosogiftservices.com"

Дополнительные сведения см. в разделе Add-DnsServerQueryResolutionPolicy.

Теперь вы успешно создали политику DNS, которая обеспечивает балансировку нагрузки приложений на веб-серверах в трех разных центрах обработки данных.

Вы можете создавать тысячи политик DNS в соответствии с требованиями к управлению трафиком, и все новые политики применяются динамически , не перезапуская DNS-сервер в входящих запросах.