部署指南

因为采用微服务架构,相比单体软件来说,运维部署比较复杂。

例如:微服务之间如何相互调用;启动顺序如何保证;配置项如何管理等等。

所幸微服务架构已经非常流行,相应的基础设施也已经非常成熟。其中最重要的一点就是云原生技术的发展,它大大简化了微服务架构的应用在运维部署,配置管理方面的工作。

运行环境

CITA-Cloud推荐的运行环境为K8s集群。

  • 对于开发,可以是K3s等轻量级的K8s环境。
  • 对于测试,可以是几台机器搭建的简单的K8s集群。
  • 对于生产环境,推荐有专人维护的高可用K8s集群,或者云厂商提供的容器云方案。

其优点是:

  • 不同环境的操作方式是统一的。
  • 功能灵活,强大。可以实现各种复杂的配置,自动化运维等。
  • 生态繁荣。基于云原生社区,有非常多成熟的配套工具和解决方案。

部署一条CITA-Cloud产生的链,除了准备好运行环境,还需要事先进行持久化存储和网络的设置。

推荐资源需求

单节点资源总量 2C 4G,推荐的资源配置如下:

服务 CPU request 内存 request CPU limit 内存 limit
controller 500m 1024Mi 1000m 2048Mi
executor 500m 10240Mi 1000m 2048Mi
storage 450m 1024Mi 900m 2048Mi
network 450m 768Mi 900m 1536Mi
consensus 100m 256Mi 200m 512Mi

v6.6.3 及以下版本,推荐的资源配置如下:

服务 CPU request 内存 request CPU limit 内存 limit
controller 450m 1024Mi 900m 2048Mi
executor 450m 1024Mi 900m 2048Mi
crypto 400m 256Mi 800m 512Mi
storage 300m 1024Mi 600m 2048Mi
network 300m 512Mi 600m 1024Mi
consensus 100m 256Mi 200m 512Mi

持久化存储

链的节点是有状态的服务,需要挂载持久化存储保存数据。

为了方便对接不同类型的存储服务,我们使用了K8s中的PV/PVC概念对存储进行了抽象。

建议由运维人员配置StorageClass,对PV/PVC实行动态绑定。

  • 对于开发环境,可以使用简单的本地存储。
  • 对于测试环境,可以使用NFS,由单独一台磁盘比较大的机器提供存储。
  • 对于生产环境,推荐使用各种成熟的云存储,分布式存储,NAS等专业存储系统。

网络

网络方面,需要微服务之间,以及节点之间可以通过网络相互访问。

目前推荐的部署方式是,一个节点一个Pod,里面包含6个微服务的容器。

微服务之间可以直接通过本地环回网络通信。

节点间的网络通信,如果所有节点都在一个K8s集群内部,可以通过K8sService来暴露节点的网络端口。如果是跨集群的情况,则需要使用NodePort或者LoaderBalancer等服务对外暴露节点的网络端口。

工具

配置工具

当前的配置工具为cloud-config,用于生成一条链多个节点,以及每个节点内多个微服务的配置文件。

该配置工具支持常用的大部分组件;适用于各种场景,开发或是生产,单集群或者多集群;支持多种配置模式,集中式,去中心化方式。

具体使用方法,请参考代码仓库中的README

命令行客户端

cloud-cli工具为CITA-Cloud链的命令行客户端,可以方便的对链进行常用的操作。

使用方法参见文档

运维工具

cloud-op工具为CITA-Cloud链运维工具,可以对节点数据进行各种操作。

具体使用方法,请参考代码仓库中的README