Модуль управления внешними подключениями (NGinx)

В этом разделе можно настроить маршрутизацию внешних подключений к кластеру (Ingress Controller). Он обеспечивает управление и маршрутизацию входящего трафика извне к различным сервисам и приложениям, развернутым в контейнерах.

Для настройки Ingress Controller в интерфейсе кластера платформы “Штурвал” перейдите на страницу Установленные сервисы раздела Сервисы и репозитории.

Если модуль не отображается, перейдите в доступные чарты, на вкладке “shturval” найдите чарт “shturval-ingress-controller” и нажмите “Установить”.

С дополнительной информацией можно ознакомиться на официальном сайте.

Как заменить VIP Ingress на внешний балансировщик

Если при добавлении кластера вы указали внутренний виртуальный IP-адрес и возникла необходимость заменить его внешним балансировщиком, необходимо:

  1. Подготовить 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
  1. В кластер загрузить с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

ingress_lbpatch

Когда ShturvalServicePatch будет загружен, потребуется некоторое время для применения конфигурации. После, узлы будут готовы принимать ингресс трафик на указанные порты (например, 30080 и 30443).

Пример настройки внешнего балансировщика (HAProxy) при инсталляции кластера здесь.

Как включить proxy протокол

Все параметры из официальной документации, в том числе и proxy протокол. Чтобы установить proxy протокол для Ingress Controller в платформе “Штурвал”:

  1. Подготовьте 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
  1. В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

ingress_proxypatch

После загрузки 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. Для этого:

  1. Подготовьте 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
  1. В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

ingress_processespatch

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.

Как включить snippet-аннотации

Для работы сконфигурированных snippet-аннотаций в Ingress:

  1. Подготовьте 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
  1. В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.

После загрузки ShturvalServicePatch потребуется некоторое время для применения изменений.

×