集群部署
适合有独立 GPU/CPU 节点的场景。主节点部署核心服务,Worker 节点通过内网或公网连接。
架构
┌─────────────────────────────────────────┐
│ 主节点 (Main) │
│ ┌─────────┬─────────┬─────────┐ │
│ │ Frontend│ Admin │ Backend │ │
│ └─────────┴─────────┴─────────┘ │
│ ┌─────────┬─────────┬─────────┐ │
│ │PostgreSQL│ Redis │ MinIO │ │
│ └─────────┴─────────┴─────────┘ │
└──────────────────┬──────────────────────┘
│ 内网/公网
┌──────────┴──────────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ GPU Worker │ │ CPU Worker │
│ (训练/推理) │ │ (回退/小模型) │
└───────────────┘ └───────────────┘
主节点部署
# 1. 初始化
radstudioctl prod init --native
# 2. 编辑配置
vim .env
# 3. 启动基础设施
radstudioctl infra up
# 4. 申请 SSL
radstudioctl infra ssl
# 5. 部署应用
radstudioctl prod bootstrap
radstudioctl prod deploy
Worker 节点部署
1. 初始化 Worker
radstudioctl init
2. 编辑配置
vim .env.training
配置项:
# 主节点连接
MAIN_NODE_URL=https://api.your-domain.com
INTERNAL_SERVICE_TOKEN=your_token
# Redis 连接(用于任务队列)
REDIS_HOST=main-node-ip
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
# Worker 配置
WORKER_TYPE=gpu # gpu / cpu
WORKER_CONCURRENCY=1 # 并发任务数
3. 启动 Worker
# GPU Worker
radstudioctl cluster gpu up 1
# CPU Worker
radstudioctl cluster cpu up 1
网络要求
| 端口 | 服务 | 方向 |
|---|---|---|
| 6379 | Redis | Worker → Main |
| 8000 | Backend API | Worker → Main |
| 9000 | MinIO | Worker → Main |
警告
- Redis 端口不应暴露到公网,建议通过 VPN 或内网连接
- 内部服务通信使用
INTERNAL_SERVICE_TOKEN认证
Worker 管理
通过管理后台可以:
- 查看所有 Worker 节点状态
- 远程启用/停用 Worker
- 查看 Worker 资源使用情况
- 分配任务队列