我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上。开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路。

用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日子。哪知却遭遇了另外一个奇怪的问题,docker swarm 集群部分节点经常无故宕机,只有通过阿里云控制台重启服务器后才可以恢复(有时需要重新加入集群),有时节点宕机严重就会造成整个集群挂掉。之前,集群挂掉时立即重建集群可以立马恢复(相比容器服务,可以很快地重建集群是自建 docker swarm 的优势之一),但昨天用5台服务器中的3台重建集群,上去后又挂了,后来用剩下的2台重建集群才恢复正常。

昨天的集群挂让人越想越觉得蹊跷,当时未进行任何部署操作,负载也不高,重建集群为什么那3台继续挂,这2台可以正常运行?唯一可以怀疑的地方只有这5台服务器是共享计算型 n1 服务器,可能是当时某种资源争抢情况引起的。于是,我们另外买了3台独享型服务器创建集群,结果遇到了之前从未遇到过的 docker swarm 问题,用这3台或者其中2台服务器,无论我们怎么创建集群,docker swarm 的 routing mesh 始终不能正常工作 —— 所部署的服务指定了 publish port ,但容器启动后,只能在运行该容器的节点上访问该端口,在其他节点上无法访问,而用同样的配置在之前用的共享型服务器上部署却没有这个问题。太奇怪了!

对于这个太奇怪的问题,实在无从下手,只能向阿里云提交工单。。。

终于从阿里云那里知道了真相:原来 docker 与阿里云服务器存在兼容问题。阿里云建议的解决方案是:使用他们的容器服务。

如果我们早点知道这个真相,就不用这么折腾了,写这篇随笔就是想告诉大家 —— 由于 docker 与阿里云服务器存在兼容问题,在这个问题没有解决之前,在阿里云上不要用自建 docker swarm 集群跑生产环境。

云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题的更多相关文章

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

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

  2. 云计算之路-阿里云上:重启 manager 节点引发 docker swarm 集群宕机

    为了迎接春节假期后的访问高峰,我们今天对 docker swarm 集群进行了变更操作,购买了1台阿里云4核8G的服务器作为 worker 节点,由原来的  3 manager nodes + 2 w ...

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

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

  4. 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署

    在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...

  5. 云计算之路-阿里云上:2014年6月12日16:14遭遇SLB故障

    这是今天遇到的第3次故障,故障是首先被园友发现的,访问园子出现来自SLB的错误提示:400 Bad Request - Powered by Tengine. 查看Windows性能监视器发现,在故障 ...

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

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

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

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

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

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

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

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

随机推荐

  1. 小哈学Python第二课:Hello Word

    Python入门 1.Hello World 2.Hello World

  2. 关于locals()、globals()以及作用域的一些感悟

    示例代码 i=6def foo(): print locals() print globals() i=66 print locals() print globals()class demo: i=6 ...

  3. Python中创建对象的方法

    源引:Python编程实践 示例类: class Point: __slots__=('x','y') def __init__(self,x,y): self.x=x self.y=y def ma ...

  4. javascript之数组快速排序

    快速排序思想其实还是挺简单的,分三步走: 1.在数组中找到基准点,其他数与之比较. 2.建立两个数组,小于基准点的数存储在左边数组,大于基准点的数存储在右边数组. 3.拼接数组,然后左边数组与右边数组 ...

  5. JAVA入门[22]—thymeleaf

    一.thymeleaf官网 官网:https://www.thymeleaf.org/index.html doc:https://www.thymeleaf.org/documentation.ht ...

  6. 五. Java集合概要

    了解了Java内存相关的内容后,现在来简单介绍下Java的集合. Set:不含有重复数据的集合.常用的对象HashSet,TreeSet,LinkedHashSet.HashSet拥有很好的性能,其数 ...

  7. 《深入理解Java虚拟机》虚拟机类加载机制

    上节学习回顾 上一节,我们深入到类文件去了解其结构细节,也大概对类文件的编写规则略知一二了,解析来我们就得学习这个类文件是如何被加载到Java虚拟机的,看看有什么引人入胜的奥秘. 本节学习重点 大部分 ...

  8. raft协议安全性保证

    分布式系统中主要的问题就是如何保持节点状态的一致性,不论发生任何failure,只要集群中大部分的节点可以正常工作,则这些节点具有相同的状态,保持一致,在client看来相当于一台机器. 一致性问题本 ...

  9. 最通俗易懂的javascript变量提升

    a = 'ghostwu'; var a; console.log( a ); 在我没有讲什么是变量提升,以及变量提升的规则之前, 或者你没有学习过变量提升,如果按照现有的javascript理解, ...

  10. POJ 3190 Stall Reservations贪心

    POJ 3190 Stall Reservations贪心 Description Oh those picky N (1 <= N <= 50,000) cows! They are s ...