一、高可用分级

我们以用户应用不受影响为标准,将云帮的高可用分为三个等级:

  • 第一级: 随机计算节点宕机,用户的应用不受影响,或只受到一小段时间的影响。
  • 第二级: 管理节点全部宕机,用户的应用不受影响。
  • 第三级: 云帮平台各组件自身实现高可用。

二、设计初衷

  • 生产级别的高可用要求平台本身也支持高可用。
  • 为了了解云帮平台更精确的高可用特性;以客户的实际生产需要为出发点,我们设计了此方案,用合适数量的节点,部署出符合 第三级 高可用等级的Rainbond平台。
  • 此架构的设计已经面向了实际生产场景。

三、高可用升级思路

相较三节点高可用部署方案,当前方案有了如下升级:

  • 管理节点分布式部署,同时满足了kubernetes、ETCD的集群化部署。
  • 利用rbd-lb组件,实现平台控制台和api对外提供服务时的负载均衡。
  • 平台数据库,即rbd-db组件通过CockroachDB分布式数据库实现。

四、服务层级的划分

Rainbond所依赖的服务,按照其功能可以做出如下的划分:

层级服务
负载均衡层rbd-lb、calico(midonet)
管理层Rainbond管理组件、etcd集群、k8s集群
计算层docker、kubelet、calico(midonet)、rbd-dns
存储层glusterfs(NAS、其它共享存储)
  • 各层之间可以相互复用,当前架构复用了负载均衡层、计算层、存储层。
  • 各层背后对应的服务,可以有其它选择来代替。
    • 负载均衡层与计算层所使用的网络组件,默认安装calico,也可以使用midonet代替;
    • 如果是在阿里云上部署的Rainbond,可以直接使用阿里云官方提供的SLB负载均衡直接对接Rainbond;
    • 如果是在阿里云上部署的Rainbond,可以使用阿里云官方的NAS存储,代替glusterfs。

五、部署结构图

五节点高可用部署方案 - 图1

六、架构优缺点

  • 优势:管理节点部署了3节点的集群,满足了Rainbond自身的高可用。
  • 劣势:受限于docker化的分布式数据库Cockroachdb并不稳定,当前部署方案需要内测一段时间。
  • 适用人群:对于Rainbond有了深入了解,想要探究其生产性的高可用的客户群体。
  • 适用场景:POC测试、小规模生产环境。

七、操作流程

操作流程