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

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

异常现象

  • 生产环境
    三台服务器安装服务如下:
主机 服务
node01 docker、etcd、flannel
node02 docker、etcd、flannel
node03 docker、etcd、flannel

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

  • 查看容器日志命令
docker logs -f 容器ID

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

systemctl stop firewalld && setenforce 0

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

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报错
    大概报错内容:
 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
    经过关闭之后,我在依次进行启动
systemctl start etcd && systemctl start flanneld && systemctl start docker  
#然后启动容器内的服务
启动顺序
docker start config
docker start discovery
docker start gateway
启动正常
查看日志gateway服务运行没问题
docker logs -f gateway

问题解决!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101841.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker 容器内部访问宿主机_docker访问宿主机文件

    docker 容器内部访问宿主机_docker访问宿主机文件在使用Docker部署应用时,Docker推荐的方式是将应用及其所依赖的服务(MySQL,Redis等)均使用Docker部署,并通过link或自定义网络相连接。但是,当应用所依赖的服务被安装在宿主机上时,我们需要让容器中的应用能够访问到部署在宿主机上的服务。本文将介绍实现这一目的的几种方案,并分析其优缺点。首先我们需要了解一些关于Docker网络的基础知识。Docker网络Docker提供…

    2022年8月20日
    64
  • .net core docker部署_mvc是什么

    .net core docker部署_mvc是什么准备mvc的程序【asp.netmvc5网站】使用刚才创建的镜像,并把上诉文件目录挂载到iis指定磁盘dockerrun-d-p83:80–namedocker-drgs-vD:\workdir\docker_dir\webapps\iis-drgs\:C:\inetpub\wwwroot\dev01/aspnet:v1-d后台运行-p83:…

    2022年9月29日
    5
  • ubuntu怎么卸载docker_failed to start docker.service

    ubuntu怎么卸载docker_failed to start docker.serviceDocker卸载及安装(CentOS7)1.卸载:#停止docker服务systemctlstopdocker#查看当前所有版本安装信息rpm-qa|grepdocker#yumlistinstalled|grepdocker#docker-ce-cli-20.10.12-3.el7.x86_64#docker-ce-20.10.11-3.el7.x86_64#docker-scan-plugin-0.12.0-3.el7.x86_64#docker-ce-

    2025年10月3日
    4
  • centos7.4安装docker_爬虫为什么要用docker

    centos7.4安装docker_爬虫为什么要用docker前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

    2022年7月29日
    7
  • docker中Jenkins安装allure和使用,bash: allure: command not found

    docker中Jenkins安装allure和使用,bash: allure: command not found我的docker中的Jenkins是已经安装allure了的,但是jenkins提示:bash:allure:commandnotfound。原来是我是通过管理员进入jenkins容器安装了allure的,而jenkins是以普通用户去运行的,所以我又以普通用户登录安装allure还是提示:bash:allure:commandnotfound。因为每次jenkins启动都是不同的用户备注:docker中jenkins安装allure可以参考这个链接:https://mp.c

    2022年7月26日
    30
  • docker部署jenkins安装使用教程_docker安装python

    docker部署jenkins安装使用教程_docker安装python前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月30日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号