Модуль управления внешними подключениями (shturval-ingress-controller)
О сервисе
| Параметр | Значение |
|---|---|
| Название в интерфейсе | Модуль управления внешними подключениями |
| Системное название (идентификатор) | shturval-ingress-controller |
| Назначение в кластере | Маршрутизация внешнего трафика в сервисы кластера по HTTP/HTTPS; Ingress-контроллер. |
| Критический | Да |
| Публичный репозиторий | Ingress NGinx Controller |
| Зависимости | shturval-networking, shturval-cert-manager-crds |
| Неймспейс | ingress |
Назначение
shturval-ingress-controller — модуль управления внешними подключениями на базе Ingress NGinx. Обеспечивает доступ к приложениям в кластере по доменным именам и путям, поддержку TLS (в т. ч. через cert-manager).
Развёртывание и управление
shturval-ingress-controller — критический сервис платформы. В платформе «Штурвал» его включение и жизненный цикл в кластере обеспечивает cluster-manager (сервис платформы); объект ShturvalServiceConfig (SSC) для чарта shturval-ingress-controller создаётся и сопровождается как часть платформенной конфигурации, а не как произвольная ручная установка Helm-чарта администратором. Для корректной работы должны быть развёрнуты зависимости из таблицы выше: shturval-networking и CRD shturval-cert-manager.
Рекомендация: не правьте ShturvalServiceConfig вручную для смены параметров релиза — такой объект относится к платформенной конфигурации и может быть перезаписан при обновлениях. Кастомизация (hostPort для HA, NodePort, общий домен для TLS, proxy protocol и др.) выполняется через ShturvalServicePatch (SSP) для shturval-ingress-controller.
В клиентском кластере он устанавливается включенным (в режиме auto), если на шаге выбора сервисов был выбран NGINX Ingress Controller. Если обработка входящего трафика через Gateway API, сервис устанавливается выключенным (в режиме absent): внешний трафик принимает Gateway API. В кластере управления по умолчанию используется Gateway API.
Если при развёртывании платформы сервис был отключён, SSC мог получить режим отсутствия (mode: absent); для включения переведите режим в auto. Если модуля нет в списке Установленные сервисы, проверьте политику развёртывания и состояние SSC по документации по настройке кластера; самостоятельная установка чарта из каталога не является типовым сценарием.
Ниже в разделе Где настраивать — переход к управлению уже развёрнутым сервисом в интерфейсе; примеры патчей — в следующих разделах страницы.
Где настраивать
Сервисы и репозитории → Установленные сервисы → найдите Модуль управления внешними подключениями (shturval-ingress-controller) → Управлять.
Кастомизация (hostPort для HA, NodePort, общий домен для TLS, proxy protocol) выполняется через ShturvalServicePatch для shturval-ingress-controller. Подробнее — Ingress. Официальная документация: NGINX Ingress Controller.
Если нужно увеличить допустимый размер HTTP-заголовков для входа пользователя в GUI, см. Восстановить вход в графический интерфейс.
Замена VIP Ingress на внешний балансировщик
Если при добавлении кластера был указан внутренний виртуальный IP и нужно заменить его внешним балансировщиком (например, HAProxy):
- Подготовьте ShturvalServicePatch для
shturval-ingress-controllerс включением hostPort и/или NodePort. - Загрузите патч в кластер через Импорт манифестов (или kubectl).
Пример ShturvalServicePatch для внешнего балансировщика
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-ingress-controller
customvalues:
controller:
hostPort:
enabled: true # При включении поды ингресс контроллера так же будут использовать на узлах кластера 80 и 443 порты
service:
nodePorts:
http: "<ваше значение параметра>"
https: "<ваше значение параметра>"
type: NodePort
shturval:
commonName: <ваше значение параметра>
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name | Имя ShturvalServicePatch | string | shturval-ingress-controller-lb |
commonName | Wildcard домен. Должно быть указано значение, которое прописано в спецификации сервиса до внесения изменений | string | clustername.ip-11-12-13-14.shturval.link |
nodePorts.http | Порт для подключения по HTTP | int | 30080 |
nodePorts.https | Порт для подключения по HTTPS | int | 30443 |
Когда ShturvalServicePatch будет загружен, потребуется некоторое время для применения конфигурации. После, узлы будут готовы принимать ингресс трафик на указанные порты (например, 30080 и 30443).
Скриншот ShturvalServicePatch для внешнего балансировщика

Включение Proxy Protocol
Для передачи реального IP клиента через внешний балансировщик можно включить proxy protocol в конфигурации Ingress Controller через ShturvalServicePatch:
Пример ShturvalServicePatch для proxy protocol
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-ingress-controller-proxy
spec:
shturvalServiceConfigName: shturval-ingress-controller
customvalues:
controller:
config:
use-proxy-protocol: true
Дополнительные параметры конфигурации — в официальной документации Ingress NGinx.
Скриншот ShturvalServicePatch для Proxy Protocol

Конфигурирование worker-processes
По умолчанию для Ingress Controller заданы ограничения на количество рабочих процессов NGINX и на лимиты ресурсов:
controller:
config:
worker-processes: 4
resources:
limits:
memory: 400Mi
requests:
cpu: 200m
memory: 300Mi
Для переопределения значений примените ShturvalServicePatch:
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-ingress-controller-workers
spec:
shturvalServiceConfigName: shturval-ingress-controller
customvalues:
controller:
config:
worker-processes: <ваше значение>
resources:
limits:
memory: <ваше значение>
requests:
cpu: <ваше значение>
memory: <ваше значение>
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
worker-processes | Количество рабочих процессов NGINX | int | 6 |
limits.memory | Ограничение памяти | string | 800Mi |
requests.cpu | Запрос CPU | string | 400m |
requests.memory | Запрос памяти | string | 600Mi |
Скриншот ShturvalServicePatch для worker-processes и ресурсов

Настройка буфера для HTTP-заголовков
По умолчанию в платформе «Штурвал» для Ingress Controller задано ограничение размера HTTP-заголовков 2 16k (два буфера по 16 КБ). Если пользователь с токеном большего размера не может войти в графический интерфейс, увеличьте значение large-client-header-buffers через ShturvalServicePatch:
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-ingress-controller-large-headers
spec:
shturvalServiceConfigName: shturval-ingress-controller
customvalues:
controller:
config:
large-client-header-buffers: <ваше значение>
| Параметр | Описание | Тип | Пример |
|---|---|---|---|
large-client-header-buffers | Количество и размер буферов для чтения HTTP-заголовков | string | 2 128k |
Включение snippet-аннотаций
Для работы snippet-аннотаций в ресурсах Ingress необходимо применить ShturvalServicePatch, разрешающий использование snippet-аннотаций и задающий уровень риска:
ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: ingress-controller-snippet
spec:
shturvalServiceConfigName: shturval-ingress-controller
customvalues:
controller:
allowSnippetAnnotations: true
config:
annotations-risk-level: Critical