Наш кластер Kubernetes включает балансировщик нагрузки nginx, который перенаправляет запросы в другие поды.
Однако nginx видит IP-адреса локального источника и, следовательно, не может установить правильный заголовок X-Real-IP. Я попытался установить для nginx значение externalTrafficPolicy как «Local», но IP-адрес не изменился.
Раздел конфигурации сервиса nginx:
"selector": {
"app": "nginx-ingress",
"component": "controller",
"release": "loping-lambkin"
},
"clusterIP": "10.106.1.182",
"type": "LoadBalancer",
"sessionAffinity": "None",
"externalTrafficPolicy": "Local",
"healthCheckNodePort": 32718
Результат:
GET / HTTP/1.1
Host: example.com:444
X-Request-ID: dd3310a96bf154d2ac38c8877dec312c
X-Real-IP: 10.39.0.0
X-Forwarded-For: 10.39.0.0
Мы используем кластер из чистого металла с металлом.
NO_MASQ_LOCAL=1
для соблюдения свойстваexternalTrafficPolicy
. - person Johannes Mittendorfer   schedule 15.10.2018