Top.Mail.Ru

Облако

Создать Балансировщик нагрузки для распределения нагрузки между серверами

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

Чтобы создать балансировщик нагрузки, внутри проекта перейдите в раздел Сеть → Балансировщики нагрузки и нажмите Создать балансировщик.

Создать Балансировщик нагрузки для распределения нагрузки между серверами

В отрывшемся окне настройте балансировщик:  

1. Регион

Выберите регион для балансировки.

Обратите внимание. Балансировать трафик можно только внутри одного дата-центра.

2. Тип

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

3. Сеть для балансировки

Укажите тип сети для балансировки нагрузки: Публичную или Приватную

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

Создать Балансировщик нагрузки для распределения нагрузки между серверами

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

Создать Балансировщик нагрузки для распределения нагрузки между серверами

4. Слушатели

Слушатель — это процесс, который принимает запросы от клиентов по указанным в его настройках порту и протоколу. 

Для создания балансировщика необходимо добавить один или несколько слушателей. Для этого:

1) Нажмите Добавить слушатель.

2) В поле «Имя» укажите имя слушателя.

3) Укажите протокол, по которому слушатель будет принимать запросы: TCP, UDP, HTTP или Terminated HTTPS.

4) В поле «Порт» укажите порт, по которому слушатель будет принимать запросы, в диапазоне от 1 до 65 535.

5) (Опционально) В поле «Разрешённые CIDR» укажите пул IP-адресов в виде IP с маской подсети, с которых слушатель будет принимать запросы. Чтобы разрешить запросы с нескольких адресов, укажите маски подсетей через запятую. Если оставить поле пустым, слушатель будет принимать запросы со всех адресов.

6) (Опционально) Укажите максимальное время ожидания для следующих запросов:

  • Данные клиента – время ожидания ответа для входящих запросов на балансировщик нагрузки.
  • Подключение к ВМ – время ожидания ответа для запросов от балансировщика нагрузки к серверам.
  • Данные ВМ – время, в течение которого подключение не сбрасывается, даже если данные не передаются.

Если оставить поля пустыми, на каждый параметр будут установлены стандартные значения. При превышении указанного времени соединение будет прервано. Указать можно как только один, так и несколько параметров.

Создать Балансировщик нагрузки для распределения нагрузки между серверами

Для протоколов HTTP и Terminated HTTPS также доступен переключатель Добавлять заголовки X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto в запросы. Активация опции позволит идентифицировать происхождение IP-адреса клиента, который подключается к веб-серверу через балансировщик нагрузки.

Важно. Укажите секрет для протокола Terminated HTTPS. Процесс создания секрета описан в статье Загрузить PKCS12-файл для создания HTTPS-слушателя

7) Нажмите Создать слушатель.

5. Пул

После создания слушателя необходимо настроить пул.

Пул — это список виртуальных машин, на которые слушатель будет перенаправлять входящий трафик. Для настройки пула:

1) Нажмите Добавить новый пул.

2) Укажите имя пула.

3)  Выберите алгоритм балансировки: 

  • Round robin — запросы распределяются между серверами внутри кластера последовательно: первый запрос на первый сервер, второй — на второй и так далее по кругу. 
  • Least Connection — новые запросы отправляются на сервер с наименьшим количеством активных подключений. 
  • Source IP — по IP клиента определяется, на каком сервере должен быть обработан запрос. 

4) Выберите протокол. Система предложит вам варианты, основываясь на настройках слушателя: HTTP-слушатель может общаться с серверами по протоколу HTTP, HTTPS-слушатель — по HTTPS,  UDP-слушатель — по UDP, а TCP-слушатель — по TCP и PROXY. Протокол PROXY позволяет проксировать IP-адрес пользователя, который подключается к вашему серверу через балансировщик нагрузки.

5) Если вам необходимо привязывать сессию, выберите App Cookie и заполните поле «Cookie». Специальный модуль создает cookie — чем делает каждый браузер уникальным — и далее использует его для переадресации запросов на один и тот же сервер.

Создать Балансировщик нагрузки для распределения нагрузки между серверами

6. Серверы

Нажмите Добавить ВМ и прикрепите виртуальные машины, которые будут участвовать в раздаче трафика для настраиваемого слушателя. При добавлении машины необходимо указать её порт и вес в раздаче. 

Мы поддерживаем возможность указывать Custom IP-адрес в пуле. Кроме того, можно указать адрес из определённой подсети. Подробнее о настройке подсети можно прочитать в статье Создать Сеть для ваших машин.

7. Проверка состояния 

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

1) Выберите протокол для проверки состояния пула: TCP, Ping или HTTP. 

Для протокола HTTP необходимо выбрать HTTP-метод и добавить URL проверки. 
 
 2) Укажите: 

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

Создать Балансировщик нагрузки для распределения нагрузки между серверами

8. Теги

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

Обратите внимание. Некоторые теги могут быть присвоены балансировщику автоматически, например:

  • os_distro
  • os_type
  • os_version
  • image_name
  • task_id
  • image_id
  • snapshot_id
  • snapshot_name
  • user_id
  • amphora
  • octavia-amphora-image

Если указать эти теги вручную, при создании балансировщика может возникнуть ошибка.

Создать Балансировщик нагрузки для распределения нагрузки между серверами

9. Имя балансировщика 

Введите имя балансировщика нагрузки и нажмите Создать.

10. Настройка файрволов машин, которые входят в пул.

Их порты должны быть открыты для трафика балансировщика:

  • Если балансировщик и виртуальные машины состоят в публичной сети, в настройках файрволов машин задайте правила для приёма и передачи трафика от IP балансировщика (указан в меню).
  • Если балансировщик и виртуальные машины состоят в приватной подсети, в настройках файрволов машин задайте правила для приёма и передачи трафика от всей приватной подсети или от IP балансировщика (указан в меню).
  • Если балансировщик состоит в публичной сети, а виртуальные машины — в приватной подсети, в настройках файрволов машин задайте правила для приёма и передачи трафика от всей приватной подсети или от внутреннего IP балансировщика (этот IP можно запросить у техподдержки).

Список созданных балансировщиков находится в разделе Сеть → Балансировщики нагрузки.  

Создать Балансировщик нагрузки для распределения нагрузки между серверами

Созданный балансировщик можно: 

  • Настроить (опция Детали)
  • Переименовать (опция Редактировать)
  • Удалить

Для этого нажмите на меню ··· справа от балансировщика. 

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

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

Создать Балансировщик нагрузки для распределения нагрузки между серверами 

Для редактирования слушателя перейдите во вкладку Слушатели, нажмите на меню ··· справа от слушателя и выберите нужную опцию.   

В редакторе можно: 

  • изменять алгоритм проверки состояния пула;
  • изменять параметры подключенных ВМ (включая адрес проверки, порт и вес);
  • включать и выключать сервера из пула балансировки;
  • изменять список разрешённых CIDR;
  • изменять максимальное время ожидания для запросов;
  • изменять параметры проверки в разделе Проверка состояния

Статус

Значение

Работает (UI)

Online (API)

Балансировщик работает.

Все виртуальные машины в пуле принимают запросы.

Не работает (UI)

Draining (API)

Виртуальная машина из пула не принимает новые запросы.

Не работает (UI)

Degraded (API)

Один или несколько компонентов балансировщика имеют статус Error.

Не работает (UI)

Error (API)

Балансировщик не работает.

Виртуальные машины не проходят запросы на проверку состояния.

Все виртуальные машины в пуле имеют статус Error.

Мы используем cookie, чтобы сайт стал лучше для вас.