Повышение стабильности работы 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>