Модуль управления внешними подключениями (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.
Если при развёртывании платформы сервис был отключён, 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