部署指南
因为采用微服务架构,相比单体软件来说,运维部署比较复杂。
例如:微服务之间如何相互调用;启动顺序如何保证;配置项如何管理等等。
所幸微服务架构已经非常流行,相应的基础设施也已经非常成熟。其中最重要的一点就是云原生技术的发展,它大大简化了微服务架构的应用在运维部署,配置管理方面的工作。
运行环境
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集群内部,可以通过K8s的Service来暴露节点的网络端口。如果是跨集群的情况,则需要使用NodePort或者LoaderBalancer等服务对外暴露节点的网络端口。
工具
配置工具
当前的配置工具为cloud-config,用于生成一条链多个节点,以及每个节点内多个微服务的配置文件。
该配置工具支持常用的大部分组件;适用于各种场景,开发或是生产,单集群或者多集群;支持多种配置模式,集中式,去中心化方式。
具体使用方法,请参考代码仓库中的README。
命令行客户端
cloud-cli工具为CITA-Cloud链的命令行客户端,可以方便的对链进行常用的操作。
使用方法参见文档。
运维工具
cloud-op工具为CITA-Cloud链运维工具,可以对节点数据进行各种操作。
具体使用方法,请参考代码仓库中的README。