Сетевые балансировщики нагрузки
In this article:
Сетевые балансировщики нагрузки#
Сетевые балансировщики нагрузки распределяют поступающий трафик TCP и UDP между виртуальными машинами для равномерного разделения нагрузки. Трафик принимается обработчиками и переадресуется целевым группам, внутри которых он распределяется между целевыми ресурсами. Распределение трафика осуществляется в соответствии с алгоритмом 5-tuple hash, который учитывает:
протокол;
адрес и порт отправителя;
адрес и порт получателя.
Трафик соединения TCP и потока UDP с одинаковыми отправителем и получателем маршрутизируется на один и тот же целевой ресурс в течение всего срока их жизни.
Ограничения на использование#
При использовании сетевых балансировщиков нагрузки следует учитывать следующие ограничения:
Балансировка трафика между целевыми ресурсами в разных зонах доступности пока не поддерживается. Экземпляр балансировщика может распределять трафик только между целевыми ресурсами в той же зоне доступности, в которой он находится.
Примечание
В дальнейшем мы планируем реализовать возможность балансировки трафика между разными зонами доступности для трафика, поступающего на конкретный адрес.
Чтобы создать сетевой балансировщик внутренней нагрузки в выбранном VPC, необходимо соблюсти следующие условия:
имеется только одна таблица маршрутизации;
включена функция распространения маршрутов;
отсутствуют подсети, к которым присоединены внешние сети.
Примечание
Если какое-то из перечисленных условий не может быть выполнено, а балансировщик внутренней нагрузки требуется для распределения трафика только в рамках одной зоны доступности, для его создания оставьте заявку на портале поддержки или направьте её по адресу support@k2.cloud.
Примечание
После создания балансировщика нагрузки невозможны любые изменения в конфигурации VPC, которые нарушают ограничения, перечисленные в этом пункте.
Если балансировщик внутренней нагрузки необходим для распределения трафика из подключённых внешних сетей, то для его работы необходимо выполнить следующие условия:
внешняя сеть должна быть подключена к виртуальному коммутатору, а не к VPC;
в каждой зоне доступности, где будет размещён экземпляр балансировщика, следует создать экземпляр виртуальной машины для маршрутизации трафика между VPC и внешней сетью. Этот экземпляр будет отвечать за маршрутизацию трафика к балансировщику в данной зоне доступности. Экземпляр должен иметь как минимум два сетевых интерфейса, причём один из них следует подключить к подсети, которая расположена в нужном VPC; а второй — к виртуальному коммутатору, к которому присоединена внешняя сеть.
Примечание
Балансировка нагрузки с асимметричной маршрутизацией (когда трафик из внешней сети поступает к экземпляру балансировщика через одну зону доступности, а направляется вовне через другую) не поддерживается. Трафик должен поступать и выходить из VPC через одну и ту же зону доступности.
Для обращений к внутреннему DNS resolver в VPC необходимо настроить DNS forwarder или SNAT для DNS-трафика у экземпляра, который используется для маршрутизации трафика, и обращаться к DNS из внешних сетей через этот DNS forwarder/SNAT.
Повышение отказоустойчивости#
Сетевые балансировщики нагрузки на данный момент не поддерживают автоматическое распределение трафика между несколькими зонами доступности. Чтобы повысить доступность сервиса, вы можете включить в целевую группу ресурсы из нескольких зон доступности. Для этого при создании балансировщика нагрузки необходимо указать подсеть в каждой зоне доступности, где находятся целевые ресурсы. В результате будет создан балансировщик нагрузки, который доступен по нескольким IP-адресам (публичным в случае балансировщика внешней нагрузки или приватным в случае балансировщика внутренней нагрузки).
Трафик, поступающий на конкретный IP-адрес балансировщика, направляется обработчиком целевым ресурсам в той же зоне доступности, что и сетевой интерфейс балансировщика, которому назначен этот IP-адрес.
Для распределения входящего трафика между несколькими IP-адресами и, соответственно, зонами доступности можно использовать DNS-имя балансировщика.
Если в зоне доступности есть хотя бы один целевой ресурс в состоянии ОК
, то IP-адрес экземпляра балансировщика из данной зоны доступности добавляется в DNS.
Например, если балансировщик запущен в трёх зонах доступности и в каждой из них есть хотя бы один доступный целевой ресурс, то ответ на запрос DNS-имени будет возвращать сразу все три IP-адреса в случайном порядке.
При отказе экземпляр балансировщика восстанавливается автоматически средствами облака.
Операции с балансировщиками нагрузки#
Для работы балансировщика нагрузки помимо самого балансировщика необходимо создать по крайней мере один обработчик и связанную с ним целевую группу с минимум одним ресурсом. Обработчики и целевые группы можно создать вместе с балансировщиком нагрузки. Однако целевые группы удобнее создавать отдельно. Обработчики можно добавить после создания балансировщика нагрузки.
Создать сетевой балансировщик нагрузки#
Примечание
Вы можете также создать балансировщик и ассоциировать его с существующей целевой группой в подразделе Целевые группы.
Внимание
Сетевой балансировщик внутренней нагрузки можно создать, только если в VPC включено распространение маршрутов.
Чтобы создать сетевой балансировщик нагрузки:
Перейдите в раздел Балансировка нагрузки Балансировщики нагрузки и нажмите Создать.
Задайте основные параметры балансировщика:
Тип — Тип балансировщика нагрузки. Выберите NLB.
Тег Name — Опциональное описание балансировщика нагрузки.
Имя балансировщика нагрузки — Имя не должно быть длиннее 32 символов, может содержать только латинские буквы, цифры и дефисы, не должно начинаться и заканчиваться дефисом.
Схема — Данный параметр определяет, с какими клиентами может работать балансировщик нагрузки. В случае схемы
с внутренней нагрузкой
балансировщик нагрузки обрабатывает запросы на внутренние адреса только от клиентов из того же VPC. В случае схемыс внешней нагрузкой
он может распределять запросы, поступающие на внешние адреса от любых клиентов из интернета.
Для перехода на следующий шаг нажмите Далее.
Укажите параметры привязки к сети:
VPC — VPC, в котором будет размещён балансировщик нагрузки. Все остальные компоненты балансировщика, такие как целевые группы и целевые ресурсы, должны находиться в том же VPC.
Подсеть — Подсеть, в которой будет создан сетевой интерфейс балансировщика нагрузки.
Private IP или Elastic IP — IP-адрес, который будет назначен сетевому интерфейсу, в зависимости от выбранной схемы. При выборе схемы
с внутренней нагрузкой
необходимо указать внутренний IP-адрес из выбранной подсети, а при выборе схемыс внешней нагрузкой
— внешний Elastic IP-адрес. Вы также можете оставить это поле пустым, тогда адрес будет назначен автоматичеcки.
Чтобы привязать балансировщик к подсетям в других зонах доступности, нажмите Добавить подсеть.
Для перехода на следующий шаг нажмите Далее.
Добавьте обработчики и привяжите к ним целевые группы. Вы можете пропустить этот шаг и добавить обработчики позднее.
Тег Name — Имя или описание обработчика.
Протокол — Протокол, трафик которого принимает обработчик. Балансировщик нагрузки может одновременно иметь обработчики трафика TCP и UDP.
Порт — Порт, на котором обработчик принимает трафик.
Пересылка на — Данная опция позволяет привязать к обработчику целевую группу. Вы можете выбрать уже
существующую целевую группу
из списка или добавитьновую целевую группу
. Во втором случае необходимо задать:имя целевой группы;
порт, на который направляется трафик;
целевые ресурсы, которые входят в группу.
Примечание
Целевые ресурсы должны находиться в тех же зонах доступности, что и подсети, выбранные на предыдущем шаге.
Для добавления обработчика нажмите Добавить.
При необходимости вы можете сразу добавить дополнительные обработчики, повторив описанные выше действия, или удалить лишние, нажав Убрать.
Для перехода на следующий шаг нажмите Далее.
Если требуется, назначьте теги для балансировщика нагрузки.
Если тег Name не был задан на шаге 2 и вы хотите его добавить, нажмите Добавить тег Name и задайте значение тега.
Чтобы добавить произвольный тег, нажмите Добавить тег и задайте ключ и значение тега.
Вы можете пропустить этот шаг и добавить теги позднее. Для перехода на следующий шаг нажмите Просмотр и создание.
Проверьте настройки балансировщика. Если необходимо изменить какие-то из-них, вернитесь на соответствующий шаг. Если всё правильно, нажмите Создать для создания балансировщика.
Балансировщику может потребоваться некоторое время на проверку состояния целевых ресурсов (если они заданы). Её длительность зависит от настроек проверки работоспособности для целевых групп.
Примечание
Для запуска балансировщика не требуется указывать ни обработчик, ни целевые ресурсы. Однако балансировщик не будет обрабатывать трафик, если они не заданы, даже если он находится в состоянии Активен.
Привязать подсеть#
При привязке подсети к балансировщику создаётся сетевой интерфейс в этой подсети. Привязанную подсеть и соответствующий интерфейс нельзя ни изменить, ни удалить. Однако вы можете привязать к балансировщику нагрузки подсети из зон доступности, где у балансировщика ещё нет сетевого интерфейса.
Чтобы добавить подсеть:
Перейдите в раздел Балансировка нагрузки Балансировщики нагрузки.
Выберите балансировщик нагрузки в таблице и нажмите Привязать подсети.
Укажите параметры привязки к сети:
Подсеть — Подсеть, в которой будет создан дополнительный сетевой интерфейс балансировщика нагрузки. Она должна находиться в том же VPC, что и уже привязанные подсети.
Private IP или Elastic IP — IP-адрес, который будет назначен сетевому интерфейсу, в зависимости от выбранной схемы. В случае схемы
с внутренней нагрузкой
необходимо указать внутренний IP-адрес из выбранной подсети, а в случае схемыс внешней нагрузкой
— внешний Elastic IP-адрес. Вы также можете оставить это поле пустым, тогда адрес будет назначен автоматичеcки.
Чтобы привязать к балансировщику другие подсети, нажмите Добавить подсеть.
Для привязки подсетей нажмите Привязать.
Вы также можете привязать подсети на странице балансировщика нагрузки на вкладке Информация.
Удалить балансировщик нагрузки#
Вместе с балансировщиком удаляются все принадлежащие ему обработчики. В то же время удаление балансировщика не затрагивает связанные целевые группы и их целевые ресурсы.
Чтобы удалить балансировщик нагрузки:
Перейдите в раздел Балансировка нагрузки Балансировщики нагрузки.
Выберите балансировщик нагрузки в таблице и нажмите Удалить.
Подтвердите действие.
Балансировщик нагрузки можно также удалить на его странице на вкладке Информация.
Операции с обработчиками#
Добавить обработчик#
Примечание
Вы можете также добавить обработчик для целевой группы в подразделе Целевые группы.
Чтобы добавить обработчик:
Перейдите в раздел Балансировка нагрузки Балансировщики нагрузки.
Выберите балансировщик нагрузки в таблице и нажмите Добавить обработчик.
Добавьте обработчики и привяжите к ним целевые группы. Для этого задайте следующие параметры:
Тег Name — Имя обработчика (опционально).
Протокол — Протокол, трафик которого принимает обработчик. Балансировщик нагрузки может одновременно иметь обработчики трафика TCP и UDP.
Порт — Порт, на котором обработчик принимает трафик.
Пересылка на — Данная опция позволяет привязать к обработчику целевую группу.
Вы можете выбрать уже
существующую целевую группу
из списка или добавитьновую целевую группу
. Во втором случае необходимо будет задать имя целевой группы, порт, на который направляется трафик, и целевые ресурсы, которые входят в группу.
Если требуется назначить теги обработчику, нажмите Добавить теги для перехода на следующий шаг.
Если тег Name не был задан на шаге 3 и вы хотите его добавить, нажмите Добавить тег Name и задайте значение тега.
Чтобы добавить произвольный тег, нажмите Добавить тег и задайте ключ и значение тега.
Для добавления обработчика нажмите Добавить.
Если необходимо добавить больше одного обработчика, повторите описанные шаги.
Вы можете также добавить обработчик на странице балансировщика нагрузки на вкладке Обработчики.
Изменить настройки обработчика#
В отличие от мастера создания балансировщика и диалога добавления обработчика при изменении его настроек нельзя создать целевую группу. Если вы хотите пересылать трафик обработчика на новую целевую группу, то предварительно создайте её.
Чтобы изменить настройки обработчика:
Перейдите в раздел Балансировка нагрузки Балансировщики нагрузки.
Найдите в таблице ресурсов балансировщик нагрузки, к которому относится обработчик, и нажмите на имя балансировщика нагрузки для перехода на его страницу
Выберите обработчик в таблице и нажмите Изменить.
Измените необходимые настройки обработчика:
Протокол — Протокол, трафик которого принимает обработчик.
Порт — Порт, на котором обработчик принимает трафик.
Пересылка на — Целевая группа, на которую обработчик пересылает трафик.
Для применения настроек нажмите Изменить.
Удалить обработчик#
Удаление обработчика не затрагивает связанную целевую группу и входящие в неё целевые ресурсы. После удаления обработчика вы можете ассоциировать освободившуюся целевую группу с другим обработчиком, в том числе принадлежащим другому балансировщику нагрузки.
Перейдите в раздел Балансировка нагрузки Балансировщики нагрузки.
Нажмите на имя балансировщика нагрузки для перехода на его страницу и откройте вкладку Обработчики.
Выберите обработчик в таблице и нажмите Удалить.
Подтвердите действие.
Информация о балансировщике нагрузки#
На странице ресурса отображается данные о самом балансировщике нагрузки, относящимся к нему обработчикам и сетевых интерфейсах. Чтобы открыть страницу конкретного балансировщика нагрузки, перейдите в раздел Балансировка нагрузки Балансировщик нагрузки и нажмите на ссылку с его именем в таблице ресурсов.
На вкладке Информация представлены общие сведения о балансировщике нагрузки:
имя балансировщика;
DNS-имя;
дата создания;
состояние;
тип балансировщика;
используемая схема;
VPC, где создан балансировщик;
ARN балансировщика;
зоны доступности, где имеются сетевые интерфейсы балансировщика;
количество обработчиков;
количество сетевых интерфейсов.
Кроме того, здесь вы можете привязать подсети к балансировщику и удалить его.
На вкладке Обработчики отображается список используемых обработчиков со следующей информацией:
имя обработчика (тег Name);
ARN обработчика;
выполняемое действие со ссылкой на целевую группу;
порт, на который поступает трафик, и используемый протокол.
Примечание
В случае сетевых балансировщиков нагрузки каждый обработчик поддерживает только одно действие — переадресацию трафика на заданную целевую группу.
Кроме того, здесь вы можете также добавить обработчик, изменить его настройки, настроить теги и удалить.
На вкладке Сетевые интерфейсы выводится список сетевых интерфейсов, используемых балансировщиком нагрузки, со следующей информацией:
идентификатор сетевого интерфейса;
тег Name;
краткое описание;
состояние;
подсеть;
зона доступности;
VPC;
IP-адрес.
В зависимости от выбранной схемы балансировщика отображается либо его приватный IP-адрес, либо назначенный Elastic IP-адрес.
На вкладке Теги отображается информация о назначенных тегах. Здесь вы также назначить теги балансировщику нагрузки.