Настройка общедоступной подсистемы балансировки нагрузки

Завершено

Архитектура портала медицинской организации должна предусматривать распределение нагрузки, создаваемой клиентскими браузерами, по виртуальным машинам в веб-ферме. Вам необходимо настроить подсистему балансировки нагрузки и виртуальные машины, подлежащие балансировке.

Общедоступная подсистема балансировки нагрузки сопоставляет общедоступный IP-адрес и номер порта для входящего трафика с частным IP-адресом и номером порта виртуальной машины во внутреннем пуле. Затем ответы возвращаются клиенту. Применяя правила балансировки нагрузки, можно распределять определенные типы трафика между несколькими виртуальными машинами или службами.

Режимы распределения

По умолчанию Azure Load Balancer равномерно распределяет сетевой трафик между экземплярами виртуальных машин. Если требуется иная схема, также возможны описанные ниже режимы распределения.

  • Хэш пяти кортежей: режим распределения по умолчанию для Load Balancer — это хэш пяти кортежей. Кортеж состоит из исходного IP-адреса, исходного порта, конечного IP-адреса, конечного порта и типа протокола. Так как исходный порт, включенный в хэш, меняется для каждого сеанса, в рамках каждого сеанса клиенты могут перенаправляться в разные виртуальные машины.

    Diagram showing how hash-based distribution works.

  • Сходство исходного IP-адреса: этот режим распространения также называется сходством сеансов или сходством IP-адресов клиента. Для сопоставления трафика с доступными серверами режим сходства исходных IP-адресов использует хэш из двух кортежей (исходного и конечного IP-адресов) или хэш из трех кортежей (исходного IP-адреса, конечного IP-адреса и типа протокола). Хэш гарантирует, что запросы от определенного клиента всегда отправляются подсистемой балансировки нагрузки в одну и ту же виртуальную машину.

    Diagram showing how session affinity works.

Выбор режима распределения

В примере портала здравоохранения представьте, что требование разработчика уровня презентации — использовать сеансы в памяти для хранения профиля пользователя, выполнившего вход, как пользователь взаимодействует с порталом.

В этом сценарии подсистема балансировки нагрузки должна обеспечивать сходство исходного IP-адреса для поддержки сеанса пользователя. Профиль хранится только в виртуальной машине, к которой клиент подключился в первый раз, так как этот IP-адрес направляется на тот же сервер. При создании конечной точки подсистемы балансировки нагрузки необходимо указать режим распространения с помощью следующего примера PowerShell:

$lb = Get-AzLoadBalancer -Name MyLb -ResourceGroupName MyResourceGroup
$lb.LoadBalancingRules[0].LoadDistribution = 'sourceIp'
Set-AzLoadBalancer -LoadBalancer $lb

Чтобы реализовать сохраняемость сеанса на портале Azure, сделайте следующее:

  1. В портал Azure выберите ресурс Load Balancer.

  2. На странице правил балансировки нагрузки в области Параметры выберите соответствующее правило балансировки нагрузки.

    Screenshot showing how to select a load balancing rule in the Azure portal.

  3. На странице параметров правила балансировки нагрузки измените значение сохраняемости сеанса с None на IP-адрес клиента.

Screenshot showing how to set IP affinity in the Azure portal.

Load Balancer и шлюз удаленных рабочих столов

Шлюз удаленных рабочих столов — это служба Windows, с помощью которой клиенты в Интернете могут использовать протокол удаленного рабочего стола (RDP) для подключения через брандмауэры к серверам удаленных рабочих столов в частной сети. Хэш из пяти кортежей, используемый в Load Balancer по умолчанию, несовместим с этой службой. Чтобы использовать Load Balancer с серверами удаленных рабочих столов, используйте сходство исходного IP-адреса.

Load Balancer и передача мультимедийных данных

Еще один вариант использования сходства исходного IP-адреса — передача мультимедийных данных. Во многих реализациях клиент инициирует сеанс по протоколу TCP и подключается к конечному IP-адресу. Это соединение остается открытым во время передачи данных, что позволяет отслеживать ход выполнения, но файл отправляется через отдельное подключение по протоколу UDP.

С хэшом с пятью кортежами подсистема балансировки нагрузки, скорее всего, отправляет подключения TCP и UDP на разные IP-адреса назначения, и отправка не завершится успешно. Чтобы устранить эту проблему, используйте сходство исходного IP-адреса.