解决云服务器docker swarm节点间无法通信问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决云服务器docker swarm节点间无法通信问题相关的知识,希望对你有一定的参考价值。
参考技术A 如果你的swarm运行在默认端口,那么你就可能和我一样遇到了VXLAN默认端口4789/udp被云服务厂商阻断的问题。比如阿里云在文档中提到了这点,链接-> 阿里云添加udp监听文档 。这个问题在docker:v19.03之前无法直接解决。19.03版本,docker在swarm init之上增加了--data-path-port uint32 的配置项用于更改docker swarm的VXLAN端口。
下面以指定端口5789/udp为例
云计算之路-阿里云上:重启 manager 节点引发 docker swarm 集群宕机
为了迎接春节假期后的访问高峰,我们今天对 docker swarm 集群进行了变更操作,购买了1台阿里云4核8G的服务器作为 worker 节点,由原来的 3 manager nodes + 2 worker nodes 变为 3 manager nodes + 3 worker nodes 。
晚上,我们对已经持续运行一段时间的5个节点逐一进行重启操作,重启方式如下:
1)docker node update --availability drain 让节点下线
2)阿里云控制台重启服务器
3)docker node update --availability active 让节点上线
以前多次进行过这样的操作,未曾遇到问题,而今天在将其中1台manager节点下线后竟然意外地引发了整个集群宕机 。。。21:39 - 22:02 左右,这个突发的故障给您带来很大的麻烦,请您谅解。受这次故障影响的站点有 闪存,博问,班级,园子,短信息,招聘,小组,网摘,新闻,openapi 。
经过分析,我们得到的教训是尽可能避免只有2个manager节点的情况(manager节点采用的是投票机制,少数服从多数,2个节点的投票永远是1:1,这也是一种不稳定情况)。针对这个教训,我们调整了节点的部署,改为了 5 manager nodes + 1 worker nodes ,这样即使2个manger节点下线或出问题,也不会群龙无首。
docker swarm 集群的不稳定让我们如履薄冰,今年我们会想尽一切办法彻底解决这个问题。
以上是关于解决云服务器docker swarm节点间无法通信问题的主要内容,如果未能解决你的问题,请参考以下文章
云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题
33. docker swarm 集群服务通信 之 RoutingMesh - Ingress 网络