Skip to main content

部署要求

硬件#

以下内容为FinClip部署的推荐配置清单,通常我们建议主要组件尽可能分散部署,在资源有限且QPS规划考虑内适当合并组件所在节点。

需要注意的是,在很多情况下可以使用客户提供的自有服务,例如:

  • 条件允许情况下,存储服务推荐使用 SSD 磁盘;

  • 若已有容器镜像仓库,可省略 Harbor/registry;

  • 若已有 S3 存储或类似的对象存储服务,且无兼容性冲突,可省略 Minio;

  • 若客户已有 Kubernetes,可省略 Kubernetess Master x 3;

  • 可根据实际用户数扩缩容。

单节点#

单节点模式部署没有故障转移能力,但能够提供一定程度的、软件层面的故障恢复能力。单节点的部署架构适合对容灾没有要求,或整体业务规模较小的客户使用。

单节点将采用 Docker-Compose 的方式部署,所需的配置可以参考下表▼:

CPU内存储存空间服务
4 核8 GB100 GB[业务¹][基建²] 混合部署

角色分配可以参考下图▼:

role1

该配置档的服务器所能承载的 极限³ 指标参见下表▼:

指标数据
峰值并发3,918 TPS
  1. 以上数据供参考,该数据为实验室数据,在真实业务场景中,根据版本更新情况、不同的服务器环境、裸机超售情况、网络延迟、自有中间件性能等不确定因素,实际性能可能会有所不同。

  2. 完整的测试报告请参考:POC 测试报告.docx

小规模集群#

集群模式部署能够提供一定程度的、软件层面的故障转移能力。小规模集群的部署架构适合绝大部分的、对高可用与故障隔离没有严格需求的客户使用。

小规模集群将采用 Kubernetes 的方式部署,所需的配置可以参考下表▼:

CPU内存储存空间服务
8 核16 GB200 GB[业务¹][基建²] 混合部署
8 核16 GB200 GB[业务¹][基建²] 混合部署
8 核16 GB200 GB[业务¹][基建²] 混合部署
8 核16 GB200 GB[业务¹][基建²] 混合部署

角色分配可以参考下图▼:

role2

该配置档的服务器所能承载的 极限³ 指标参见下表▼:

指标数据
峰值并发24,290 TPS
  1. 以上数据供参考,该数据为实验室数据,在真实业务场景中,根据版本更新情况、不同的服务器环境、裸机超售情况、网络延迟、自有中间件性能等不确定因素,实际性能可能会有所不同。
  2. 完整的测试报告请参考:小规模集群测试报告.docx

大规模集群#

集群模式部署能够提供一定程度的、软件层面的故障转移能力。大规模集群的部署架构适合对可扩展性、灾备等指标有要求的客户使用。该架构的集群设计上主要关注在于故障隔离、故障恢复、可拓展性等方面。

大规模集群的服务器数量没有上限,支持多活、多机房部署,可根据业务规模、灾备要求自定义。相比小规模集群,大规模集群会附带可选的日志系统与监控组件(需要独立占用服务器)。

大规模集群将采用 Kubernetes 的方式部署,所需的配置可以参考下表▼:

CPU内存储存空间用途数量角色
8 核16 GB300 GB[业务¹]:微服务容器3Kubernetes Worker
8 核16 GB500 GB[基建²]中间件4中间件独占
4 核4 GB300 GB[基建²]附加组件1附加组件独占
4 核4 GB100 GB[业务¹]:微服务网关容器1Kubernetes Worker
———————▼ ———— 选配服务 ———— ▼———————————
4 核4 GB100 GB[选配]: Rancher 管理面板、网关1Kubernetes Master
8 核16 GB500 GB[选配]: 日志系统、监控系统1Kubernetes Worker

角色分配可以参考下图▼:

role3

该配置档的服务器所能承载的 极限³ 指标参见下表▼:

指标数据
峰值并发17,988 TPS
  1. 以上数据供参考,该数据为实验室数据,在真实业务场景中,根据版本更新情况、不同的服务器环境、裸机超售情况、网络延迟、自有中间件性能等不确定因素,实际性能可能会有所不同。
  2. 完整的测试报告请参考:大规模集群测试报告.docx

名词说明:#

[业务¹]: 指 FinClip 微服务及相关联服务;

[基建²]: 指中间件、附加组件、Kubernetes 组件等;

[极限³]: 指 TPS 压力高于该值,会因负载压力过大,引起集群或服务器崩溃;

[选配]: 考虑到此类服务需要更多的独占服务器资源,因此默认情况下不进行部署,除非与客户有另行约定;

中间件: MinIO、Kafka、Redis、ElasticSearch、Consul、Zookeeper、MySQL;

附加组件: Registry、Tinygit;

Kubernetes 组件: Rancher Master 管理面板、Rancher Worker 组件。


软件#

系统#

系统 [任选一个]内核附加说明
Ubuntu 18.04 或更高4.15 或更高需要全新安装,无其他服务占用系统端口
CentOS 7.8 或更高3.10 或更高需要全新安装,无其他服务占用系统端口

请勿使用无授权非正版 RedHat Enterprise

确认内核版本:

  • 登录服务器输入uname -a

确认系统版本:

  • CentOS 可以执行 cat /etc/redhat-release
  • Ubuntu 可以执行 cat /etc/issue

基建#

若您决定自行提供部分基建服务,请确保版本不低于该要求

服务版本授权协议
Docker CE19.03Apache License 2.0
Kubernetes1.18.14Apache License 2.0
Rancher2.4.8Apache License 2.0
Zookeeper3.4.14Apache License 2.0
Kafka2.3.1Apache License 2.0
MySQL8.0.27GPL
Redis6.0.9-busterBSD
ElasticSearch6.8.13Apache License 2.0
Consul1.9.1Mozilla Public License 1.1
MinIO2021-01-08GNU Affero GPL

网络#

用于部署 [基建] 标签的服务器,出于数据交换的需要,应优先选择 “端口全部放行” 的规则。如无法满足,请确保服务器对以下端口双向互通。

  • 业务组件需要占用以下端口:

    端口用途协议
    3306MySQLTCP
    8500ConsulTCP
    6379RedisTCP
    7000RedisTCP
    7001RedisTCP
    17000Redis Clueter BUSTCP
    17001Redis Cluster BUSTCP
    9000MinIOTCP
    9092Kafka Broker ClientTCP
    9093Kafka ExternalTCP
    9200ElasticSearchTCP
    9300ElasticSearch ClusterTCP
    9400ElasticSearch SSLTCP
    2181Zookeeper ClientTCP
    2888Zookeeper ClusterTCP
    3888Zookeeper ClusterTCP
  • 以及用于 Prometheus 收集数据的 Exporter 组件:

    端口用途协议
    9104MySQL ExporterTCP
    7200Redis ExporterTCP
    7201Redis ExporterTCP
    9308Kafka ExporterTCP
    9114ElasticSearch ExporterTCP
    9107Consul ExporterTCP
  • 以及用于 Rancher 组件通信的所需端口:

    端口用途协议
    2379ETCDTCP
    2380ETCDTCP
    6443API ServerTCP
    10250RancherTCP
    8472Flannal CNIUDP