我已经建立了一个有效的k8s群集。
群集的每个节点都在网络10.11.12.0/24(物理网络)内。在这个网络上运行着一个flanneld(运河)cni。
每个节点都有另一个网络接口(不是由k8s管理),带有cidr 192.168.0.0/24
当我部署像:
这样的服务时kind: Service
apiVersion: v1
metadata:
name: my-awesome-webapp
spec:
selector:
server: serverA
ports:
- protocol: TCP
port: 80
targetPort: 8080
externalTrafficPolicy: Local
type: LoadBalancer
externalIPs:
- 192.168.0.163
该服务可在http://192.168.0.163访问,但Pod接收服务器的源IP:192.168.0.163 eth0地址:不是我的源IP(192.168.0.94)。
部署包含2个具有相同规范的pod。
可以让Pods查看我的源ip m吗?
任何人都知道如何管理它? externalTrafficPolicy: Local
似乎无效。
答案 0 :(得分:0)
Kubernetes使用可在this document找到详细信息的群集/节点IP更改源IP。 Kubernetes有preserve the client source IP的功能,我相信你已经知道了。 似乎这是Kubernetes中的一个错误,并且已经an open bug因为这个下面的命令不能正常工作。
externalTrafficPolicy:Local
我建议发布错误,以便更多地关注这个问题。