docs(deploy): 澄清 RabbitMQ 版本与配置边界
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# RabbitMQ 自建生产集群
|
||||
|
||||
本目录用于在客户自己的 Kubernetes 集群中部署 RabbitMQ,不依赖云厂商消息队列服务。模板使用 RabbitMQ 官方 Cluster Operator 管理三节点集群。
|
||||
本目录用于在客户自己的 Kubernetes 集群中部署 RabbitMQ,不依赖云厂商消息队列服务。模板使用 RabbitMQ 官方 Cluster Operator 管理三节点集群。客户已经提供可用 RabbitMQ 时,不需要部署本目录中的资源。
|
||||
|
||||
该组件独立于 EasyAI 主应用的 production overlay,需先部署 RabbitMQ,再把 Operator 生成的连接凭据写入 EasyAI 配置。
|
||||
|
||||
@@ -13,6 +13,18 @@
|
||||
- 新建的普通持久化业务队列默认使用 quorum queue;
|
||||
- Operator 负责 StatefulSet、内部 Service、节点发现和滚动更新,模板额外提供 `maxUnavailable: 1` 的 PodDisruptionBudget。
|
||||
|
||||
## 版本与配置边界
|
||||
|
||||
- `rabbitmq:4.3.2-management` 是本模板的默认镜像,不是 EasyAI 应用的硬性最低版本;
|
||||
- EasyAI 使用标准 AMQP `0-9-1` 能力,不依赖 RabbitMQ `4.3` 专属功能;
|
||||
- 已有 RabbitMQ `3.13.7` 及以上环境可以直接复用,但上线前必须验证队列声明、消息发布和消费、断线重连及故障切换;低于 `3.13.7` 的版本不在当前交付兼容范围内;
|
||||
- RabbitMQ `3.13.x` 已停止社区支持,新建生产环境应选择官方当前处于支持期的版本;
|
||||
- RabbitMQ 服务端参数位于 `rabbitmq-cluster.yaml` 的 `spec.rabbitmq.additionalConfig`,由 Cluster Operator 管理,因此本模板不需要单独的 RabbitMQ ConfigMap。
|
||||
|
||||
RabbitMQ 版本生命周期参考:
|
||||
|
||||
<https://www.rabbitmq.com/release-information>
|
||||
|
||||
## 前提条件
|
||||
|
||||
- Kubernetes 集群至少有 3 个可调度 Worker 节点;
|
||||
@@ -40,7 +52,8 @@ kubectl -n rabbitmq-system rollout status deploy/rabbitmq-cluster-operator --tim
|
||||
1. 将 `CHANGE_ME_RABBITMQ_STORAGE_CLASS` 替换为客户的 RWO StorageClass;
|
||||
2. 根据消息量调整每个节点的 `storage`、CPU 和内存;
|
||||
3. 无法访问 Docker Hub 时,将 `image` 替换为客户私有仓库中的同版本镜像;
|
||||
4. 如果 Worker 节点不足 3 个,先扩容节点,不要删除主机级反亲和规则后直接用于生产。
|
||||
4. 确需修改默认 RabbitMQ 版本时,先核对官方支持周期,并在预发布环境完成兼容验证;已有数据的集群不得直接跨版本替换镜像;
|
||||
5. 如果 Worker 节点不足 3 个,先扩容节点,不要删除主机级反亲和规则后直接用于生产。
|
||||
|
||||
检查占位符并渲染:
|
||||
|
||||
@@ -72,6 +85,8 @@ kubectl -n easyai get pod,svc,pvc,pdb \
|
||||
|
||||
## 配置 EasyAI
|
||||
|
||||
EasyAI 的非敏感连接参数保存在应用 ConfigMap 中,用户名和密码保存在应用 Secret 中。RabbitMQ 服务端配置由 `RabbitmqCluster` 资源管理,不需要另外创建 RabbitMQ ConfigMap。
|
||||
|
||||
Operator 会生成 `easyai-rabbitmq-default-user` Secret。初次连通性验证时可读取该 Secret 中的用户名和密码:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user