0

我维护一个 Kubernetes 集群。节点位于具有10.0.0.0/8IP 的 Intranet 中,Pod 网络范围为192.168.0.0/16.

问题是,一些工作节点无法到达其他节点上的 pod 网络,例如:

0.0.0.0         10.a.b.65       0.0.0.0         UG    0      0        0 eth0
10.a.b.64       0.0.0.0         255.255.255.192 U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.20.0    -               255.255.255.192 !     0      -        0 -
192.168.21.128  -               255.255.255.192 !     0      -        0 -
192.168.22.64   0.0.0.0         255.255.255.192 U     0      0        0 *
192.168.22.66   0.0.0.0         255.255.255.255 UH    0      0        0 cali3859982c59e
192.168.24.128  -               255.255.255.192 !     0      -        0 -
192.168.39.192  -               255.255.255.192 !     0      -        0 -
192.168.49.192  -               255.255.255.192 !     0      -        0 -
...
192.168.208.128 -               255.255.255.192 !     0      -        0 -
192.168.228.128 10.14.170.104   255.255.255.192 UG    0      0        0 tunl0

当我docker exec进入 Calico 容器时,与其他节点的连接以unreachable鸟的形式报告:

192.168.108.64/26  unreachable [Mesh_10_15_39_59 08:04:59 from 10.a.a.a] * (100/-) [i]
192.168.112.128/26 unreachable [Mesh_10_204_89_220 08:04:58 from 10.b.b.b] * (100/-) [i]
192.168.95.192/26  unreachable [Mesh_10_204_30_35 08:04:59 from 10.c.c.c] * (100/-) [i]
192.168.39.192/26  unreachable [Mesh_10_204_89_152 08:04:59 from 10.d.d.d] * (100/-) [i]
...

结果,损坏节点上的 Pod 几乎无法访问集群中的任何内容。

我尝试重新启动损坏的节点,将其从集群中删除,运行kubeadm reset并重新加入它。但一切都保持不变。

可能的原因是什么,我应该如何解决这个问题?提前谢谢了。

4

2 回答 2

0

集群服务(如 coredns 等)的默认 IP 为 10.96.0.1,范围为 10.0.0.0/8

您应该更改集群上节点的节点 ip 并重新加入它们。

或者

将默认路由从 eth0 更改为 tunl0,这取决于您的 cni 网络。

如果您使用 calico ,请放弃网络规则和路由到 calico 项目。

于 2020-12-07T11:09:44.537 回答
0

好吧,我升级了 Docker (19.03.14)、Kubernetes (1.19.4) 和 Calico (3.17.0)。

然后我重新创建了集群。

现在它运作良好。

于 2020-12-09T03:18:52.337 回答