平台组件化运维指南
概述
本文专为 Rainbond 平台管理员设计,通过解析平台核心组件的功能、依赖关系及故障映射逻辑,建立 “问题 - 组件 - 排查” 的标准化流程。文档按组件分类,详细说明职责、常见故障场景、排查步骤及官方文档索引,帮助管理员快速定位故障源头,提升运维效率。
Rainbond 组件架构
核心组件职责与问题排查指南
1. 控制台组件(rbd-app-ui)
组件职责
- 唯一交互入口:提供 Web 界面,处理用户创建应用、查看日志等操作。
- 状态同步:通过
rbd-api同步集群状态,依赖rbd-gateway的 WebSocket 端口(6060)实现日志推送、Web 终端等实时功能。 - 依赖链:
rbd-app-ui→rbd-api(数据交互)→rbd-gateway(网络通信)
常见问题场景
| 问题现象 | 可能原因 | 核心关联组件 |
|---|---|---|
| 控制台无法登录 / 空白 | 组件崩溃、rbd-api 通信中断、前端资源缺失 | rbd-app-ui、rbd-api |
| 操作无响应 / 数据不同步 | WebSocket 断开、API 接口超时 | rbd-gateway、rbd-api |
排查思路
-
组件状态检查
# 确保状态为 Running
kubectl get pod -l name=rbd-app-ui -n rbd-system
# 查看前端报错(如资源 404、接口 500)# 查看控制台日志
# 页面查看日志:平台管理 -> 日志 -> 控制台日志
# 命令行查看:
kubectl exec -it rbd-app-ui-xxx -n rbd-system -- bash
cat /app/logs/goodrain.log -
通信链路验证
- API 连通性:通过
curl -k https://<集群IP>:8443/apidocs测试rbd-api接口,返回 200 表示正常。 - WebSocket 配置:确认 平台管理 → 集群 → 编辑 中 WebSocket 地址为
ws://IP/域名:6060(HTTP)或wss://域名:6060(HTTPS)。
- API 连通性:通过
2. 集群核心 API 服务(rbd-api)
组件职责
- 管理中枢:接收
rbd-app-ui的操作指令,调用rbd-worker处理组件生命周期,存储元数据至rbd-db。 - 依赖链:
rbd-api→rbd-db(数据库连接)→Kubernetes(集群资源查询)
常见问题场景
| 问题现象 | 可能原因 | 核心关联组件 |
|---|---|---|
| 集群状态无法同步 | rbd-api 崩溃、数据库连接失败 | rbd-api、rbd-db |
| 控制台提示 “通信异常” | 证书不匹配、K8S API Server 端口不通 | rbd-api、Kubernetes |
排查思路
-
服务状态与日志
kubectl get pod -l name=rbd-api -n rbd-system # 确保 Ready: 1/1
kubectl logs -f -l name=rbd-api -n rbd-system # 重点排查数据库连接、证书错误 -
依赖检查
- 数据库连接:通过
kubectl describe pod rbd-api查看启动参数,确认--mysql配置正确。 - 证书匹配:对比
region-configConfigMap 与控制台集群配置(见 集群通信异常文档)。
- 数据库连接:通过
对应文档
3. 应用构建服务(rbd-chaos)
组件职责
- 构建引擎:基于 BuildKit 处理源码构建、镜像打包,依赖
rbd-hub存储镜像,调用Kubernetes创建构建 Job。 - 依赖链:
rbd-chaos→代码源(Git/SVN)→rbd-hub(镜像存储)→Kubernetes(构建任务)
常见问题场景
| 问题现象 | 可能原因 | 核心关联组件 |
|---|---|---|
| 源码构建卡住 | 代码拉取失败、BuildKit 配置错误 | rbd-chaos、代码源 |
| 镜像推送失败 | 私有仓库认证错误、rbd-hub 服务异常 | rbd-chaos、rbd-hub |
排查思路
-
构建任务状态
kubectl get pod -n rbd-system -l job=codebuild # 检查构建 Job 是否成功 -
配置验证
- 私有仓库:检查
registries.yaml(Containerd 配置)或goodrain.meConfigMap(BuildKit 认证)。 - 镜像加速:确认
docker.io镜像加速地址已添加至registries.yaml。
- 私有仓库:检查
对应文档
4. 全局网关服务(rbd-gateway)
组件职责
- 流量中枢:基于 APISIX 提供域名解析、负载均衡,转发 HTTP/HTTPS 请求至后端组件,依赖
Kubernetes服务发现。 - 依赖链:
rbd-gateway→Kubernetes(服务端点查询)→ 后端组件(如rbd-app-ui、用户应用)
常见问题场景
| 问题现象 | 可能原因 | 核心关联组件 |
|---|---|---|
| 域名访问返回 502/503 | 后端组件未就绪、网关配置错误 | rbd-gateway、后端组件 |
| WebSocket 功能失效 | 6060 端口未开放、域名与证书不匹配 | rbd-gateway、rbd-app-ui |
排查思路
-
网关组件状态
kubectl get pod -l name=rbd-gateway -n rbd-system # 确保Running# 查看日志
# 页面查看日志:平台管理 -> 日志 -> 网关日志
# 命令行查看:
kubectl logs -f -l name=rbd-gateway -n rbd-system -c apisix
# 搜索 `upstream timeout`、`connection refused` 等关键词 -
配置检查
- 域名绑定:确认 应用视图 → 网关管理 中域名已正确绑定组件。
- WebSocket 端口:检查 6060 端口是否开放,且 WebSocket 地址配置为
ws://IP/域名:6060。
对应文档
5. 数据库服务(rbd-db)
组件职责
- 数据基石:存储平台元数据(
console控制台数据、region集群数据),支持内置 MySQL 或外部数据库迁移。 - 依赖链:
rbd-db→ 本地存储(数据持久化)→rbd-api(数据读写)
常见问题场景
| 问题现象 | 可能原因 | 核心关联组件 |
|---|---|---|
| 数据丢失 / 不一致 | 数据库连接错误、迁移配置错误 | rbd-db、rbd-api |
| 组件启动失败 | 密码错误、端口被占用 | rbd-db、本地存储 |
排查 思路
-
服务状态
kubectl get pod -l name=rbd-db -n rbd-system # StatefulSet 确保 Pod 有序启动
kubectl exec -it rbd-db-0 -n rbd-system -- mysql -p # 验证数据库登录(默认密码通过 env | grep MYSQL 查看)