非常非常抱歉!16:30 ~ 17:00 左右我们用于跑 ASP.NET Core 站点的 docker swarm 集群再次出现宕机,由此给您带来了很大很大的麻烦,恳请您的谅解!

受此次故障影响的站点有:博问,闪存,班级,园子,短信息,招聘,小组,网摘,新闻,openapi

故障的经过是这样的。

一开始只是访问时偶尔出现 503 ,然后 503 逐渐增多。登录到集群的各个节点,发现有节点 ssh 登录响应慢,登录进去后执行 docker 命令也慢,于是将这个节点下线并重启,但是这样操作后又有新的节点出现这个问题 。。。然后越来越多的节点出现这个问题,造成全面 503 。

发现重启节点服务器不凑效,我们立即选择了重建集群,这本来每次都管用的一招,这次竟然失灵。

swarm1-node1 这个节点通过 docker swarm leave --force 命令强制退出已有集群,重新创建新的集群,并只部署了 docker-proxy-flow 路由容器。

docker swarm init --advertise-addr $(ip address | grep -oP "10\.[^/]+(?=/)")
docker network create --driver overlay cnblogs --subnet 10.128.0.0/16
docker network create --driver overlay proxy --subnet 10.129.0.0/16
cd docker-flow-proxy
./deploy-prod.sh watch 'docker stack ps proxy'

这时没有部署其他应用容器,以免一部署把这个节点压垮,而是将其他节点一一加入集群,但是加集群时傻眼了,出现下面的错误,无法加入。

# docker swarm join --token SWMTKN-1-2tzw5t53lzek5anyv163pc932zfrv1knkbzkxz9vg76uvsx5mz-3rw8fxa7sjbsf9hp55ycvmqxb 10.0.1.7:2377
Error response from daemon: rpc error: code = Unavailable desc = grpc: the connection is unavailable

更恐怖的是所有其他节点都因为同样的问题无法加入集群,不管是 manager 节点,还是 worker 节点。

在当时情急、愧疚、慌乱、无助。。。各种情绪的混杂之下,想到了最后一招,换另外一台服务器重建集群,结果一切正常,很快完成了整个集群的重建,恢复了正常。

用了 5 个 manager 节点,docker swarm 集群竟然还是如此不稳定,这是我们未曾料到的。目前我们需要先仔细分析,然后再评估接下来的应对措施。

再次请您谅解由此给您带来的麻烦!

【更新】

1)重建集群后,今天晚上又有1个节点出现问题,问题表现是容器中 dns 解析失败,造成无法连接阿里云 RDS 数据库,引发应用访问出现 504 错误

System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 25 - Connection string is not valid) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (0x00000001): Resource temporarily unavailable
at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)

将该节点下线后恢复正常。

2)在 docker 节点上发现大量的 docker 错误日志

dockerd[773]: time="2018-03-15T22:38:08.780376214+08:00" level=error msg="Failed to deserialize netlink ndmsg: Link not found"

