Балансировщики нагрузки
Балансировщик нагрузки — это метод распределения заданий/трафика между несколькими сетевыми устройствами (например, серверами) для достижения следующих целей:
- Оптимизация использования ресурсов.
- Сокращение времени обслуживания запросов.
- Горизонтальное масштабирование кластера (динамическое добавление/удаление устройств).
- Обеспечение отказоустойчивости (резервирования).
Создание и управление балансировщиком доступно через Портал самообслуживания → раздел Виртуальные сети → страница Балансировщики нагрузки.
Создание балансировщика осуществляется при помощи:
- Портала самообслуживания (подробнее — в Руководстве пользователя VK Private Cloud).
- OpenStack CLI.
Чтобы создать балансировщик при помощи OpenStack CLI:
-
Выполните подготовительные операции (подробнее — в разделе Вход для Администратора Платформы).
-
Запустите команды:
-
Для создания балансировщика:
# openstack loadbalancer create[--name <NAME>][--description <DESCRIPTION>][--vip-address <VIP_ADDRESS>][--vip-port-id <VIP_PORT>][--vip-subnet-id <VIP_SUBNET>][--vip-network-id <VIP_NETWORK>][--vip-qos-policy-id <VIP_QOS_POLICY>][--project <PROJECT>][--provider <PROVIDER>][--availability-zone <AVAILABILITY_ZONE>][--enable | --disable]Описание опций приведено в разделе Создание балансировщика нагрузки.
-
Для создания обработчика:
# openstack loadbalancer listener create[--name <NAME>][--description <DESCRIPTION>]--protocol <PROTOCOL>[--connection-limit <LIMIT>][--insert-headers <HEADER=VALUE> [, <HEADER_2=VALUE_2>, ...]]--protocol-port <PORT>[--timeout-client-data <TIMEOUT>][--timeout-member-connect <TIMEOUT>][--timeout-member-data <TIMEOUT>][--timeout-tcp-inspect <TIMEOUT>][--enable | --disable][--allowed-cidr <ALLOWED_CIDR>]<LOAD_BALANCER>Описание опций приведено в разделе Создание обработчика.
-
Для создания пула серверов балансировщика:
# openstack loadbalancer pool create[--name <NAME>][--description <DESCRIPTION>]--protocol <PROTOCOL>(--listener <LISTENER> | --loadbalancer <LOAD_BALANCER>)[--session-persistence <SESSION_PERSISTENCE>]--lb-algorithm <LB_ALGORITHM>[--enable | --disable][--tls-container-ref <CONTAINER_REF>][--ca-tls-container-ref <CA_TLS_CONTAINER_REF>][--crl-container-ref <CRL_CONTAINER_REF>][--enable-tls | --disable-tls]Описание опций приведено в разделе Создание пула серверов.
-
Для создания монитора проверки работоспособности:
# openstack loadbalancer healthmonitor create[--name <NAME>]--delay <DELAY>[--domain-name <DOMAIN_NAME>][--expected-codes <CODES>][--http-method {GET,POST,DELETE,PUT,HEAD,OPTIONS,PATCH,CONNECT,TRACE}][--http-version <HTTP_VERSION>]--timeout <TIMEOUT>--max-retries <MAX_RETRIES>[--url-path <URL_PATH>]--type <TYPE>[--max-retries-down <MAX_RETRIES_DOWN>][--enable | --disable]<POOL>Описание опций приведено в разделе Создание монитора.
-
В настоящий момент балансировщик поддерживает три основных метода:
LEAST_CONNECTIONS. Учитывает количество подключений, поддерживаемых серверами в текущий момент времени. Каждый следующий запрос передаётся серверу с наименьшим количеством активных подключений.ROUND_ROBIN. Представляет собой перебор по кругу: первый запрос передаётся первому серверу, затем следующий запрос передаётся второму и так до достижения последнего сервера, а затем всё начинается сначала.SOURCE_IP. В этом методе сервер, обрабатывающий запрос, выбирается произвольным образом и закрепляется (на сессию, в cookies) за конкретным источником запроса.