Kubernetes дает внутренний IP-адрес источника, хотя externalTrafficPolicy имеет значение Local - PullRequest
0 голосов
/ 15 октября 2018

Наш кластер Kubernetes включает в себя балансировщик нагрузки nginx, который перенаправляет запросы другим модулям.

Однако nginx видит IP-адреса локального источника и поэтому не может установить правильный заголовок X-Real-IP.Я попытался установить для параметра externalTrafficPolicy значение nginx "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

Мы используем кластер из чистого металла с metallb.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Я обнаружил, что необходимо настроить переплетение, используя NO_MASQ_LOCAL=1 для соблюдения свойства externalTrafficPolicy

0 голосов
/ 19 ноября 2018

Похоже, это ошибка в реализации IPVS для служб типа LoadBalancer: https://github.com/google/metallb/issues/290

...