Огляд azure load balancer, microsoft docs

В цій статті

Балансувальник навантаження Azure забезпечує високу доступність і продуктивність мережі для додатків. Це балансувальник навантаження рівня 4 (TCP, UDP), що розподіляє вхідний трафік між працездатними екземплярами служб, визначених у наборі балансування навантаження.

Ось які функції можна налаштувати в службі Azure Load Balancer:

  • балансування навантаження вхідного інтернет-трафіку віртуальних машин. Така конфігурація називається балансуванням навантаження для Інтернету.
  • Балансування навантаження трафіку між віртуальними машинами в віртуальної мережі, між віртуальними машинами в хмарних службах або між локальними комп'ютерами і віртуальними машинами в розподіленої віртуальної мережі. Така конфігурація називається внутрішньої балансуванням навантаження.
  • Перенаправлення зовнішнього трафіку до певного примірнику віртуальної машини.

Моделі розгортання Azure

Важливо розуміти різницю між класичною моделлю розгортання Azure і моделлю розгортання за допомогою Resource Manager. У кожній моделі Azure Load Balancer налаштовується по-різному.

класична модель розгортання Azure

Огляд azure load balancer, microsoft docs

Мал. 1. Azure Load Balancer в класичній моделі розгортання

Модель розгортання диспетчера ресурсів Azure

У моделі розгортання за допомогою Resource Manager немає необхідності створювати хмарну службу. Можна явно створити підсистему балансування навантаження для маршрутизації трафіку між декількома віртуальними машинами.

На представленій нижче схемі показаний Azure Load Balancer в цій моделі.

Огляд azure load balancer, microsoft docs

Мал. 2. Azure Load Balancer в диспетчері Resource Manager

Підсистемою балансування навантаження можна керувати за допомогою інтерфейсів API, шаблонів і інструментів на основі Resource Manager. Додаткові відомості про Resource Manager см. В статті Загальні відомості про диспетчері ресурсів Azure.

Функції підсистеми балансування навантаження

Поширення на основі хеша

Огляд azure load balancer, microsoft docs

Мал. 3. Розподіл на основі хеша

Балансувальник навантаження Azure дозволяє контролювати процес управління вхідною зв'язком. Ця взаємодія включає в себе трафік з вузлів Інтернету, віртуальних машин в інших хмарних службах або з віртуальних мереж. Цей контроль представлений кінцевою точкою (також відомої як вхідні кінцева точка).

Вхідна кінцева точка прослуховує загальнодоступний порт і перенаправляє трафік на внутрішній порт. Ви можете зіставляти одні і ті ж порти для внутрішніх або зовнішніх кінцевих точок або використовувати для них інший порт. Наприклад, можна налаштувати веб-сервер так, щоб він прослуховував порт 81, а порт 80 використовувався для зіставлення загальнодоступних кінцевих точок. При створенні загальнодоступної кінцевої точки створюється екземпляр балансувальника навантаження.

Якщо для створення використовується портал Azure, то він автоматично створює кінцеві точки для віртуальної машини для протоколу віддаленого робочого столу (RDP) і трафіку віддаленого сеансу Windows PowerShell. Ці кінцеві точки дозволяють дистанційно керувати віртуальною машиною через Інтернет.

Балансувальник навантаження Azure миттєво переналаштовує сам себе при горизонтальному і вертикальному масштабуванні екземплярів. Наприклад, така перенастроювання може статися при збільшенні кількості примірників для веб-ролі і робочої ролі в хмарної службі або при додаванні додаткових віртуальних машин в той же набір балансування навантаження.

Azure Load Balancer може перевіряти працездатність різних примірників сервера. Якщо перевірка не відповідає, балансувальник навантаження Azure припиняє надсилати нове підключення непрацездатним екземплярів. Існуючі підключення не зачіпаються.

