基于flannel网络搭建的docker,flannel连接不上2379端口,etcd集群出现异常

2021-06-10 16:26:16 浏览数 (1)

异常现象

  • 生产环境 三台服务器安装服务如下:

主机

服务

node01

docker、etcd、flannel

node02

docker、etcd、flannel

node03

docker、etcd、flannel

三台服务器是一个etcd集群,然后基于flannel网络搭建的docker; 部署的服务node01上分别由config配置中心、discovery注册中心、gateway网关,剩下的服务都是基于前三个状态正常的情况下下才可以! gateway在启动的时候,一会的down了,查看日志报错,大概是连接不到config配置中心读取不到配置!

  • 查看容器日志命令
代码语言:javascript复制
docker logs -f 容器ID

第一反应我也是查看项目所需要的hosts文件在容器内是否做了更改,是不是找不到主机解析的域名,连接不到! 排除镜像的原因以后! 尝试做过reboot重启服务器,在机器启动后关闭过防火墙和沙盒,依旧无果!

代码语言:javascript复制
systemctl stop firewalld && setenforce 0

flannel通过systemctl方式是可以正常启动,但是通过查看状态可以看到报错

代码语言:javascript复制
systemctl status flanneld
报错内容大概:连接不到X.X.X.X:2379那就是flannel连接不到etcd 连接出现异常

etcd是开机自启动的,然后需要启动flannel,接着启动docker但是没有效果!查看gateway启动日志还是报错! 我再次尝试重启三台服务器查看究竟

  • node01、node02、node03进行重启
  • reboot
  • 然后查看etcd集群是否异常,虽说都是开机自启!
  • 尝试systemctl start etcd竟然卡住了,然后通过查看etcd服务状态的时候
  • systemctl status etcd发现etcd报错 大概报错内容:
代码语言:javascript复制
 health check for peer 3de62d4888b330ab could not connect: dial tcp X.X.X.X:2380: connect: no route to host (prober "ROUND_TRIPPER_SNAPSHOT")
 health check for peer 3d3sfag888b330ab could not connect: dial tcp X.X.X.X:2380: connect: no route to host (prober "ROUND_TRIPPER_SNAPSHOT")
 health check for peer 3de6asdf88b330ab could not connect: dial tcp X.X.X.X:2380: connect: no route to host (prober "ROUND_TRIPPER_SNAPSHOT") 

这个时候我也知道是通讯出现了问题,但是我重启之后都关闭了防火墙并且关闭了沙盒,还会出现问题! 令我费解,通过我把etcd的报错查询一通,说是一定要关闭防火墙、iptables、沙盒,三者都要进行关闭才可以!

解决

  • 关闭防火墙
  • systemctl stop firewalld
  • 关闭沙盒
  • setenforce 0
  • 关闭iptables
  • iptables -F 经过关闭之后,我在依次进行启动
代码语言:javascript复制
systemctl start etcd && systemctl start flanneld && systemctl start docker  
#然后启动容器内的服务
启动顺序
docker start config
docker start discovery
docker start gateway
启动正常
查看日志gateway服务运行没问题
docker logs -f gateway

问题解决!

0 人点赞