在相同和不同的Pod中ping其他Pod

时间:2019-09-20 08:17:33

标签: kubernetes google-cloud-platform vpc kubernetes-pod

我想从A容器(节点0)ping B容器(节点1),但无法访问。但是,也无法访问同一节点中的ping pod。 我正在建立新集群,以尝试从Kelsey开始使用Kubernetes。

我尝试使用此链接作为参考Kubernetes: Can't ping pods across nodes

Node - IP Private - IP Pod
worker-0 - 10.240.0.20 - 10.200.0.0/24
worker-1 - 10.240.0.21 - 10.200.1.0/24
worker-2 - 10.240.0.22 - 10.200.2.0/24
  

路线-n

worker-0

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.240.0.1      0.0.0.0         UG    100    0        0 ens4
10.200.0.0      0.0.0.0         255.255.255.0   U     0      0        0 cnio0
10.240.0.1      0.0.0.0         255.255.255.255 UH    100    0        0 ens4
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

worker-1

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.240.0.1      0.0.0.0         UG    100    0        0 ens4
10.200.1.0      0.0.0.0         255.255.255.0   U     0      0        0 cnio0
10.240.0.1      0.0.0.0         255.255.255.255 UH    100    0        0 ens4
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

worker-2

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.240.0.1      0.0.0.0         UG    100    0        0 ens4
10.200.2.0      0.0.0.0         255.255.255.0   U     0      0        0 cnio0
10.240.0.1      0.0.0.0         255.255.255.255 UH    100    0        0 ens4
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0

我已经完成了link这样的VPC Netowrk路由的设置。

此后,我遵循了此参考文献Kubernetes: Can't ping pods across nodes

route add -net 10.200.1.0 netmask 255.255.255.0 gw 10.240.0.21在worker-0中

结果是

SIOCADDRT: Network is unreachable

我在worker-0,worker-1,worker-2中进行了尝试,并得到了相同的结果。 即使worker-0可以ping通到worker-1(10.240.0.21),还是可以访问的。

我的期望是,当我处于IP Pod 10.200.0.3的Pod A(工作人员0)时,我可以ping通IP Pod 10.200.1.3的Pod B(工作人员1)。而且,我可以与Pod A一起ping Pod C(worker-0)。

此步骤应该使用Calico还是Flannel?还是可以在没有Calico或Flannel(仅CNI设置)的情况下从其他节点ping其他Pod?

  

其他信息

我正在使用Docker而不是runc和containderd。 因此,我从link手动安装了Docker。

在kubelet.service中,--container-runtime=remote成为--container-runtime=docker

1 个答案:

答案 0 :(得分:0)

尝试添加这样的路线:

Run 1
Foo
Run 2