Модуль управления внешними подключениями (NGinx)
В этом разделе можно настроить маршрутизацию внешних подключений к кластеру (Ingress Controller). Он обеспечивает управление и маршрутизацию входящего трафика извне к различным сервисам и приложениям, развернутым в контейнерах.
Для настройки Ingress Controller в интерфейсе кластера платформы “Штурвал” перейдите на страницу Установленные сервисы раздела Сервисы и репозитории.
Если модуль не отображается, перейдите в доступные чарты, на вкладке “shturval” найдите чарт “shturval-ingress-controller” и нажмите “Установить”.
С дополнительной информацией можно ознакомиться на официальном сайте.
Как заменить VIP Ingress на внешний балансировщик
Если при добавлении кластера вы указали внутренний виртуальный IP-адрес и возникла необходимость заменить его внешним балансировщиком, необходимо:
- Подготовить ShturvalServicePatch для применения к спецификации (ssc) Модуля управления внешними подключениями (
shturval-ingress-controller).
Пример 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.
Скриншот

Когда ShturvalServicePatch будет загружен, потребуется некоторое время для применения конфигурации. После, узлы будут готовы принимать ингресс трафик на указанные порты (например, 30080 и 30443).
Пример настройки внешнего балансировщика (HAProxy) при инсталляции кластера здесь.
Как включить proxy протокол
Все параметры из официальной документации, в том числе и proxy протокол. Чтобы установить proxy протокол для Ingress Controller в платформе “Штурвал”:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля управления внешними подключениями (
shturval-ingress-controller).
Пример ShturvalServicePatch
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
- В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
Конфигурирование worker-processes, CPU, Memory
По умолчанию в платформе “Штурвал” для Ingress Controller установлено ограничение на количество worker-processes и на лимиты, запросы ресурсов (CPU, Memory).
Дефолтные значения
controller:
config:
worker-processes: 4
resources:
limits:
memory: 400Mi
requests:
cpu: 200m
memory: 300Mi
При необходимости вы можете переопределить дефолтные значения, заменив их в параметрах worker-processes, memory, cpu. Для этого:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля управления внешними подключениями (
shturval-ingress-controller).
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-ingress-controller-proxy
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.
Скриншот

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.
Как включить snippet-аннотации
Для работы сконфигурированных snippet-аннотаций в Ingress:
- Подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля управления внешними подключениями (
shturval-ingress-controller), где разрешите использование snippet-аннотаций (allowSnippetAnnotations) и установите уровень риска (Critical) аннотаций, которые могут быть применены (annotations-risk-level).
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
- В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.