【发布时间】:2020-04-16 10:17:06
【问题描述】:
我需要在 Kubernetes 中获取客户端 IP,但我只能获取 Flannel 内部 IP 10.244.X.1(在 nginx 中通过 $remote_addr,$http_x_forwarded_for 始终为 -)。
网络拓扑是:
客户端浏览器 -> k8s 集群节点 ip -> k8s 服务 (A) -> pod(需要客户端 ip) -> 其他服务
我在A 中尝试过externalTrafficPolicy,但不起作用。它仅适用于云提供商,还是在 LB 之后? [1]
我也试过ingress-nginx [2],得到同样的结果。
我的环境:
Kernel Version: 3.10.0-1062.4.1.el7.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://18.6.2
Kubelet Version: v1.16.2
Kube-Proxy Version: v1.16.2
Network Add-on: Flannel
【问题讨论】:
-
也许可以试试 Inlets,见blog.alexellis.io/ingress-for-your-local-kubernetes-cluster
-
@MichaelHausenblas 看起来它仍然需要额外的提供者/节点服务,并且从公共互联网访问私有集群是一个不同的场景,这不是我所要求的。
标签: kubernetes kubernetes-ingress flannel