我正在使用v1.5.1版本在CentOS上部署k8s群集
有三个节点:
-
kube-01
(大师) -
kube-02
-
kube-03
部署了一个名为 Deployment-A
的pod,其中包含pod ip Pod-A-IP
,部署在 kube-03
上
部署了两个名为 Deployment-B
的pod . 每个工作节点都有一个pod . 我们在 kube-02
上调用 Pod-B-02
,在 kube-03
调用 Pod-B-03
使用类型NodePort公开 Deployment-A
,我有一个群集IP Service-A-IP
-
Pod-B-02
访问Service-A-IP
,好的 -
Pod-B-03
访问Service-A-IP
,超时 -
kube-02
访问Service-A-IP
,好的 -
kube-03
访问Service-A-IP
,好的
似乎从具有服务后端的同一节点中的pod访问服务将遇到此问题 .
更新于2月20日星期一16:22:47 CST 2017
我在 Pod-B-03
上捕获了network traffic
-
10.244.1.10
是Pod-B-03
的pod ip -
10.107.25.245
是Service-A-IP
-
10.244.1.2
是Pod-A-IP
我正在使用法兰绒 . 我建议法兰绒有问题吗?
1 回答
如果我记得正确的话,你描述的问题是我过去的问题......但是我遇到了许多不同错误来源的网络问题 . 如果它确实是同一个问题,那么将
net.bridge.bridge-nf-call-iptables
和net.bridge.bridge-nf-call-ip6tables
设置为1可能会有所帮助 . 您可以先在所有主机上尝试此操作:然后再次检查服务网络,而无需重新启动计算机 . 如果这有帮助,请将更改保留到
/etc/sysctl.conf
或/etc/sysctl.d/
Kubernetes网络问题往往有无数的错误来源,如果没有足够的信息,很难调试它 . 如果您能提供一些有关如何设置群集(kube-up,kargo,kops,kubeadm,...),您使用哪种 Cloud (或裸机?)以及您使用哪种网络解决方案的其他信息,那将是一件好事 . 选择(编织,印花布, Cloud 提供商,......)
它也可能有助于查看
iptables -L -t nat
和kube-proxy日志的输出,因为可以使用此信息调试大多数与服务相关的问题 .EDIT 我刚刚找到Kubernetes问题,我从中得到了这个解决方案:https://github.com/kubernetes/kubernetes/issues/33798