HAProxy Ingress#
HAProxy Ingress — это Ingress-контроллер, реализованный на базе программного балансировщика нагрузки HAProxy. Инструмент функционирует на уровнях L4 и L7 модели OSI. Он обеспечивает маршрутизацию внешнего трафика, терминацию SSL/TLS-соединений и балансировку нагрузки между сервисами внутри кластера.
Основные задачи и возможности
Организация единой точки входа: Консолидация ingress-трафика кластера на ограниченном пуле внешних IP-адресов или NodePort.
Обеспечение отказоустойчивости (HA): Обнаружение недоступных pod и автоматическое исключение их из пула балансировки.
Защита периметра: Ограничение интенсивности запросов и защита бэкенд-сервисов от перегрузки.
Оптимизация ресурсов: Снижение вычислительной нагрузки на целевые приложения за счет выноса задач шифрования и авторизации на уровень Ingress.
Маршрутизация L7: Распределение входящих запросов на основе доменных имен и путей.
Управление SSL/TLS: Терминация шифрования на стороне контроллера, поддержка SNI, интеграция с Cert-manager и динамическое обновление сертификатов.
Расширенная балансировка: Поддержка различных алгоритмов распределения трафика и механизмов сохранения сессий.
Нативная телеметрия: Экспорт детальных метрик производительности в формате Prometheus и поддержка логирования в формате Syslog.
Примечание
Инструмент HAProxy Ingress является частью Ingress-controller и устанавливается по умолчанию в процессе установки всего кластера DropApp.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем haproxy-ingress и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
podSecurityPolicy – политика безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем создаваемым ресурсам. |
|
|
Включение политики безопасности pod |
|
rbac – настройки RBAC (управление доступом на основе ролей)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация автоматического создания ресурсов RBAC |
|
namespace – пространство имен для установки ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение создания пространства имен |
|
serviceAccount – настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение создания |
|
|
Имя |
|
aws – интеграция с AWS#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
controller – настройки контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя контроллера |
|
|
Имя репозитория Docker-образа контроллера |
|
|
Тег Docker-образа контроллера |
|
|
Политика загрузки образа |
|
|
Тип развертывания: |
|
|
количество реплик |
|
|
минимальное время готовности pod |
|
|
Включение запуска контейнера от имени пользователя без административных полномочий |
|
|
Включение привязки к привилегированным портам от имени пользователя без административных полномочий; устанавливает sysctl |
|
|
Включение ограничения системных вызовов контейнера через профиль |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
init-контейнеры для pod. |
|
|
Параметры |
|
|
тайм-аут корректного завершения работы pod |
|
|
Адрес приватного реестра образов |
|
|
Имя пользователя приватного реестра |
|
|
Пароль приватного реестра |
|
|
Secret для загрузки образов |
|
|
Порт контейнера для HTTP-трафика |
|
|
Порт контейнера для HTTPS-трафика |
|
|
Порт контейнера для статистики и метрик |
|
|
Порт контейнера для административных эндпоинтов |
|
|
Включение эндпоинта метрик Prometheus |
|
|
Включение |
|
|
Порт, объявляемый клиентам в заголовках |
|
|
Путь HTTP-проверки работоспособности |
|
|
Порт HTTP-проверки работоспособности |
|
|
Схема HTTP-проверки работоспособности |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Тайм-аут проверки работоспособности в секундах |
|
|
Количество успешных попыток для подтверждения работоспособности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Путь HTTP-проверки готовности |
|
|
Порт HTTP-проверки готовности |
|
|
Схема HTTP-проверки готовности |
|
|
Задержка в секундах перед первой проверкой готовности |
|
|
Интервал в секундах между проверками готовности |
|
|
Тайм-аут проверки готовности в секундах |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Путь HTTP-проверки запуска |
|
|
Порт HTTP-проверки запуска |
|
|
Схема HTTP-проверки запуска |
|
|
Задержка в секундах перед первой стартовой проверкой |
|
|
Интервал в секундах между проверками запуска |
|
|
Тайм-аут проверки запуска в секундах |
|
|
Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен» |
|
|
Количество неудачных попыток проверки запуска |
|
|
Имя ресурса |
|
|
Установка |
|
|
Параметры ресурса |
|
|
Класс ingress для выбора ingress-ресурсов в средах с несколькими контроллерами |
|
|
Включение контроллера Gateway API |
|
|
Имя контроллера Gateway API |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым pod |
|
|
Аннотации, добавляемые ко всем создаваемым pod |
|
|
Включение переменных окружения для обнаружения сервисов |
|
|
Включение секретa TLS по умолчанию; при пустом значении |
|
|
Пространство имен секрета TLS по умолчанию |
|
|
Имя |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
|
Включение горизонтального автомасштабирования |
|
|
Минимальное количество реплик при автоматическом масштабировании |
|
|
Максимальное количество реплик при автоматическом масштабировании |
|
|
Целевой процент использования CPU для масштабирования |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам. |
|
|
Включение автомасштабирования на основе событий Kubernetes через KEDA 2.x; взаимно исключает HPA |
|
|
Минимальное количество реплик при автоматическом масштабировании |
|
|
Максимальное количество реплик при автоматическом масштабировании |
|
|
Интервал опроса в секундах |
|
|
Период охлаждения в секундах |
|
|
Восстановление исходного количества реплик после масштабирования |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Настройки |
|
|
Триггеры масштабирования KEDA. |
|
|
ограничение одновременной недоступности pod |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Настройки правила привязки ( |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам. |
|
|
Пользовательская конфигурация DNS для pod |
|
|
Политика разрешения DNS для pod; установите |
|
|
Дополнительные аргументы командной строки для контроллера. |
|
|
Пользовательская конфигурация контроллера HAProxy. |
|
|
Аннотации для пользовательской |
|
|
Вспомогательная конфигурация HAProxy; создает dedicated |
|
|
Уровень логирования контроллера |
|
|
Настройки логов трафика HAProxy. |
|
|
Отображение адресов эндпоинтов сервиса в статусе всех ingress-объектов |
|
|
Переопределение пути к публикуемому сервису в формате |
|
|
Активация создания |
|
|
Тип |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Порт узла для проверки состояния |
|
|
NodePort-порты для http, https и stat. |
|
|
Порт service для HTTP-трафика |
|
|
Порт service для HTTPS-трафика |
|
|
Порт service для статистики |
|
|
Порт service для административных эндпоинтов |
|
|
Включение порта http |
|
|
Включение порта https |
|
|
Включение порта quic (HTTP/3) |
|
|
Включение порта |
|
|
Включение порта |
|
|
Целевой порт для http |
|
|
Целевой порт для https |
|
|
Целевой порт для quic |
|
|
Целевой порт для |
|
|
Целевой порт для |
|
|
Дополнительные tcp-порты для экспорта. |
|
|
Внешние IP-адреса service |
|
|
IP-адрес балансировщика нагрузки |
|
|
IP-диапазоны источников, разрешенных для доступа к балансировщику нагрузки |
|
|
Класс реализации балансировщика нагрузки |
|
|
Тип |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Использование сетевой модели хоста для |
|
|
Использование портов хоста для |
|
|
IP-адрес хоста для привязки портов |
|
|
Порт хоста для HTTP в |
|
|
Порт хоста для HTTPS в |
|
|
Порт хоста для статистики в |
|
|
Использование сетевой модели хоста для |
|
|
Использование портов хоста для |
|
|
IP-адрес хоста для привязки портов |
|
|
Порт хоста для HTTP в |
|
|
Порт хоста для HTTPS в |
|
|
Порт хоста для статистики в |
|
|
Тип стратегии обновления |
|
|
имя класса приоритета pod |
|
|
класс среды выполнения |
|
|
хуки жизненного цикла контейнера. |
|
|
переменные окружения контейнера. |
|
|
Источники переменных окружения ( |
|
|
Дополнительные контейнеры в pod контроллера. |
|
|
Список дополнительных точек монтирования томов ( |
|
|
Дополнительные тома ( |
|
|
Активация создания |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Эндпоинты |
|
|
Включение |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Эндпоинты |
|
|
Режим синхронизации контроллера с Kubernetes: |
|
|
Источник данных для периодического запроса: |
|
|
Количество реплик прокси (обязательно при источнике |
|
|
Селектор меток service прокси (обязательно при источнике |
|
crdjob – настройки CRD job#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем создаваемым pod. |
|
|
Время жизни завершенной |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Настройки правила привязки ( |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
extraObjects – дополнительные объекты Helm-чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Добавление дополнительных динамических объектов в Helm-чарте. |
|