【发布时间】:2018-10-07 22:05:31
【问题描述】:
我有一个 kubernetes 集群 (v1.10) 和 flannel 作为 cni。使用默认设置,设置工作正常(使用 kubeadm),但 pod 无法通过服务 IP 连接到自身。
尝试将发夹模式设置为“混杂桥”,但 kubelet 抱怨:
Hairpin mode set to "promiscuous-bridge" but kubenet is not enabled, falling back to "hairpin-veth"
不知道发生了什么。经历了这个https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/#a-pod-cannot-reach-itself-via-service-ip,但没有帮助。有什么指点吗?
【问题讨论】:
-
通常是iptables有问题。首先检查 kube-proxy 是否启动。在 Pod 所在的节点上运行
sudo docker ps | grep kube-proxy。 -
你可以从不同的 pod/node 访问服务 ip 吗?
-
@ccshih 是的 kube-proxy 已启动。
-
@ffledgling Pod 可以与其他 pod 和服务通信。唯一的问题是通过它的服务 IP 连接到自身。
-
@PhagunBaya 问题是其他 pod 是否可以通过它的服务 IP 与这个 pod 通信。如果没有,这个 pod/node 上的网络就搞砸了。如果可以的话,可能是基础机器上的网络插件/自定义配置缺少路由添加。
标签: kubernetes flannel