如何从kubernetes中的Pod获取源IP?

时间:2018-01-09 18:20:26

标签: networking kubernetes

我已经建立了一个有效的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似乎无效。

1 个答案:

答案 0 :(得分:0)

Kubernetes使用可在this document找到详细信息的群集/节点IP更改源IP。 Kubernetes有preserve the client source IP的功能,我相信你已经知道了。 似乎这是Kubernetes中的一个错误,并且已经an open bug因为这个下面的命令不能正常工作。

  

externalTrafficPolicy:Local

我建议发布错误,以便更多地关注这个问题。