Ingress-nginx#
Ingress-nginx — контроллер Ingress, построенный на базе веб-сервера Nginx. Предназначен для управления входящим HTTP(S)-трафиком и его маршрутизации к целевым сервисам внутри кластера. Реализует ресурс Ingress Kubernetes API, предоставляя возможности балансировки нагрузки, терминации TLS, гибкой маршрутизации и ограничения трафика.
Основные задачи и возможности
Маршрутизация трафика: Позволяет направлять запросы по доменам (
host) и путям URL (path) на разные сервисы.Поддержка HTTPS (TLS-терминация): Обрабатывает зашифрованный трафик, используя сертификаты из Kubernetes Secret. Поддерживает автоматическую переадресацию с HTTP на HTTPS.
Балансировка нагрузки: Распределяет трафик между pod сервисов с возможностью выбора алгоритма балансировки.
Гибкая конфигурация через аннотации: Позволяет настраивать параметры NGINX (время ожидания, переписывание путей, заголовки и т.д.) прямо в манифестах
Ingress.Интеграция с Cert-manager: Автоматически работает с Cert-manager для получения и обновления TLS-сертификатов (например, Let’s Encrypt).
Работа с внешними IP-адресами: Может использоваться вместе с MetalLB в локальных кластерах для выделения внешних IP.
Поддержка современных протоколов: Включает поддержку HTTP/2, WebSocket, gRPC и других.
Примечание
Инструмент Ingress-nginx является частью Ingress-controller и устанавливается по умолчанию в процессе установки всего кластера DropApp.
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем ingress-nginx и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
namespaceOverride - переопределение пространства имен для ресурсов
defaultBackend - настройки бэкенда по умолчанию для ответов 404
namespaceOverride - переопределение пространства имен для ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен для развертывания. По умолчанию используется значение |
|
commonLabels - общие метки для всех ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Общие метки для всех создаваемых ресурсов |
|
controller - настройки контроллера Ingress-nginx#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя компонента контроллера |
|
|
Включение валидации аннотаций |
|
|
Использование образа с окружением |
|
|
Реестр образов |
|
|
Имя образа контроллера |
|
|
Полный путь к репозиторию образа |
|
|
Тег контейнерного образа Ingress-nginx |
|
|
Дайджест образа |
|
|
Дайджест образа для |
|
|
Политика загрузки образа. |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
UID пользователя для запуска |
|
|
GID группы контейнера |
|
|
Разрешение на эскалацию привилегий |
|
|
Тип профиля Seccomp |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Имя контейнера контроллера |
|
|
HTTP-порт, на котором контроллер ожидает соединения |
|
|
HTTPS-порт, на котором контроллер ожидает соединения |
|
|
Глобальная конфигурация, передаваемая в |
|
|
Аннотации для |
|
|
Пользовательские заголовки, добавляемые перед отправкой трафика на бэкенды |
|
|
Пользовательские заголовки, добавляемые в ответ перед отправкой клиенту |
|
|
Конфигурация DNS для pod |
|
|
Псевдонимы хостов в pod. |
|
|
Пользовательское имя хоста для pod |
|
|
Политика разрешения DNS. |
|
|
Имя |
|
|
Использование внутреннего IP-адреса узла при обновлении статуса (актуально для |
|
|
Обработка Ingress-объектов без указанной аннотации |
|
|
Обработка |
|
|
Включение топологически-осведомленной маршрутизации (совместно с аннотацией |
|
|
Отключение механизма выбора лидера ( |
|
|
Время удержания лидерства (TTL), например |
|
|
Разрешение использования аннотаций с конфигурационными сниппетами ( |
|
|
Использование сетевого стека хоста ( |
|
|
Включение проброса портов хоста |
|
|
HTTP-порт хоста |
|
|
HTTPS-порт хоста |
|
|
Включение создания |
|
|
Идентификатор для механизма выбора лидера при обновлении статуса. По умолчанию используется имя контроллера с суффиксом |
|
|
Имя ресурса |
|
|
Создание ресурса |
|
|
Назначение данного |
|
|
Аннотации для ресурса |
|
|
Значение контроллера для |
|
|
Список псевдонимов ресурса |
|
|
Ссылка на пользовательский ресурс с дополнительными параметрами контроллера. |
|
|
Класс Ingress для обеспечения обратной совместимости с устаревшей аннотацией |
|
|
Метки для pod контроллера |
|
|
GID группы pod |
|
|
Запуск pod от имени пользователя без административных полномочий |
|
|
UID пользователя для запуска |
|
|
Системные параметры ядра ( |
|
|
Разрешение на эскалацию привилегий контейнера |
|
|
Список |
|
|
Список добавляемых мандатов ( |
|
|
Монтирование корневой файловой системы контейнера в режиме «только для чтения» |
|
|
Запуск контейнера от имени пользователя без административных полномочий |
|
|
UID пользователя внутри контейнера |
|
|
Тип профиля Seccomp |
|
|
Публикация адреса |
|
|
Переопределение пути к |
|
|
Ограничение области действия контроллера конкретным пространством имен |
|
|
Пространство имен, в котором ограничивается работа контроллера. По умолчанию: |
|
|
Селектор пространства имен по меткам (применяется при |
|
|
Пространство имен для |
|
|
Пространство имен для |
|
|
Аннотации для |
|
|
Пространство имен для |
|
|
Аннотации для |
|
|
Лицензионный ключ |
|
|
Дополнительные аргументы командной строки |
|
|
Дополнительные переменные окружения. |
|
|
Тип ресурса для развертывания контроллера. |
|
|
Аннотации для ресурса |
|
|
Метки для ресурсов контроллера и связанных объектов (при отсутствии отдельных настроек меток). |
|
|
Стратегия обновления ресурса |
|
|
Время ожидания прогресса |
|
|
Минимальное время, в течение которого pod должен находиться в состоянии готовности, прежде чем будет считаться доступным |
|
|
|
|
|
Настройки правил привязки pod к узлам. |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам. |
|
|
Время, отводимое на корректное завершение работы pod (включая дренирование активных соединений, до |
|
|
Селектор узлов для размещения pod контроллера |
|
|
HTTP-путь для проверки работоспособности |
|
|
Порт для проверки работоспособности |
|
|
Схема протокола для проверки работоспособности |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Тайм-аут ожидания ответа при проверке работоспособности |
|
|
Количество успешных попыток для подтверждения работоспособности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
HTTP-путь для проверки готовности |
|
|
Порт для проверки готовности |
|
|
Схема протокола для проверки готовности |
|
|
Задержка в секундах перед первой проверкой готовности |
|
|
Интервал в секундах между проверками готовности |
|
|
Тайм-аут ожидания ответа при проверке готовности |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Количество неудачных попыток до перевода контроллера в статус |
|
|
Путь эндпоинта для проверки состояния |
|
|
Адрес привязки эндпоинта для проверки состояния. Рекомендуется указывать внутренний IP-адрес узла при использовании |
|
|
Аннотации для pod контроллера |
|
|
Количество реплик контроллера |
|
|
Минимальное количество доступных pod, гарантируемое |
|
|
Политика высвобождения ( |
|
|
Запрашиваемые ресурсы CPU контроллера |
|
|
Запрашиваемые ресурсы памяти контроллера |
|
|
Включение горизонтального автомасштабирования (HPA) |
|
|
Аннотации для ресурса HPA |
|
|
Минимальное количество реплик |
|
|
Максимальное количество реплик |
|
|
Целевой уровень утилизации CPU |
|
|
Целевой уровень утилизации памяти |
|
|
Поведение масштабирования HPA (параметры стабилизации и политики). |
|
|
Шаблоны пользовательских метрик для автомасштабирования. |
|
|
Версия API KEDA |
|
|
Включение автомасштабирования на базе KEDA |
|
|
Минимальное количество реплик при использовании KEDA |
|
|
Максимальное количество реплик при использовании KEDA |
|
|
Интервал опроса метрик KEDA |
|
|
Период охлаждения перед масштабированием |
|
|
Восстановление исходного количества реплик после отключения KEDA |
|
|
Аннотации для ресурса |
|
|
Триггеры масштабирования KEDA. |
|
|
Поведение масштабирования KEDA. |
|
|
Использование альтернативного аллокатора памяти |
|
|
Имя |
|
|
Ключ в |
|
|
Создание основного |
|
|
Создание внешнего |
|
|
Метки для внешнего |
|
|
Аннотации для внешнего |
|
|
Метки, применяемые к обоим |
|
|
Тип внешнего |
|
|
Статический |
|
|
Список статических |
|
|
Список внешних IP-адресов, ассоциированных с внешним |
|
|
Устаревший параметр для задания статического IP-адреса внешнего балансировщика нагрузки |
|
|
Список CIDR-диапазонов, которым разрешен доступ к внешнему |
|
|
Класс балансировщика нагрузки для внешнего |
|
|
Политика обработки внешнего трафика. Значение |
|
|
Режим сессионной привязки ( |
|
|
Политика распределения трафика внешнего |
|
|
Политика IP-семейств для внешнего |
|
|
Список поддерживаемых IP-семейств для внешнего |
|
|
Включение HTTP-порта в |
|
|
Включение HTTPS-порта в |
|
|
Номер порта, который |
|
|
Номер порта, который |
|
|
Порт контейнера, на который |
|
|
Порт контейнера, на который |
|
|
Указание |
|
|
|
|
|
|
|
|
Сопоставление TCP-портов |
|
|
Сопоставление UDP-портов |
|
|
Создание внутреннего |
|
|
Метки для внутреннего |
|
|
Аннотации для внутреннего |
|
|
Тип внутреннего |
|
|
Статический |
|
|
Статический |
|
|
Список внешних IP-адресов внутреннего |
|
|
Устаревший параметр для задания статического IP-адреса внутреннего балансировщика нагрузки |
|
|
Список CIDR-диапазонов, которым разрешен доступ к внутреннему |
|
|
Класс балансировщика нагрузки для внутреннего |
|
|
Политика обработки внешнего трафика для внутреннего |
|
|
Режим сессионной привязки внутреннего |
|
|
Политика распределения трафика внутреннего |
|
|
Политика IP-семейств для внутреннего |
|
|
Список поддерживаемых IP-семейств для внутреннего |
|
|
Порты публикации внутреннего |
|
|
Целевые порты контейнеров для внутреннего |
|
|
Указание |
|
|
|
|
|
|
|
|
Сопоставление TCP-портов |
|
|
Сопоставление UDP-портов |
|
|
Включение общего пространства имен процессов между контейнерами pod. Позволяет контейнерам видеть процессы друг друга и взаимодействовать через сигналы (например, с sidecar-контейнерами). |
|
|
Дополнительные контейнеры, добавляемые в pod контроллера. |
|
|
Дополнительные |
|
|
Дополнительные |
|
|
Init-контейнеры, запускаемые до основных контейнеров. |
|
|
Дополнительные динамические модули, монтируемые в базовый образ Nginx. |
|
|
Имя компонента для «мутирующего» и валидирующего вебхуков |
|
|
Аннотации для «мутирующего» и валидирующего вебхуков и связанных с ним ресурсов |
|
|
Включение «мутирующего» и валидирующего вебхуков |
|
|
Дополнительные переменные окружения для «мутирующего» и валидирующего вебхуков. |
|
|
Политика обработки ошибок при вызове «мутирующего» и валидирующего вебхуков |
|
|
Порт, на котором работают «мутирующий» и валидирующий вебхуки |
|
|
Путь к файлу сертификата для «мутирующего» и валидирующего вебхуков внутри контейнера |
|
|
Путь к файлу приватного ключа для «мутирующего» и валидирующего вебхуков внутри контейнера |
|
|
Селектор пространства имен для применения правил |
|
|
Селектор объектов для применения правил |
|
|
Метки для ресурсов |
|
|
Аннотации для |
|
|
Список внешних IP-адресов |
|
|
Список CIDR-диапазонов, которым разрешен доступ к |
|
|
Порт |
|
|
Тип |
|
|
Имя pod |
|
|
Максимальное время выполнения pod |
|
|
Запуск pod |
|
|
UID пользователя pod |
|
|
GID группы pod |
|
|
Разрешение на эскалацию привилегий |
|
|
Тип профиля |
|
|
Список |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Запросы и лимиты ресурсов pod |
|
|
Имя pod |
|
|
Максимальное время работы pod |
|
|
Запуск pod |
|
|
UID пользователя для pod |
|
|
GID группы для pod |
|
|
Разрешение на эскалацию привилегий |
|
|
Тип профиля |
|
|
Список |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Запросы и лимиты ресурсов pod |
|
|
Включение pod |
|
|
Имя образа pod |
|
|
Тег образа pod |
|
|
Дайджест образа для pod |
|
|
Политика загрузки образа. |
|
|
|
|
|
|
|
|
Аннотации для pod |
|
|
Включение |
|
|
Селектор узлов по ОС для pod |
|
|
|
|
|
Метки pod |
|
|
Контекст безопасности для pod |
|
|
Создание RBAC для pod |
|
|
Включение автоматического создания |
|
|
Имя |
|
|
Автоматическое монтирование учетных данных API в |
|
|
Использование Cert-manager для автоматического выпуска сертификатов для «мутирующего» и валидирующего вебхуков |
|
|
Срок действия корневого самоподписанного сертификата |
|
|
Лимит истории ревизий для ресурса корневого сертификата |
|
|
Срок действия сертификата |
|
|
Лимит истории ревизий для ресурса сертификата |
|
|
Порт для экспорта метрик контроллера |
|
|
Имя порта для экспорта метрик |
|
|
Включение экспорта метрик контроллера |
|
|
Создание |
|
|
Аннотации |
|
|
Метки для |
|
|
Список внешних IP-адресов |
|
|
Список CIDR-диапазонов, которым разрешен доступ к |
|
|
Порт |
|
|
Тип |
|
|
Создание |
|
|
Дополнительные метки для |
|
|
Аннотации для |
|
|
Пространство имен для |
|
|
Селектор пространства имен для поиска целей |
|
|
Интервал опроса метрик |
|
|
Метки |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам |
|
|
Максимальное количество меток на одну выборку |
|
|
Максимальная длина имени метки на одну выборку |
|
|
Максимальная длина значения метки на одну выборку |
|
|
Максимальное число выборок за один цикл сбора ( |
|
|
Максимальное число целей за один цикл сбора ( |
|
|
Создание правил Prometheus с оповещениями для Ingress-nginx |
|
|
Дополнительные метки правил Prometheus |
|
|
Аннотации правил Prometheus |
|
|
Список правил правил Prometheus. |
|
|
Команда, выполняемая хуком |
|
|
|
|
revisionHistoryLimit - лимит хранимых ревизий Deployment#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Максимальное количество сохраняемых ревизий |
|
defaultBackend - настройки бэкенда по умолчанию для ответов 404#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение развертывания компонента |
|
|
Имя компонента |
|
|
Имя образа |
|
|
Тег образа |
|
|
Политика загрузки образа. |
|
|
Запуск контейнера |
|
|
UID пользователя внутри контейнера |
|
|
GID группы внутри контейнера |
|
|
Разрешение на эскалацию привилегий |
|
|
Тип профиля |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Дополнительные аргументы командной строки для |
|
|
Включение автоматического создания |
|
|
Имя |
|
|
Автоматическое монтирование учетных данных API в |
|
|
Дополнительные переменные окружения pod |
|
|
Порт контейнера |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Интервал между проверками работоспособности |
|
|
Количество успешных попыток для подтверждения работоспособности |
|
|
Тайм-аут ожидания ответа при проверке работоспособности |
|
|
Количество неудачных проверок готовности перед исключением контейнера из балансировки |
|
|
Начальная задержка перед первой проверкой готовности |
|
|
Интервал между проверками готовности |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Тайм-аут ожидания ответа при проверке готовности |
|
|
Стратегия обновления ресурса |
|
|
Минимальное время, в течение которого pod должен находиться в состоянии готовности, прежде чем будет считаться доступным |
|
|
|
|
|
Настройки правил привязки pod к узлам |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам. |
|
|
Контекст безопасности для pod |
|
|
Контекст безопасности для контейнера |
|
|
Метки для pod |
|
|
Селектор узлов по ОС для |
|
|
Аннотации для pod |
|
|
Количество реплик |
|
|
Минимальное количество доступных pod, гарантируемое |
|
|
Политика вытеснения неработоспособных pod, защищенных |
|
|
Запросы и лимиты ресурсов для контейнера |
|
|
Дополнительные |
|
|
Дополнительные |
|
|
Дополнительные ресурсы |
|
|
Аннотации для ресурса HPA |
|
|
Включение горизонтального автомасштабирования (HPA) для |
|
|
Минимальное количество реплик HPA при автомасштабировании |
|
|
Максимальное количество реплик HPA при автомасштабировании |
|
|
Целевой процент загрузки CPU для HPA |
|
|
Целевой процент использования памяти для HPA |
|
|
Включение создания |
|
|
Аннотации для |
|
|
Список статических |
|
|
Список внешних IP-адресов |
|
|
Список CIDR-диапазонов, которым разрешен доступ к |
|
|
Порт |
|
|
Тип |
|
|
|
|
|
|
|
|
Метки ресурсов |
|
rbac - настройки RBAC#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение автоматического создания ресурсов RBAC |
|
|
Ограничение области действия RBAC рамками пространства имен (вместо прав уровня кластера) |
|
serviceAccount - настройки сервисного аккаунта контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение автоматического создания |
|
|
Имя |
|
|
Автоматическое монтирование учетных данных API в |
|
|
Аннотации для |
|
imagePullSecrets - секреты для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
tcp - публикация TCP-сервисов через Ingress-nginx#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пары «ключ-значение» для публикации TCP-сервисов через Ingress-nginx |
|
udp - публикация UDP-сервисов через Ingress-nginx#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Пары «ключ-значение» для публикации UDP-сервисов через Ingress-nginx |
|
portNamePrefix - префикс имен портов TCP и UDP#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Префикс для имен TCP- и UDP-портов в |
|
dhParam - параметр Диффи — Хеллмана#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Base64-кодированная строка с параметром Диффи — Хеллмана для SSL/TLS |
|