From d6ef8b0a236574c71d710356ec4a21f67dc7996d Mon Sep 17 00:00:00 2001 From: chengcheng Date: Thu, 16 Jul 2026 17:29:08 +0800 Subject: [PATCH] =?UTF-8?q?docs(deploy):=20=E8=A1=A5=E5=85=85=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E4=BE=9D=E8=B5=96=E8=A7=84=E6=A0=BC=E4=B8=8E=E5=AE=B9?= =?UTF-8?q?=E9=87=8F=E5=9F=BA=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 36 +++++++++++++++++++++++++++ k8s/addons/rabbitmq-cluster/README.md | 14 +++++++++++ 2 files changed, 50 insertions(+) diff --git a/README.md b/README.md index f9f4ed2..5d20072 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,42 @@ kubectl get storageclass | RWX 共享存储 | 与 Kubernetes 集群版本兼容的 CSI/存储插件 | 上传、备份、恢复文件共享 | 支持 `ReadWriteMany` 的 StorageClass | | OSS/S3 对象存储 | 兼容 AWS S3 Signature V4 或云厂商 OSS/S3 当前 API,可选 | 文件存储,可选 | Endpoint、Bucket、Access Key | +#### 生产初始规格与容量基线 + +客户尚未提供业务容量数据时,可先按下表准备生产环境。表中的 CPU、内存和磁盘均为**单个数据节点**的规格,标注“当前模板”的项目与仓库 YAML 一致;标注“规划参考”的外部依赖需根据实际业务量和压测结果调整。本表用于资源准备和首次上线,不代表固定性能或容量承诺。 + +| 依赖 | 建议生产拓扑 | 单节点初始规格 | 初始存储容量 | 备注 | +| --- | --- | --- | --- | --- | +| MongoDB | 云服务高可用版,或 3 个数据节点的副本集 | `4 vCPU / 16Gi` | 每节点 `200Gi` SSD | 规划参考;数据盘不包含备份和快照空间 | +| Redis | 云服务高可用版,或主节点 + 2 个副本并配套 Sentinel | `2 vCPU / 4Gi` | 每节点 `20Gi` SSD,建议 `maxmemory` 初始设为 `2Gi` | 规划参考;必须支持多个逻辑 DB 和 `SELECT`,当前不支持 Redis Cluster 模式 | +| RabbitMQ | 3 节点集群,持久化业务队列使用 quorum queue | 请求 `1 vCPU / 2Gi`,上限 `2 vCPU / 2Gi` | 每节点 `50Gi` RWO SSD,总计 `150Gi` | 当前自建模板实际值;高吞吐或大消息场景需压测后增加内存和磁盘 | +| PostgreSQL + pgvector | 云服务高可用版,或 1 主 1 备 | `4 vCPU / 16Gi` | 每节点 `200Gi` SSD | 规划参考;可在同一实例创建 `agent_governance` 和 `easyai_memory` 两个数据库 | +| RWX 共享存储 | 支持高可用和在线扩容的 RWX 存储 | 由存储服务决定 | 初始总容量 `100Gi` | 当前生产 PVC 实际值;不包含独立备份空间 | +| OSS/S3 对象存储 | 云厂商托管对象存储 | 由对象存储服务决定 | 按量使用,无需预分配固定容量 | 可选;建议配置生命周期和历史文件清理策略 | + +最终容量应根据客户业务数据计算: + +```text +初始可用容量 >=(现有数据量 + 日增量 × 在线保留天数)× 1.5 +``` + +其中 `1.5` 用于预留索引、临时文件、数据增长和运维空间。数据盘使用率达到 `70%` 时告警,达到 `80%` 前完成扩容;备份、快照和跨区域副本应单独计算,不占用上表的数据盘容量。 + +上线前请客户补充以下信息,以便把初始参考规格调整为最终规格: + +- 峰值并发用户数和同时运行的任务数; +- 每日任务量、峰值队列积压量及单条消息大小; +- 现有数据库大小、每日数据增量和在线保留天数; +- 每日上传文件量、平均文件大小和文件保留周期; +- 备份周期、保留份数以及 RPO/RTO 要求。 + +本地验证环境中的依赖为单节点和临时 `emptyDir` 存储,只用于功能验证,不能作为生产规格。MongoDB、Redis 和 PostgreSQL 的资源规划可参考官方生产说明: + +- [MongoDB Production Notes](https://www.mongodb.com/docs/manual/administration/production-notes/) +- [Redis Administration](https://redis.io/docs/latest/operate/oss_and_stack/management/admin/) +- [PostgreSQL Resource Consumption](https://www.postgresql.org/docs/current/runtime-config-resource.html) +- [RabbitMQ Quorum Queues](https://www.rabbitmq.com/docs/quorum-queues) + #### Redis 逻辑 DB 配置 Redis 地址、端口和逻辑 DB 编号统一配置在: diff --git a/k8s/addons/rabbitmq-cluster/README.md b/k8s/addons/rabbitmq-cluster/README.md index 017ce34..6511637 100644 --- a/k8s/addons/rabbitmq-cluster/README.md +++ b/k8s/addons/rabbitmq-cluster/README.md @@ -25,6 +25,20 @@ RabbitMQ 版本生命周期参考: +## 默认资源规格与容量 + +当前自建模板的默认生产规格如下,CPU、内存和磁盘均为单个 RabbitMQ 节点的配置: + +| 项目 | 单节点规格 | 3 节点合计 | 说明 | +| --- | --- | --- | --- | +| CPU | 请求 `1 vCPU`,上限 `2 vCPU` | 请求 `3 vCPU`,上限 `6 vCPU` | 当前 `rabbitmq-cluster.yaml` 实际值 | +| 内存 | 请求和上限均为 `2Gi` | 请求和上限均为 `6Gi` | 当前模板基线;高吞吐或大消息场景需压测后增加 | +| 持久化存储 | `50Gi` RWO SSD | `150Gi` | 每个节点使用独立 PVC,不包含备份和快照空间 | + +以上规格是业务容量数据缺失时的首次上线基线,不代表固定性能或容量承诺。最终容量应按消息峰值、队列最大积压量、单条消息大小和保留时间确定,并在预发布环境完成压力测试。 + +持久化存储使用率达到 `70%` 时应告警,达到 `80%` 前完成 PVC 扩容。PVC 仅用于节点数据持久化,definitions 导出、存储快照和异地备份容量需要单独准备。生产环境优先使用低延迟 SSD,具体磁盘和内存规划可参考 RabbitMQ 官方 [Quorum Queues](https://www.rabbitmq.com/docs/quorum-queues) 说明。 + ## 前提条件 - Kubernetes 集群至少有 3 个可调度 Worker 节点;