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