上一篇微博提到关于使用直接路由的方式配置集群通信,其优点很明确,简单易懂,但是缺点也是不容忽视的。假设一下,你的集群里面有100甚至是上千个node,在每个服务器上,你都得去配置到其他所有node的静态路由,其工作量是庞大切枯燥的。
这里我详细介绍一下,使用quagga来动态添加路由规则。软件主页http://www.quagga.net。
最简单的方式当然是直接在每台服务器上安装quagga软件,但是除了这个方法,我们还可以使用docker的方式部署Quagga。现在我详细说明一下使用docker的方式部署Quagga。
步骤:
1.在每个node上都需要下载Quagga的docker镜像。
$ docker pull index.alauda.cn/georce/router
2.在启动docker 镜像之前,你首先需要确保每个node下的docker网桥的子网地址不能重叠,也不能与物理机上的网络重叠,这需要网络管理员的仔细规划。下面是配置docker0网桥的方法
$ ifconfig docker0 10.1.10.1/24
3.规划好每个node的docker0 子网以后,现在开始启动Quagga 的docker镜像。
$ docker run -itd --name=router --privileged --net=host index.alauda.cn/georce/router
说明:--privileged 表示该容器需要使用特权模式启动,--net=host 指定使用物理机的网络
4.启动成功之后,Quagga就会相互学习来完成到其他机器的docker0路由规则的添加