0

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

拥有三个节点:

  • kube-01(掌握)
  • kube-02
  • kube-03

使用一个 pod 进行部署,以Deployment-Apod ip命名Pod-A-IP,部署在kube-03

有一个包含两个 pod 的部署,名为Deployment-B. 每个工作节点都有一个 pod。我们不断Pod-B-02呼吁_kube-02Pod-B-03kube-03

使用类型NodePort 公开Deployment-A,我有一个集群 IPService-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 访问服务会遇到此问题。


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

我已经捕获了网络流量Pod-B-03

  • 10.244.1.10是 pod ipPod-B-03
  • 10.107.25.245Service-A-IP
  • 10.244.1.2Pod-A-IP

我用的是法兰绒。我建议法兰绒有问题吗?

4

1 回答 1

1

如果我没记错的话,您描述的问题是我过去遇到的问题……但是我遇到了许多具有许多不同错误源的网络问题。如果确实是同一个问题,那么可能将net.bridge.bridge-nf-call-iptablesand设置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

于 2017-02-20T08:27:55.023 回答