一、发现问题
网络情况描述:项目因各种因素影响,有一部分服务部署在政府网机房,我们项目组的Rancher+ k8s + docker 集群搭建在政务外网;在跟当地其他业务系统对接时,有部分系统在政务内网,调试接口时,发现网络不通。
telnet命令无反应。
排查发现是网段问题:
查看本地ip如下:政务外网网卡eth0的网段为 10.150.0.1/24
docker默认创建的docker0虚拟网卡的网段172.17.0.1/16
而此时政务网对外出的网段:172.17.0.1/16
二、解决问题
1、发现问题后,思考了一下,只要我更换docker的网段不就可以了,对此进行了科学百度。
2、存在的顾虑:目前我这里是生产集群,进行更换网段肯定需要重启docker,对于集群的稳定是否有影响;对此顾虑搭建了测试环境进行了测试,更改后,重启后正常使用;
3、解决方法如下:
a.首先关闭docker,同时关闭socker和service
# 停止 docker 服务
sudo systemctl stop docker.socket
sudo systemctl stop docker.service
b.更改/etc/docker/daemon.json
vim /etc/docker/daemon.json
{
"bip":"172.19.0.1/16"
}
c.重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker.service
4.具体实现
因生产集群一直在使用,所以只对于worker角色的机器进行了更改和重启;
首先将当前机器上所有部署的业务容器服务进行迁移到其他机器;
然后对当前机器docker 如上诉步骤进行修改和重启;
查看集群状态,完成后,切换下一个机器操作;
最后,把各个服务,进行重新均衡部署