部署指南
因为采用微服务架构,相比单体软件来说,运维部署比较复杂。
例如:微服务之间如何相互调用;启动顺序如何保证;配置项如何管理等等。
所幸微服务架构已经非常流行,相应的基础设施也已经非常成熟。其中最重要的一点就是云原生技术的发展,它大大简化了微服务架构的应用在运维部署,配置管理方面的工作。
运行环境
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
。