云计算之路-阿里云上:docker swarm 集群再次出现故障的更多相关文章

  1. 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障

    3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...

  2. 云计算之路-阿里云上:13:43-13:44之间RDS故障影响了全站的正常访问

    抱歉!13:43-13:44之间,由于阿里云RDS(云数据库)出现2分钟突发故障,影响了全站的正常访问,给大家带来了麻烦,望大家谅解! 故障期间,应用程序日志中记录的错误信息如下: System.Da ...

  3. 云计算之路-阿里云上:节点 CPU 波动引发 docker swarm 集群故障

    非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短 ...

  4. 云计算之路-阿里云上:针对 docker swarm 故障的部署调整以及应急措施

    针对这周 docker swarm 集群的频繁故障(详见故障一 .故障二.故障三),我们今天对 docker swarm 集群的部署进行了如下调整. 将 docker engine 由  “17.12 ...

  5. 云计算之路-阿里云上:从ASP.NET线程角度对“黑色30秒”问题的全新分析

    在这篇博文中,我们抛开对阿里云的怀疑,完全从ASP.NET的角度进行分析,看能不能找到针对问题现象的更合理的解释. “黑色30秒”问题现象的主要特征是:排队的请求(Requests Queued)突增 ...

  6. 云计算之路-阿里云上:Web服务器遭遇奇怪的“黑色30秒”问题

    今天下午访问高峰的时候,主站的Web服务器出现奇怪的问题,开始是2台8核8G的云服务器(ECS),后来又加了1台8核8G的云服务器,问题依旧. 而且3台服务器特地使用了不同的配置:1台是禁用了虚拟内存 ...

  7. 云计算之路-阿里云上-新发现:又一种与虚拟内存有关的CPU波动情况

    在云上真是无奇不有,昨天偶然间发现在IIS的应用程序池回收设置中,仅仅设置了一下基于虚拟内存限制的回收,就引发了CPU有规律的波动.在这篇博文中,我们将向大家汇报一下云计算之路上的这个小发现. 在之前 ...

  8. 云计算之路-阿里云上:启用Windows虚拟内存引发的CPU 100%故障

    今天上午11:35~11:40左右,由于负载均衡中的两台云服务器CPU占用突然飚至100%,造成网站5分钟左右不能正常访问,请大家带来了麻烦,请谅解! (上图中红色曲线表示CPU占用) 经过分析,我们 ...

  9. 云计算之路-阿里云上:SLB会话保持的一个坑

    冒着被大家厌烦的风险,今天再发一篇“云计算之路-阿里云上”.这是在前一篇发过之后真实发生的事情,我们觉得定位问题的过程值得分享.而且估计园子里不少朋友被这个问题骚扰过,我们有责任让大家知道问题的真正原 ...

随机推荐

  1. 【JavaWeb】客户关系管理系统

    前言 为了巩固开发的流程,我们再拿一个客户关系管理系统来练手...! 成果图 我们完成的就是下面的项目! 搭建配置环境 配置Tomcat 导入开发包 建立开发用到的程序包 在数据库创建相对应的表 CR ...

  2. 使用EL表达式调用java方法

    首先,新建一个类,类中写一个静态方法 public class PrivilegeUtils { public static Boolean checkPrivilegeByName(User use ...

  3. 批量修改git仓库地址脚本

    前言   公司的代码都存放在自己搭建的gitlab上面.之前由于老板升级gitlab.导致下面有个叫做"api"的groups无法访问.通过无所不能的谷歌才知道.在gitlab在某 ...

  4. Java经典编程题50道之十

    一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下……求它在第10次落地时,共经过多少米?第10次反弹多高? public class Example10 {    public sta ...

  5. PHP的性能优化方法总结

    什么情况之下,会遇到PHP性能问题? 1:PHP语法使用不恰当. 2:使用PHP语言做了它不擅长的事情. 3:使用PHP语言连接的服务不给力. 4:PHP自身的短板(PHP自身做不了的事情). 5:我 ...

  6. Windows下使用Sublime text3快速编辑Linux文件,写Shell

    所需要配合的工具是WinSCP 添加完毕之后直接在目录下双击要编辑的shell脚本文件,即可弹出Sublime Text的编辑器 然后咱通过Putty看看Linux虚拟机上的文件有没有发生变化

  7. ubuntu Emergency Mode

    sudo fsck -y /dev/sda# e2fsck -f -y -v -C 0 /dev/sda#

  8. python中 字符 字典 列表之间的转换

    1 字典 转 字符 定义一个字典:dict = {'name': 'python', 'age': 7}字典转字符 可以使用str强制转换 如: str(dict) 此时dict的类型就是字符型了 2 ...

  9. Lua Table转C# Dictionary

    因为在游戏公司做web后台开发,经常会涉及到取游戏服务器的数据库里面读写各种操作. 昨天下午,服务器那边让我读一个配置显示到后台,让运营大佬们可以在web后台配置游戏参数. 本来以为很简单个事情,结果 ...

  10. APICloud常用模块

    常用模块 基础 fs db 支付 wxPay aliPay unionPay 消息 ajpush rongCloud2