非常非常抱歉!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"

最新文章

  1. front-end plugin, generate pdf with html5 and jquery
  2. HDU-1257 导弹拦截系统 http://acm.hdu.edu.cn/showproblem.php?pid=1257
  3. img
  4. 重装windows7企业版时提示“安装程序无法创建新的系统分区,也无法定位现有系统
  5. win7-opengl开发环境的搭建
  6. python手记(41)
  7. Animation 的setFillAfter
  8. Android Game Examples
  9. 我眼中的JAVA的那些数据结构应用
  10. arduino扩展IO与M74HC595B芯片的使用,挪车电话提示牌的设计
  11. iframe之局部刷新
  12. VMware14虚拟机上使用Ubuntu16.04遇到的各种问题(不定期更新)
  13. High Performance Networking in Google Chrome
  14. 关于memset函数--赋最大值
  15. Kafka思维导图
  16. 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
  17. [Spring]IOC控制反转和DI依赖注入
  18. DHCP介绍
  19. 【学习笔记】--- 老男孩学Python,day15 python内置函数大全,递归,二分法
  20. zookeeper应用 - leader选举 锁

热门文章

  1. Android Native App自动化测试实战讲解(上)(基于python)
  2. angular4升级angular5问题记录之No NgModule metadata found for 'AppModule'
  3. java1 - 环境与简介
  4. 初识Vue——模板语法
  5. SQLSERVER中分割字符串成多列
  6. Centos下的GitLab的安装汉化和数据备份以及管理员密码重置
  7. HDU - 2160 递推
  8. 在SpringBoot使用Druid进行数据监控
  9. shell脚本 sed工具
  10. Google最新的图片格式WEBP全面解析