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