Получение ip клиента с помощью Knative и Anthos

Мы используем Google Cloud Run в нашем кластере K8s на GCP, который работает на Knative и Anthos, однако кажется, что балансировщик нагрузки не изменяет x-forwarded-for (и этого не ожидается, поскольку это балансировщик нагрузки TCP), и Istio не делает то же самое.

У вас такая же проблема или она ограничена нашим развертыванием? Я понимаю, что Istio поддерживает это в рамках своей предстоящей топологии сети шлюза., но не в текущей версии gcp.


person KimDai    schedule 22.06.2020    source источник


Ответы (1)


Я думаю, вы правы, оценивая, что текущая настройка Cloud Run для Anthos (непреднамеренно) не позволяет вам видеть исходный IP-адрес пользователя.

Как вы сказали, созданный шлюз для Istio / Knative в этом случае представляет собой Cloud Network Load Balancer (TCP), и этот LB не сохраняет IP-адрес клиента в соединении, когда трафик направляется на модули Kubernetes (из-за того, как Kubernetes сеть работает с iptables и т. д.). Вот почему вы видите заголовок x-forwarded-for, но он содержит внутренние переходы (например, 10.x.x.x).

Я слежу за нашей командой по этому поводу. Вроде раньше этого не замечали.

person Ahmet Alp Balkan    schedule 22.06.2020
comment
Спасибо Ахмет. Я предполагаю, что это именно так, однако некоторые отметили, что изменение балансировщик нагрузки (istio-ingress) от externalTrafficPolicy до Local фактически решает проблему, однако было бы здорово узнать, имеет ли такое изменение какие-либо побочные эффекты, поскольку оно пропускает функцию кластера и рискует потенциально несбалансированным распределением трафика. - person KimDai; 22.06.2020
comment
Это действительно будет иметь такой побочный эффект для Kubernetes. Однако в случае Knative трафик отправляется на модули шлюза, а их всего несколько (если вообще больше 1). Если у вас нет большого количества запросов в секунду, это будет нормально. В противном случае это может быть проблемой. Я рекомендую тестировать / валидировать под давлением. - person Ahmet Alp Balkan; 23.06.2020
comment
Извините за позднее обновление. Кажется, что этот локальный сервер отлично работает при работе с небольшим количеством запросов, однако это приводит к некоторому таймауту после увеличения нагрузки. Было бы идеально увидеть решение прямо из Cloud Run. - person KimDai; 28.07.2020
comment
Привет, @ AhmetB-Google. Мы сталкиваемся с той же проблемой, что и could run и anthos. Пожалуйста, есть ли прогресс или решение этой проблемы? - person udidu; 22.09.2020
comment
Мы сталкиваемся с той же проблемой. Есть ли у нас какие-либо обновления по этому @ AhmetB-Google? Спасибо - person Đôn Nguyễn; 19.04.2021