flannel无法跨主机ping通容器的解决方式
前几天,出现了无法跨主机ping通容器的情况,导致一个node机网络中断,无法访问,排查过程如下。
- 首先确认,宿主机node2是可以ping通容器
[root@node2 ~]# ping 10.1.19.3
PING 10.1.19.3 (10.1.19.3) 56(84) bytes of data.
64 bytes from 10.1.19.3: icmp_seq=1 ttl=64 time=0.122 ms
64 bytes from 10.1.19.3: icmp_seq=2 ttl=64 time=0.073 ms
可以ping通,进行下一步 - 确认,代理机到容器是否可以ping通
[root@node1 ~]# ping 10.1.19.3
PING 10.1.19.3 (10.1.19.3) 56(84) bytes of data.
^C
--- 10.1.19.3 ping statistics ---
14 packets transmitted, 0 received, 100% packet loss, time 12999ms无法ping通,检查代理机
- 查看代理机的flannel子网段配置是否正常
[root@node1 ~]# etcdctl ls /coreos.com/network/subnets
/coreos.com/network/subnets/10.1.91.0-24
/coreos.com/network/subnets/10.1.93.0-24
/coreos.com/network/subnets/10.1.94.0-24
/coreos.com/network/subnets/10.1.19.0-24
/coreos.com/network/subnets/10.1.77.0-24网段配置是正常的,已经含有10.1.19.0-24 段了
- 返回去查看宿主机路由是否配置完整
[root@node2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.19.51 0.0.0.0 UG 100 0 0 eth0
10.1.19.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
192.168.19.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0配置不完整,缺少flannel路由配置
- 尝试重启flannel,如果无法自动创建路由,则进行手动添加
[root@node2 ~]# route add -net 10.1.0.0 netmask 255.255.0.0 dev flannel0
[root@node2 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.19.51 0.0.0.0 UG 100 0 0 eth0
10.1.0.0 0.0.0.0 255.255.0.0 U 0 0 0 flannel0
10.1.19.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
192.168.19.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0创建完成之后没确认网络是否通了
- 确认网络,如果依然无法联通,由于flannel.1网卡和docker0网卡通过iptables的forward转发,所以确保:
- 核中的forward功能开启(立即生效,重启后效果不再)
echo "1" > /proc/sys/net/ipv4/ip_forward
包不会被iptables的forward规则拦截
sudo iptables -P FORWARD ACCEPT
- 确认网络是否联通了
[root@node1 ~]# ping 10.1.19.3
PING 10.1.19.3 (10.1.19.3) 56(84) bytes of data.
64 bytes from 10.1.19.3: icmp_seq=1 ttl=61 time=0.444 ms
64 bytes from 10.1.19.3: icmp_seq=2 ttl=61 time=0.288 ms
^C
--- 10.1.19.3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.288/0.366/0.444/0.078 ms网络没有问题了
以上
flannel无法跨主机ping通容器的解决方式的更多相关文章
- 如何使用Flannel搭建跨主机互联的容器网络
当您将多台服务器节点组成一个Docker集群时,需要对集群网络进行设置,否则默认情况下,无法跨主机容器互联,接下来我们首先分析一下原因. 跨主机容器互联 下图描述了一个简单的集群网络,在该集群内,有两 ...
- 主机ping通虚拟机,虚拟机ping通主机解决方法(NAT模式)
有时候需要用虚拟机和宿主机模拟做数据交互,ping不通是件很烦人的事,本文以net模式解决这一问题. 宿主机系统:window7 虚拟机系统:CentOs7 连接方式:NAT模式 主机ping通虚拟机 ...
- Docker容器跨主机通信之:直接路由方式
一.Docker网络基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包:此外,如果不同子网之间要进行通信,需要额外的路由机制. Docker ...
- 关于docker中容器可以Ping通外网,真机无法Ping通容器的问题
首先我们要知道整体的框架结构,docker是我们安装在centos7上的,而centos7是安装在vmware上.其中docker中还有若干容器运行. 整体框架图如下: 我们将它分为两部分,一部分是d ...
- VMware14 安装CentOS7 实现宿主机ping通虚拟机、虚拟机ping通宿主机、虚拟机能上网且能ping通百度
本文旨在通过通过虚拟机VMware14来安装CentOS7 系统,并配置固定IP来实现在Windows系统中使用Linux环境. 本文目录: 0.本机环境 1.VMware14 初始化 1.1.安装V ...
- VMWare之——宿主机与虚拟机互相ping通,宿主机ping通另一台机器的虚拟机
版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明出处:http://blog.csdn.NET/l1028386804/article/details/52267554 今天给大家带来 ...
- samrt210开发板ping-系列问题(开发板ping通主机,主机ping通虚拟机,唯独~开发板ping不通虚拟机)
硬件:PC机.虚拟机(Linux).开发板(smart210) 常用模型: 注:1).有线网卡与无线网不可同连一个路由器,不可在同网段: 2).vmware选择桥接模式,虚拟网络适配器选定具体的网卡名 ...
- RedHat无法ping通Win10的解决办法
1.环境 主机: win10 企业版 64位 ip地址: 192.168.168.100 虚拟机:Red Hat ip地址: 192.168.168.200 2.现象: win10系统可以ping通R ...
- ping localhost 没反应解决方式
今天在搭建导师公司的spark的集群的时候须要有一台机器须要ssh 到自己.可是运行以下两条命令后发现没有反应 ping localhost ping 127.0.0.1 之后问了下别人,发现是/et ...
随机推荐
- Java集合中的细节问题
1)集合不保存基本数据类型,而是会把基本数据类型装箱后保存. 2)Empty和null的区别:null是不存在,Empty已经初始化了,只不过里面是空的. 3)判断集合有效性: 先判断空,再判断emp ...
- OpenStack之虚机热迁移
OpenStack之虚机热迁移 最近要搞虚机的热迁移,所以也就看了看虚机迁移部分的内容.我的系统是CentOS6.5,此处为基于NFS共享平台的虚机迁移.有关NFS共享服务器的搭建可以看这里. Yak ...
- vim 查找命令
/要查找的内容 自光标起始位置向下查找 ?要查找的内容 自光标起始位置向上查找
- 【bzoj1520】[POI2006]Szk-Schools 费用流
题目描述 输入 输出 如果有可行解, 输出最小代价,否则输出NIE. 样例输入 5 1 1 2 3 1 1 5 1 3 2 5 5 4 1 5 10 3 3 3 1 样例输出 9 题解 费用流 设xi ...
- WMS请求GetCapabilities,变成下载mapserv.exe解决办法
WMS1.1.1和WMS1.3.0两个版本中的几个区别: 1.WMS1.1.1中提供的DescribeLayers.GetStyles等接口在WMS1.3.0中不再提供支持,只提供GetCapabil ...
- FreeBSD 用kgdb调试kernel dump文件
FreeBSD 用kgdb调试kernel dump文件 来自: http://blog.csdn.net/ztz0223/article/details/8600052 kgdb貌似和ddb一样属于 ...
- 【VBA】随机数
[说明] 随机数.生成2个随机数m.n,取值范围为1~R.1~C Randomize m = )) + ) ' 1~R Random Int Randomize n = )) + ) ' 1~C Ra ...
- Codeforces Round #362 (Div. 2) B 模拟
B. Barnicle time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- nodeJS学习(11)--- nodeJS 取参 -- req.body & req.query & req.params
参考:https://my.oschina.net/u/2519530/blog/535309 获取请求中的参数是每个web后台处理的必经之路,nodejs的 express框架 提供了四种方法来实现 ...
- Mysql EXISTS NOT EXISTS
SELECT c.CustomerId, CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o ...