部署要求
部署要求
硬件
以下内容为FinClip部署的推荐配置清单,通常我们建议主要组件尽可能分散部署,在资源有限且QPS规划考虑内适当合并组件所在节点。
需要注意的是,在很多情况下可以使用客户提供的自有服务,例如:
- 条件允许情况下,存储服务推荐使用 SSD 磁盘;
- 若已有容器镜像仓库,可省略 Harbor/registry;
- 若已有 S3 存储或类似的对象存储服务,且无兼容性冲突,可省略 Minio;
- 若客户已有 Kubernetes,可省略 Kubernetess Master x 3;
- 可根据实际用户数扩缩容。
POC
主要提供给客户验证产品特性、做功能测试,或作为测试环境。
POC 将采用 Docker-Compose 的方式部署,所需的配置可以参考下表▼:
CPU | 内存 | 储存空间 | 服务 |
---|---|---|---|
4 核 | 8 GB | 100 GB | [业务¹]、[基建²] 混合部署 |
角色分配可以参考下图▼:
该配置档的服务器所能承载的 极限³ 指标参见下表▼:
指标 | 数据 |
---|---|
峰值并发 | 3,918 TPS |
- 以上数据供参考,该数据为实验室数据,在真实业务场景中,根据版本更新情况、不同的服务器环境、裸机超售情况、网络延迟、自有中间件性能等不确定因素,实际性能可能会有所不同。
- 完整的测试报告请参考:POC 测试报告.docx
小规模集群
小规模集群的部署架构适合绝大部分客户使用,通常建议用作测试环境,但如果对高可用没有需求,也可用作生产环境。
小规模集群将采用 Kubernetes 的方式部署,所需的配置可以参考下表▼:
CPU | 内存 | 储存空间 | 服务 |
---|---|---|---|
8 核 | 16 GB | 200 GB | [业务¹]、[基建²] 混合部署 |
8 核 | 16 GB | 200 GB | [业务¹]、[基建²] 混合部署 |
8 核 | 16 GB | 200 GB | [业务¹]、[基建²] 混合部署 |
8 核 | 16 GB | 200 GB | [业务¹]、[基建²] 混合部署 |
角色分配可以参考下图▼:
该配置档的服务器所能承载的 极限³ 指标参见下表▼:
指标 | 数据 |
---|---|
峰值并发 | 24,290 TPS |
- 以上数据供参考,该数据为实验室数据,在真实业务场景中,根据版本更新情况、不同的服务器环境、裸机超售情况、网络延迟、自有中间件性能等不确定因素,实际性能可能会有所不同。
- 完整的测试报告请参考:小规模集群测试报告.docx
大规模集群
大规模集群的部署架构适合对并发、灾备等指标有要求的客户使用。该架构的集群设计上主要关注在于故障隔离、故障恢复、可拓展性等方面。
大规模集群的服务器数量没有上限,支持多活、多机房部署,可根据业务规模、灾备要求自定义。相比小规模集群,大规模集群会附带可选的日志系统与监控组件(需要独立占用服务器)。
大规模集群将采用 Kubernetes 的方式部署,所需的配置可以参考下表▼:
CPU | 内存 | 储存空间 | 用途 | 数量 | 角色 |
---|---|---|---|---|---|
8 核 | 16 GB | 300 GB | [业务¹]:微服务容器 | 3 | Kubernetes Worker |
8 核 | 16 GB | 500 GB | [基建²]: 中间件 | 4 | 中间件独占 |
4 核 | 4 GB | 300 GB | [基建²]: 附加组件 | 1 | 附加组件独占 |
4 核 | 4 GB | 100 GB | [业务¹]:微服务网关容器 | 1 | Kubernetes Worker |
—— | —— | ——— | ▼ ———— 选配服务 ———— ▼ | —— | ————————— |
4 核 | 4 GB | 100 GB | [选配]: Rancher 管理面板、网关 | 1 | Kubernetes Master |
8 核 | 16 GB | 500 GB | [选配]: 日志系统、监控系统 | 1 | Kubernetes Worker |
角色分配可以参考下图▼:
该配置档的服务器所能承载的 极限³ 指标参见下表▼:
指标 | 数据 |
---|---|
峰值并发 | 17,988 TPS |
- 以上数据供参考,该数据为实验室数据,在真实业务场景中,根据版本更新情况、不同的服务器环境、裸机超售情况、网络延迟、自有中间件性能等不确定因素,实际性能可能会有所不同。
- 完整的测试报告请参考:大规模集群测试报告.docx
名词说明:
[基建²]: 指 中间件、附加组件、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 CE | 19.03 | Apache License 2.0 |
Kubernetes | 1.18.14 | Apache License 2.0 |
Rancher | 2.4.8 | Apache License 2.0 |
Zookeeper | 3.4.14 | Apache License 2.0 |
Kafka | 2.3.1 | Apache License 2.0 |
MySQL | 8.0.27 | GPL |
Redis | 6.0.9-buster | BSD |
ElasticSearch | 6.8.13 | Apache License 2.0 |
Consul | 1.9.1 | Mozilla Public License 1.1 |
MinIO | 2021-01-08 | GNU Affero GPL |
网络
用于部署 [基建] 标签的服务器,出于数据交换的需要,应优先选择 “端口全部放行” 的规则。如无法满足,请确保服务器对以下端口双向互通。
业务组件需要占用以下端口:
| 端口 | 用途 | 协议 | | ——- | ——————————- | —— | | 3306 | MySQL | TCP | | 8500 | Consul | TCP | | 6379 | Redis | TCP | | 7000 | Redis | TCP | | 7001 | Redis | TCP | | 17000 | Redis Clueter BUS | TCP | | 17001 | Redis Cluster BUS | TCP | | 9000 | MinIO | TCP | | 9092 | Kafka Broker Client | TCP | | 9093 | Kafka External | TCP | | 9200 | ElasticSearch | TCP | | 9300 | ElasticSearch Cluster | TCP | | 9400 | ElasticSearch SSL | TCP | | 2181 | Zookeeper Client | TCP | | 2888 | Zookeeper Cluster | TCP | | 3888 | Zookeeper Cluster | TCP |
以及用于 Prometheus 收集数据的 Exporter 组件:
| 端口 | 用途 | 协议 | | —— | ——————————— | —— | | 9104 | MySQL Exporter | TCP | | 7200 | Redis Exporter | TCP | | 7201 | Redis Exporter | TCP | | 9308 | Kafka Exporter | TCP | | 9114 | ElasticSearch Exporter | TCP | | 9107 | Consul Exporter | TCP |
以及用于 Rancher 组件通信的所需端口:
| 端口 | 用途 | 协议 | | ——- | —————- | ———- | | 2379 | ETCD | TCP | | 2380 | ETCD | TCP | | 6443 | API Server | TCP | | 10250 | Rancher | TCP | | 8472 | Flannal CNI | UDP |