VK Cloud logo
Обновлена 31 октября 2023 г. в 06:09

Балансировщик нагрузки

Общие сведения

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

Балансировщик нагрузки VK Cloud построен на базе OpenStack Octavia, который в своей основе имеет HAProxy. OpenStack Octavia дает балансировщику следующие возможности:

  • Проксирование и балансировка HTTP-, HTTPS-, UDP- и TCP-соединений (последние — в том числе с поддержкой proxy-протокола).

    Proxy-протокол при использовании протокола TCP позволяет передать серверу информацию о соединениях (например, IP-адрес клиента). Чтобы сервер мог обрабатывать такую информацию, он сам должен поддерживать этот протокол. Proxy-протокол поддерживают NGINX, Apache, Envoy и другие продукты.

  • Проксирование и балансировка HTTP/2-соединений в дополнение к HTTP/1.1.

  • Терминирование SSL-соединений на балансировщике.

  • Тонкая настройка таймаутов (timeouts).

  • Различные методы балансировки.

  • Настройка весов для бэкендов.

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

Для обеспечения максимальной производительности балансировщика:

  • Обеспечьте подключение к бэкендам по протоколу HTTP/1.1 с поддержкой keep-alive.
  • Используйте стандартный Ethernet MTU 1500 байт для входящего на балансировщик трафика.

При выполнении этих условий балансировщик может демонстрировать пиковую производительность, обрабатывая от 1 до 1,5 гигабитов трафика в секунду и порядка 10000 запросов в секунду.

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

В VK Cloud существует два типа балансировщиков. Тип балансировщика можно посмотреть в личном кабинете.

Разные типы балансировщиков тарифицируются по разному.

Такой балансировщик создается пользователем и может использоваться для обеспечения отказоустойчивости и гибкого масштабирования приложений: