欢迎访问陈同学博客原文
Rancher 1.6.14 OS:Ubuntu 16.04
本文记录Rancher整个环境因一台主机网络问题导致环境中所有主机网络瘫痪,无法跨主机通讯问题。
收到故障预警邮件,网站无法访问。
为了便于介绍,先画个请求处理的简图:
请求由nginx做第一层转发,haproxy是Rancher提供的标准Loader Balance组件,可以将请求根据规则代理到特定的应用,如果应用多实例,同时会做负载均衡。
502
或 504
=> 说明请求到达了nginx,后续网关出现了问题注:502 Bad Gateway; 504 Gateway Time-out
所有主机的healthcheck状态如下截图:
<img width="60%"src="https://media.chenyongjun.vip/2018/06/26/6fa73d3128a2400d829dd616c03a4603.png"/>
一台主机的IP变成了 172.17.0.1,这不是机器的正常IP,一般是 docker0 网桥的IP
<img width="60%" src="https://media.chenyongjun.vip/2018/06/26/4941b27646624b84a7bf71ef210b35d7.png">
ifconfig
检查问题主机IP,172.17.0.1 为 docker0的IP。Rancher官网说遇到IP不对需要重新注册主机。这下GG了,只能把主机上的容器移走或stop
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:9cff:fea1:bc40 prefixlen 64 scopeid 0x20<link>
ether 02:42:9c:a1:bc:40 txqueuelen 0 (Ethernet)
RX packets 144756223 bytes 17497382352 (16.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 124049363 bytes 79629803176 (74.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
移除问题主机,并重新添加,这台问题主机恢复正常。
注:忘了这是第几次处理Rancher网络问题了,Rancher一个个版本升级上来,也是踩坑不少
且不管问题因何引发,好奇的是一台主机的IP不对怎么会引发所有主机雪崩?尝试重现该问题。
重现方式:在一个网络正常的环境中添加一台IP为 docker0 网桥上的主机,IP为: 172.17.0.1
重现结果:添加IP为 172.17.0.1 的主机后,整个环境的网络立马异常,主机之间无法通讯,复现了上述问题
在Rancher官网 FAQs cross host communication 讲述:
Every so often, the IP of the host will accidentally pick up the docker bridge IP instead of the actual IP. These are typically 172.17.42.1 or starting with 172.17.x.x. If this is the case, you need to re-register your host with the correct IP by explicitly setting the CATTLE_AGENT_IP environment variable in the docker run command.
即每隔一段时间,偶尔会使用docker网桥IP来替换主机实际IP,这些IP通常是172.17.42.1或以172.17.x.x开始。如果遇到这种情况,需要重新添加主机。
todo: 疑惑待解决
todo: 疑惑待解决
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。