VK Cloud

Load Balancer

Оптимальное распределение нагрузки на инфраструктуру

Бесперебойная работа ваших проектов

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

Повышение доступности сервисов для пользователей
Масштабирование инфраструктуры без простоев в работе
Обеспечение отказоустойчивости приложений

Типы балансировщиков нагрузки от VK Cloud

Стандартный балансировщик

Можно подключить для отказоустойчивости и гибкого масштабирования приложений при работе с Cloud Servers и Cloud Containers.

Сервисный балансировщик

Необходим для работы некоторых PaaS-сервисов, и подключается автоматически при их развертывании. Список таких сервисов — в документации.

Сценарии использования Load Balancer

Гибкое масштабирование инфраструктуры

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

Доступность сервисов при сбоях

Стандартный балансировщик
Когда один сервер выходит из строя, запросы поступают на другие доступные. Благодаря этому приложение работает, даже если произошел сбой.

Безопасное тестирование обновлений

Стандартный балансировщик
Сервер, на котором тестируют обновления, исключают из основной группы — балансировщик трафика временно не передает на него запросы.

Методы балансировки нагрузки

Балансировщик нагрузки работает с протоколами HTTP, TCP, UDP, HTTPS. Также Load Balancer поддерживает три метода балансировки.

Least Connections для большого количества активных соединений

Каждый последующий запрос Network Load Balancing направляет на сервер с наименьшим количеством подключений. Нагрузка распределяется между серверами с приблизительно одинаковыми параметрами.

Round Robin, если у серверов одинаковая мощность

Балансировщик нагрузки серверов последовательно отправляет запросы на все доступные серверы. После запроса к последнему в очереди серверу цикл повторяется заново.

Sticky Sessions, если для ответа нужны локальные данные

Запросы распределяются на произвольные серверы. При этом пользовательский IP Load Balancing запоминает и направляет все запросы от одного устройства на один и тот же сервер.

Принцип работы балансировщика нагрузки

scroll-cхема

FAQ

Для чего нужен балансировщик нагрузки?

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


Как работает балансировщик нагрузки?

Для распределения нагрузки используют технологии балансировки нагрузки (server load balancing), с их помощью разделяют запросы по разным серверам. Упрощенно концепция балансировки выглядит просто — запросы от пользователей поступают в некое централизующее приложение, которое направляет их дальше на обработку в другие приложения.


С какими облачными сервисами работает Load Balancer?

Стандартный балансировщик создается пользователем и доступен при работе с сервисом облачных вычислений (Cloud Servers). Его задача — распределение трафика между серверами.

Также стандартный балансировщик можно подключить при работе с сервисом контейнеров (Cloud Containers), например, при использовании Ingress-контроллеров.

Сервисный балансировщик сетевой нагрузки создается автоматически, он нужен для работы некоторых PaaS-сервисов.

  • В сервисе контейнеров Load Balancer подключается для каждого кластера Kubernetes, чтобы обеспечить доступ к Kubernetes API.
  • В сервисе баз данных для инстансов БД в кластерной конфигурации, чтобы балансировать нагрузку между узлами инстансов. Это применимо для инстансов MySQL, PostgreSQL, Postgres Pro Enterprise, Postgres Pro Enterprise 1С.

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


Стандартный балансировщик нагрузки доступен всем пользователям VK Cloud?

Да. Но количество балансировщиков нагрузки ограничено квотами на проект клиента. Квоту можно увеличить, обратившись в техподдержку VK Cloud.


Как подключить и настроить сервис Load Balancer?

Добавлять, удалять и настраивать стандартные балансировщики нагрузки для серверов можно в панели управления VK Cloud, а также через API openstack и Terraform-провайдер. Сервисный балансировщик создается автоматически.


Что делать, если при создании Load Balancer я указал не ту сеть?

Изменить сеть не получится, ее указывают один раз при подключении сервиса. Вам придется пересоздать сетевой балансировщик.


Как распределяется трафик между выбранными виртуальными машинами?

При подключении Application Load Balancer вы указываете вес каждой виртуальной машины. Это число означает долю трафика на конкретный инстанс.

Общая сумма трафика на все ВМ — 100%. После указания нужных параметров, веса всех инстансов складываются и пропорционально пересчитываются на долю трафика, который приходится на каждый из них.

Например, если веса виртуальных машин — 20 и 30, значит, на первую Network Load Balancer отправит 40% трафика, а на вторую — 60%.


Может ли трафик попасть на неработающий облачный сервер?

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

При подключении вы можете задать правила для проверок доступности, например, интервал отправки проверяющих запросов, время ожидания ответа (тайм-аут), и другие.

Документация

Здесь есть ответы на большинство вопросов по настройке сервисов

Вся документация

Не нашли ответ на свой вопрос?

Здесь есть ответы на большинство вопросов по настройке сервисов

Задать вопрос

3500 разработчиков