#kubernetes #amazon-eks #traefik #aws-application-load-balancer #traefik-ingress
Вопрос:
Я развертываю Traefik в своем кластере EKS с помощью диаграммы управления Traefik по умолчанию, а также с помощью контроллера AWS Load Balancer.
Traefik отлично развертывает и направляет трафик на мои сервисы. Однако у одной из служб обслуживания клиентов есть требование, чтобы заголовок x-forwarded-proto был передан ей. Это делается для того, чтобы он знал, первоначально ли пользователь вошел через http или https.
AWS ALB отправляет заголовок, но Traefik не пересылает его дальше. Кто-нибудь знает, как заставить Трефика сделать это?
Как я устанавливаю Traefik: helm install traefik traefik/traefik --values=values.yaml
Ответ №1:
С traefik вы должны доверять внешним прокси-адресам, чтобы сохранить их заголовок X-Forwarded-For.
Это можно было бы сделать, добавив такой аргумент, как --entryPoints.websecure.forwardedHeaders.trustedIPs=127.0.0.1/32,W.X.Y.Z/32
Используя шлем, вы должны уметь использовать:
helm install .... "--set=additionalArguments=['--entryPoints.websecure.forwardedHeaders.trustedIPs=127.0.0.1/32,10.42.0.0/16']"`
… или напишите свой собственный файл значений.
ПРЕДУПРЕЖДЕНИЕ: по умолчанию в диаграмме не будет использоваться настройка сети хостов, а вместо этого вы будете раскрывать свой вход с помощью службы балансировки нагрузки (фактически на основе порта узла).
Поведение порта узла заключается в том, чтобы установить соединение, входящее в SDN. Таким образом, Traefik увидит некоторый внутренний адрес SDN-в зависимости от того, какой SDN вы используете, это может быть первый используемый адрес подсети хоста, сетевой адрес этой подсети хоста, IP-адрес вашего узла kubernetes из SDN, … Вам придется выяснить, какому IP-адресу доверять, в зависимости от вашей настройки.