Kubernetes提供内部源IP,但externalTrafficPolicy设置为Local

Kubernetes提供内部源IP,但externalTrafficPolicy设置为Local,kubernetes,load-balancing,kubernetes-ingress,nginx-ingress,weave,Kubernetes,Load Balancing,Kubernetes Ingress,Nginx Ingress,Weave,我们的Kubernetes集群包括一个nginx负载平衡器,它将请求转发给其他POD 但是,nginx可以看到本地源IP,因此无法设置正确的X-Real-IP报头。我尝试将nginx的externalTrafficPolicy值设置为“Local”,但IP没有改变 nginx服务配置的一节: "selector": { "app": "nginx-ingress", "component": "controller", "release": "loping-lambkin" },

我们的Kubernetes集群包括一个nginx负载平衡器,它将请求转发给其他POD

但是,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

我们将裸机集群与metallb一起使用。

这似乎是LoadBalancer类型服务的IPVS实现中的一个错误:

我发现需要使用
NO_MASQ_LOCAL=1
配置weave,以尊重externalTrafficPolicy属性

我发现需要使用
NO_MASQ_LOCAL=1
尊重
externalTrafficPolicy
属性。我们遇到了相同的问题,唯一的区别是我们在法兰绒网络上,您知道如何在法兰绒上关闭伪装吗?对不起,不知道法兰绒