Балансировщик нагрузки Envoy
Общие сведения¶
📌 Envoy Proxy — это высокопроизводительный, открытый (open-source) прокси и балансировщик, созданный для работы в современных облачных и микросервисных архитектурах. Он широко применяется в облачных платформах, микросервисной архитектуре и сервисных mesh-сетях, таких как Istio.
Envoy работает на уровне L3/L4 и L7, обеспечивая маршрутизацию TCP и HTTP-трафика, балансировку нагрузки, безопасность, наблюдаемость и полную контролируемость сетевого взаимодействия между сервисами.
⚙️ Основные возможности Envoy:
-
Поддержка L4/L7 балансировки
- Управление TCP, HTTP и HTTPS трафиком.
- Гибкие сценарии маршрутизации, включая SNI, заголовки, куки, URI, модули фильтрации.
- gRPC-проксирование, поддержка WebSocket, HTTP/2, HTTP/3.
-
Горячая перезагрузка конфигурации
- Поддержка динамической перезагрузки конфигурации без прерывания соединений.
- Интеграция с xDS API для работы в динамической среде (например, Kubernetes).
-
Безопасность и TLS
- Поддержка TLS termination, mTLS, SNI-routing, SSL-сертификатов, в том числе самоподписанных.
- Аудит, шифрование соединений, поддержка пользовательских CA.
-
Обширная телеметрия и наблюдаемость
- Встроенные метрики Prometheus, логирование, access logs.
- Интеграция с Jaeger, Zipkin, Datadog, OpenTelemetry.
- Статистика соединений, latency, ошибок и многое другое.
-
Расширяемость
- Конфигурация через custom YAML-файлы или UI-форму.
- Возможность подключения фильтров, плагинов, использования Lua-скриптов.
- Поддержка API-based конфигурации (ADS, SDS, RDS, LDS).
✅ Когда использовать балансировщик нагрузки Envoy:
- Вы строите микросервисную архитектуру и нуждаетесь в надёжной маршрутизации между сервисами.
- Нужно использовать современные протоколы (gRPC, HTTP/2, HTTP/3, WebSockets).
- Требуется тонкая маршрутизация по заголовкам, доменам, путям и другим критериям.
- Вы хотите обеспечить централизованную TLS-терминацию, отказоустойчивость и безопасность.
- Необходима глубокая телеметрия и трассировка трафика без потери производительности.
- Требуется горячее обновление конфигурации без перезапуска сервиса.
- Вы хотите максимальную гибкость конфигурации — как через UI, так и через YAML.
Заказ сервиса Балансировщик нагрузки Envoy¶
-
Выбор сервиса На пользовательском портале Nimbus откройте в боковом меню Каталог Сервисов и выберите «Балансировщик нагрузки Envoy».
-
Заполнение вкладки «Build a VM»
Блок полей Place VM to:- Environment — выберите окружение (например, VMWare).
- Location — выберите географическую локацию.
- Ресурсный пул — выберите нужный ресурсный пул для размещения ВМ.
Блок полей VM Configuration:
- Template — шаблон ОС для виртуальной машины.
- CPU — конфигурация CPU (формат: cores x sockets).
- Memory (GB) — объем оперативной памяти.
- Объем базовых дисков (ГБ) — подтягивается автоматически из шаблона.
- Тип основных дисков — опционально.
- Network — выберите сетевое подключение.
Блок полей Наименование сервиса:
- Имя сервиса — обязательное поле, латиница и цифры, без пробелов.
- Описание сервиса — опционально.
Нажмите «Продолжить» или перейдите на следующую вкладку.
3. Заполнение вкладки «Дополнительные опции»
- Префикс имени ВМ — до 15 символов (латиница, цифры, дефис). Если не заполнено, имя будет присвоено автоматически.
- Описание ВМ — необязательно.
- Дополнительный диск (ГБ) — при необходимости.
- Тип дополнительного диска — при необходимости.
4. Заполнение вкладки «Envoy Settings»
- Configuration — способ настройки:
Form
— ввод параметров через форму.Custom
— ручной ввод полной конфигурации.
Если выбран
Custom
, все поля на вкладке, кроме Envoy Config, становятся недоступны. Введите вручную конфигурацию HAProxy.Если выбран
Form
, поле Envoy Config становится недоступным.
Если выбран Form
, то нужно заполнить:
- Service name — название внутреннего сервиса.
- Port — порт, на котором будет слушать HAProxy.
- Balanced Servers IP — список IP-адресов backend-серверов через запятую.
- Envoy Statistic —
Enable
для активации статистики илиDisable
. - Envoy Config — будет неактивно при выборе Form.
5. Заполнение вкладки «SSL Settings»
-
HTTPS enable — включить поддержку HTTPS:
- Если
disabled
, все поля вкладки становятся недоступными. - Если
enabled
, необходимо задать параметры ниже.
- Если
-
SSL selfsigned — использование самоподписанного сертификата:
- Если
enabled
, необходимо заполнить:- Country Name
- State or province name
- Locality Name
- Organization Name
- Organizational unit Name
- Email address
- Common Name (например, FQDN сервиса)
- subjectAltName (например, www.ansible.com)
- Поля SSL Key и SSL Cert будут недоступны.
- Если
-
Если
disabled
, нужно заполнить:- SSL Key — приватный ключ.
- SSL Cert — публичный сертификат.
- Остальные поля станут недоступными.
6. Завершение заказа
Нажмите «Добавить в корзину». Сервис появится в вашей корзине в правом верхнем углу. Продолжайте оформление по стандартной процедуре.