如上图所示: 场景需求:1)使用consul server来存储集群的kv信息并保证server的高可用,2)应用服务高可用。
这张图里包含了3个集群,分为2个层次: 第1层:虚拟机实体集群 首先是3台vm组成的安装consul server的swarm集群, 然后是3台vm组成的安装consul agent的swarm集群, 第2层:consul应用虚拟集群 再然后是3台consul server加3台consul agent组成的consul集群
欢迎讨论各位的部署场景。
@i5ting 不知道能不能at到你,请指点一下这种部署是否常规合理。
使用docker swarm自带kv存储,这样你就不需要额外部署docker swarm自身使用的consul集群。
@coordcn 就是说用swarm mode而不用Docker swarm?
@m3shine 是的,怎么简单怎么来,既然内部提供直接用就是。
@coordcn 用配置中心是ok的,不过这结构看起太冗余了,感觉没必要
@i5ting 的确是这样的,用自带的可以简化不少。
@coordcn @i5ting 我整理了几次思路,写了篇文章,欢迎莅临指导: https://segmentfault.com/a/1190000011009638
@m3shine 发cnode上吧
@m3shine 思路很清晰,过程非常详细,看你的文章照做就可以完成整个集群部署了。
docker swarm mode 适合部署类似nginx这种没有状态的集群,对有集群内隶属关系的还要单独部署,我正在做这方面快速部署的研究,最终解决有状态服务(数据库等)的自动部署和扩容。
你的图片是用什么画的?
@i5ting 特意找了下 cnode 没找到发系列文章的地方😊
@coordcn processon
@m3shine cnode还没这个功能,不过很需要docker相关的讨论
@coordcn 另外,用1.13版docker的deploy方式部署到swarm mode的场景,应用在集群中显示的是vip,deploy也是适合部署nginx之类的吧。
@i5ting 嗯,我同步发一下。这个系列的都发cnode。
@m3shine 棒棒哒
@m3shine 是的,无状态,无隶属关系的都可以这么部署。
有状态的服务不行,服务挂掉之后,swarm拉起的时候,服务运行的实体机器可能会更换,存储也就跟着变,需要解决分布式存储和对应的docker插件,部署方式也比无状态的麻烦,也不满足可扩展,只能满足高可用。
其实docker swarm局限性还是蛮大的,不过对无状态的部署的确很简单。