无法使用同一节点访问集群 Ip

Can not access Cluster Ip with same Node

我正在使用 v1.5.1 版本在 CentOS 上部署 k8s 集群

有三个节点:

部署了一个 pod,名为 Deployment-A,pod ip Pod-A-IP,部署在 kube-03

部署了两个 pods,名为 Deployment-B。每个工作节点都有一个 pod。我们在 kube-02 上调用 Pod-B-02,在 kube-03

上调用 Pod-B-03

使用类型 NodePort 公开 Deployment-A,我有一个集群 IP Service-A-IP

似乎从pods与服务后端在同一个节点访问服务会遇到这个问题。


更新于 2 月 20 日星期一 16:22:47 CST 2017

我在 Pod-B-03

上捕获了 network traffic

我正在使用法兰绒。我说法兰绒有问题?

如果我没记错的话,你描述的问题是我过去遇到过的问题...但是我有很多网络问题,有很多不同的错误源。如果确实是同一个问题,那么将 net.bridge.bridge-nf-call-iptablesnet.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 等)、您使用的云(或 bare-metal?)以及您选择了哪种网络解决方案(编织、印花布、基于云提供商等)

查看 iptables -L -t nat 的输出和 kube-proxy 日志也可能有所帮助,因为大多数与服务相关的问题都可以使用此信息进行调试。

编辑 我刚刚发现了 Kubernetes 问题,我从中得到了这个解决方案:https://github.com/kubernetes/kubernetes/issues/33798