一般情况下,两个node之间并不能通信,现在使用直连路由加Quagga的方式实现不同Node节点间的pod互联。

4.1、修改docker0的ip地址

在minion1上

#ifconfig docker0 10.1.10.1/24

修改docker配置文件

vi /etc/sysconfig/docker

添加:

OPTIONS='--bip=10.1.10.1/24'

重启

systemctl restart docker

在centos-minion01上添加到centos-minion2的路由

route add -net 10.1.20.0 netmask 255.255.255.0 gw 192.168.137.100

在centos-minion02上, 添加到centos-minion01路由

route add -net 10.1.10.0 netmask 255.255.255.0 gw 192.168.137.101

(我这里因为只用了一个minion,所以直接使用master测试)

4.2、使用Quagga动态添加路由

为了减少手工添加路由,可以使用Quagga实现路由规则的动态添加。为简单起见,我们使用docker镜像。

#docker pull index.alauda.cn/georce/router

在每个node上启动容器

   Quagga需要以–privileged特权模式运行,并且指定–net=host,表示直接使用物理机的网络。

#docker run -itd --name=router --privileged --net=host index.alauda.cn/georce/router

启动成功后,Quagga会相互学习来完成到其他机器的docker0路由规则的添加。

# route -n

docker管理神器—kubernetes—直接路由篇_第1张图片

 测试:

# ping 10.1.10.1

wKiom1f7UXDAKZVYAAAbst2mSU8355.png