【发布时间】:2022-01-18 05:27:45
【问题描述】:
设置
我正在使用 K8s,并设置了一个小型单节点裸机集群。对于这个集群,我提取了 NGINX 入口控制器配置 from here,它来自 official getting started guide。
进展
好的,所以拉这个设置了一堆东西,包括前面的 LoadBalancer。我喜欢这样。
对于我的应用程序(单个 pod,返回调用方 IP) 我创建了一堆东西来玩。我现在启用了 SSL 和另一个入口控制器,它指向我的应用程序的服务,然后指向部署的 pod。这一切都很完美,我可以用https浏览页面。见:
但是...
我的应用没有从客户端获取原始 IP。所有客户端请求最终都来自 10.42.0.99...这是来自describe 的控制器配置:
调试
我尝试了在线建议的50 solutions,但它们都不起作用(ConfigMaps、注释、代理模式等)。而且我进行了深入调试,到达 pod 的请求中没有 X-Forwarder-For 或任何类似的标头。以前我直接在 apache 上测试过同一个应用程序,也在 docker 设置中测试过,它没有任何问题。
还值得一提的是,我查看了入口控制器的 pod,我已经在其中看到了相同的内部 IP。我不知道如何进一步调试控制器的 pod。
如果有帮助,很乐意分享更多信息和配置。
2021 年 12 月 15 日更新
我想我知道问题出在哪里......我没有提到我是如何安装集群的,假设它无关紧要。现在我认为这是最重要的事情????
我设置了using K3S,它有its own LoadBalancer。并且通过调试,我现在看到我在 NGINX 中的所有请求都有负载均衡器的 pod 的 IP...
我仍然不知道如何让这个 Klipper LB 提供源 IP 地址。
2021 年 12 月 17 日更新
用 Klipper LB 开张 an issue。
【问题讨论】:
标签: docker nginx kubernetes controller