Идентификация IP‑адреса клиента при перенаправлении трафика на Ingress-контроллер через балансировщик¶
Другие рекомендации
Ingress‑контроллер Вебмониторэкс разработан на базе официального Ingress‑контроллера NGINX для Kubernetes. Поэтому большинство рекомендаций для Ingress‑контроллера NGINX применяются и для Ingress‑контроллера Вебмониторэкс.
Рекомендуем для чтения по данной теме:
По умолчанию Ingress‑контроллер Вебмониторэкс предполагает, что pod'ы доступны из сети Интернет или других потенциально опасных ресурсов напрямую. При передаче запросов сервисам, Ingress‑контроллер автоматически добавляет HTTP‑заголовок X-Forwarded-For
с IP‑адресом клиента.
Если для направления внешнего трафика на Ingress‑контроллер используется балансировщик нагрузки (Google Network Load Balancer и т.д.), возможны способы корректной передачи IP‑адреса клиента ниже.
Настроить передачу реального IP‑адреса клиента на сетевом уровне¶
Способ настройки зависит от подключенного балансировщика, но в большинстве случаев необходимо передать значение Local
в параметре controller.service.externalTrafficPolicy
Helm‑чарта.
Параметр передается с помощью опции --set
команды helm install
(при установке Ingress‑контроллера) или helm upgrade
(при изменении параметров установленного Ingress‑контроллера). Например:
helm install --set controller.service.externalTrafficPolicy=Local <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
Для корректной установки Ingress‑контроллера, в опции --set
также необходимо передать другие параметры Helm‑чарта
helm upgrade --reuse-values --set controller.service.externalTrafficPolicy=Local <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
Настроить для Ingress‑контроллера получение значения из HTTP‑заголовка X-Forwarded-For¶
Данный вариант применяется при использовании внешних CDN-сервисов, например Cloudflare или Fastly. Для настройки:
-
Убедитесь, что балансировщик нагрузки передает IP‑адрес в заголовке
X-Forwarded-For
. -
Передайте значение
true
в параметреcontroller.config.use-forwarded-headers
Helm‑чарта.Параметр передается с помощью опции
--set
командыhelm install
(при установке Ingress‑контроллера) илиhelm upgrade
(при изменении параметров установленного Ingress‑контроллера):helm install --set controller.config.use-forwarded-headers=true <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>
Для корректной установки Ingress‑контроллера, в опции
--set
также необходимо передать другие параметры Helm‑чартаhelm upgrade --reuse-values --set controller.config.use-forwarded-headers=true <INGRESS_CONTROLLER_NAME> ingress-chart/wallarm-ingress -n <KUBERNETES_NAMESPACE>