Перейти к содержанию

Повышение стабильности работы Ingress‑контроллера

Другие рекомендации

Ingress‑контроллер Вебмониторэкс разработан на базе официального Ingress‑контроллера NGINX для Kubernetes. Поэтому большинство рекомендаций для Ingress‑контроллера NGINX применяются и для Ingress‑контроллера Вебмониторэкс.

Рекомендуем для чтения по данной теме:

Рекомендации по настройке

Рекомендации по повышению стабильности работы Ingress‑контроллера ниже применяются к production-окружениям.

  • Используйте более одного pod'a Ingress‑контроллера. Настройка должна быть описана в атрибуте controller.replicaCount файла values.yaml. Например:

    controller:
      replicaCount: 2
    

  • Расположите pod'ы Ingress‑контроллеров на разных WAF‑нодах в кластере Kubernetes для увеличения стабильности Ingress в случае ошибки на стороне ноды. Настройка должна быть описана в атрибуте controller.affinity.podAntiAffinity файла values.yaml. Например:

    controller:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - nginx-ingress
            topologyKey: "kubernetes.io/hostname"
    

  • Используйте модуль горизонтального масштабирования Kubernetes (HPA) для кластеров, которые могут подвергаться скачкам трафика или другим событиям. Настройка должна быть описана в атрибуте controller.autoscaling файла values.yaml. Например:

    controller:
      autoscaling:
        enabled: true
        minReplicas: 1
        maxReplicas: 11
        targetCPUUtilizationPercentage: 50
        targetMemoryUtilizationPercentage: 50
    

  • Запустите как минимум 2 экземпляра модуля постаналитики Вебмониторэкс на основе базы данных Tarantool. Pod'ы для модулей в Kubernetes содержат в названии ingress-controller-wallarm-tarantool. Настройка должна быть описана в атрибуте controller.wallarm.tarantool.replicaCount файл values.yaml. Например:

    controller:
      wallarm:
        tarantool:
          replicaCount: 2
    

Способ настройки

Чтобы задать перечисленные настройки, необходимо использовать опцию --set команды helm install (при установке Ingress‑контроллера) или helm upgrade (при изменении параметров установленного Ingress‑контроллера). Например:

helm install --set controller.replicaCount=2 <INGRESS_CONTROLLER_NAME> wallarm/wallarm-ingress -n <KUBERNETES_NAMESPACE>

Для корректной установки Ingress‑контроллера, в опции --set также необходимо передать другие параметры Helm‑чарта

helm upgrade --reuse-values --set controller.replicaCount=2 <INGRESS_CONTROLLER_NAME> wallarm/wallarm-ingress -n <KUBERNETES_NAMESPACE>