Існує три типи перевірки:

  • Перевірка гостьового агента (тільки на віртуальних машинах PaaS). Підсистема балансування навантаження використовує гостьовий агент всередині віртуальної машини. Гостьовий агент виконує прослуховування і повертає відповідь "HTTP 200 (OK)" тільки в тому випадку, якщо екземпляр знаходиться в стані готовності (т. Е. Екземпляр не в змозі "Зайнятий", "Перезапуск" або "Зупинка"). Якщо агент не відправляє відповідь "HTTP 200 (OK)", то балансувальник навантаження зазначає екземпляр як непрацездатний і перестає відправляти йому трафік. Балансувальник навантаження продовжить перевіряти зв'язок з цим екземпляром. Якщо гостьовий агент дає відповідь HTTP 200, балансувальник навантаження знову направить трафік до цього примірника. При використанні веб-ролі код веб-сайту зазвичай виконується в процесі w3wp.exe, яка не відстежується структурою Azure або гостьовим агентом. Це означає, що помилки в процесі w3wp.exe (наприклад, відповіді HTTP 500) ні передаватися на гостьовий агент і балансувальник навантаження не знатиме, що екземпляр перестає використовуватися.
  • Призначена для користувача перевірка HTTP. Ця перевірка переопределяет перевірку (гостьового агента) за замовчуванням. Її можна використовувати для створення власної настроюється логіки для визначення працездатності примірника ролі. Балансувальник навантаження буде регулярно перевіряти кінцеву точку (за замовчуванням, кожні 15 секунд). Примірник вважається працездатним і знаходяться в ротації, якщо він повертає відповідь TCP ACK або HTTP 200 за певний час очікування (за замовчуванням 31 секунда). Це зручно для реалізації власної логіки видалення екземплярів з ротації балансувальника навантаження. Наприклад, можна налаштувати примірник для повернення стану, відмінного від 200, якщо завантаження ЦП примірника перевищує 90%. Для веб-ролей, які використовують w3wp.exe, ви також отримуєте автоматичний моніторинг веб-сайту, так як помилки в коді веб-сайту при перевірці повернуть стан, відмінне від 200.

Призначена для користувача перевірка TCP. Перевірка залежить від успішності створення сеансу TCP до певного порту зонда.

Додаткові відомості див. У статті LoadBalancerProbe Schema (Схема LoadBalancerProbe).

Конфігурація підсистеми балансування навантаження Azure підтримує повний конусний NAT для протоколу UDP. Повний конусний NAT - це тип NAT, де порт дозволяє підключення до вашого комп'ютера від будь-якого зовнішнього вузла (у відповідь на вихідний запит).

Відмінності балансування навантаження

Є різні варіанти для розподілу мережевого трафіку за допомогою Microsoft Azure. Ці варіанти працюють по-різному, мають різні набори функцій і підтримують різні сценарії. Їх можна використовувати окремо або разом.

  • Azure Load Balancer працює на транспортному рівні (рівень 4 в еталонному стеку мережі OSI). Вона забезпечує розподіл трафіку на рівні мережі по екземплярам додатки, що працює в одному центрі обробки даних Azure.
  • Шлюз додатків працює на прикладному рівні (рівень 7 в еталонному стеку мережі OSI). Він виступає в якості служби зворотного проксі-сервера, завершуючи підключення клієнта і перенаправляючи запити до кінцевих точок серверної частини.
  • Диспетчер трафіку працює на рівні DNS. Він використовує відповіді DNS для перенаправлення трафіку користувачів до глобально розподілених кінцевим точкам. Потім клієнти підключаються до цих кінцевих точок безпосередньо.

У цій таблиці наведено можливості, що надаються кожною службою:

Azure Load Balancer

За замовчуванням: інтервал вибірки - 15 секунд. Вилучення з ротації: 2 послідовних збою. Підтримує призначені для користувача проби.

Інтервал простою проби - 30 секунд. Вилучення після 5 послідовних збоїв в інтерактивному трафіку або одного збою проби в режимі простою. Підтримує призначені для користувача проби.