Зачем нужен load balancer?

 

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

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

Простое увеличение числа ВМ в кластере позволяет горизонтально масштабировать вычислительные мощности.

Сервис чаще всего используют для следующих сценариев:

1. Горизонтальное и вертикальное масштабирование инфраструктуры — выравнивание нагрузки на серверы позволяет масштабировать инфраструктуру без простоев в работе. В случае вертикального масштабирования клиентские запросы можно перевести на другие серверы, пока вы увеличиваете мощность исходного. Горизонтальное масштабирование реализовать еще проще — надо только добавить новые серверы и подключить их к сети.
2. Отказоустойчивость — как только сервис понимает, что сервер не справляется, он переводит запросы на другие серверы.
3. Развертывание приложений без даунтайма («канареечный релиз») — когда обновление развертывается на одном из серверов, куда с помощью балансера перенаправляется часть трафика. Если приложение в обновленном виде там работает корректно, значит, новую версию можно полностью развертывать в прод.



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

 

Балансировщик нагрузки для виртуальных машин и кластеров Kubernetes входит в услугу по аренде облачных серверов любой конфигурации ([Cloud Servers](https://mcs.mail.ru/cloud-servers/)). При подключении сервиса [Cloud Containers](https://mcs.mail.ru/containers/) вы получаете интеграцию Kubernetes с отказоустойчивыми балансировщиками нашей облачной платформы. Специальный Cloud Provider автоматически создает, конфигурирует, удаляет балансеры, реализует масштабирование.


Сервис доступен всем пользователям MCS?

 

Да. При этом есть некоторые особенности использования сервиса Network load balancing. В целом число добавленных балансировщиков ограничивается только числом подключенных виртуальных машин. Однако для их создания требуется хотя бы одна сеть с подсетью.

Кроме того, после создания балансировщик нагрузки получает белый IP-адрес — это нужно, чтобы на него мог поступать внешний трафик. Если у вас закончится лимит на IP-адреса, новые балансеры создать не получится. Вы можете увеличить лимит, обратившись в нашу службу поддержки.



Как я могу подключить и настроить сервис load balancing?

 

Подключить услугу можно в несколько кликов. Добавлять и удалять балансировщики нагрузки вы можете в [панели управления MCS](https://mcs.mail.ru/app/services/infra/balancers-list/), там же можно менять правила внутри них. 


Что такое «правила» в настройках сервиса?

 

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


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

 

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


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

 

При подключении сервиса load balancing вы указываете вес каждой виртуальной машины. Это число означает долю трафика, которая будет приходиться на конкретный инстанс.

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



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

 

Для предупреждения таких ситуаций у balancer есть проверки доступности. Это проверка параметров, по которым сервис понимает, что виртуальная машина способна обработать запросы. То есть трафик получают только работоспособные ВМ. В случае недоступности какой-то из них запросы будут отправлены на другие инстансы.

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