GeniSpace 独立部署弹性伸缩能力
本文档详细介绍 GeniSpace 独立部署版本的弹性伸缩能力,帮助企业客户了解平台的架构设计和扩展策略。
概述
GeniSpace 采用现代化的微服务架构设计,基于 Kubernetes 集群部署,提供了卓越的高可用性和高可扩展性。平台的各个核心服务均支持独立的垂直扩展和水平扩展,能够根据业务需求灵活调整资源配置。
版本说明
GeniSpace 提供三个版本:
| 版本 | 说明 |
|---|---|
| 独立部署版 | 企业私有化部署,本文档主要介绍此版本 |
| 国际版 | 云端 SaaS 服务(国际区域) |
| 中国版 | 云端 SaaS 服务(中国区域) |
弹性伸缩能力概要(对应培训资料)
GeniSpace 独立部署版本通过微服务架构和 Kubernetes 原生特性,提供如下能力:
- 水平扩展:所有服务支持通过增加副本数进行水平扩展
- 垂直扩展:通过调整资源配置(CPU、内存等)进行垂直扩展
- 自动扩展:支持配置 HPA(Horizontal Pod Autoscaler)实现自动弹性伸缩
- 高可用:通过多副本部署和健康检查确保服务高可用
- 无限扩展:通过 Scheduler + Worker 架构实现任务执行能力的无限扩展
任务执行层:Worker、Scheduler
核心服务层:API、Agent、Dataset、MCP Server
如需了解独立部署版本的详细信息或进行采购咨询,请联系我们的销售团队:https://www.genispace.cn/contact
平台架构
微服务组件
GeniSpace 平台由多个独立的微服务组成,每个服务都可以根据负载需求进行独立扩展:
┌─────────────────────────────────────────────────────────────────┐
│ 前端服务层 │
│ ┌─────────┐ ┌─────────┐ ┌───────────┐ ┌─────────┐ │
│ │ Web │ │ Console │ │ Workbench │ │ Admin │ ... │
│ └─────────┘ └─────────┘ └───────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 核心服务层 │
│ ┌─────────┐ ┌─────────┐ ┌───────────┐ ┌────────────┐ │
│ │ API │ │ Agent │ │ Dataset │ │ MCP Server │ │
│ └─────────┘ └─────────┘ └───────────┘ └────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 任务执行层 │
│ ┌───────────┐ ┌────────┐ ┌─────────────────────────────┐ │
│ │ Scheduler │ │ Worker │ │ Operators (NJS/Enterprise) │ │
│ └───────────┘ └────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 基础设施层 │
│ ┌──────────┐ ┌──────────┐ │
│ │ Redis │ │ RabbitMQ │ │
│ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────┘
核心服务说明
| 服务 | 描述 | 默认副本数 | 扩展建议 |
|---|---|---|---|
| API | 核心后端 API 服务 | 1 | 根据 API 请求量扩展 |
| Agent | AI 智能体服务,提供常驻进程 | 1-3 | 根据并发智能体数量扩展 |
| Dataset | 数据集管理服务 | 1 | 根据数据处理需求扩展 |
| MCP Server | MCP 工具调用服务 | 1 | 根据 MCP 调用频率扩展 |
| Worker | 任务执行工作节点 | 10 | 根据任务队列深度动态扩展 |
| Scheduler | 任务调度服务 | 2 | 高可用部署,建议 2+ 副本 |
任务执行层弹性伸缩
Worker - 强大的任务执行引擎
Worker 是 GeniSpace 平台的核心任务执行组件,提供了强大的任务处理能力。
工作模式
Worker 运行在 HTTP 模式下,作为常驻进程提供以下能力:
- 调试支持:为开发人员提供实时调试环境
- MCP 工具调用:支持智能体的 MCP (Model Context Protocol) 工具调用
- 任务执行:处理工作流中的各类任务节点
资源配置示例
# Worker 资源配置
resources:
requests:
cpu: 100m # 基础 CPU 请求
memory: 128Mi # 基础内存请求
limits:
cpu: 1000m # CPU 上限,支持突发性能
memory: 1Gi # 内存上限
水平扩展策略
Worker 支持灵活的水平扩展,可以根据任务队列深度自动或手动扩展副本数:
# 副本数配置
spec:
replicas: 10 # 可根据需求调整
扩展建议:
- 小型部署(< 100 并发任务):5-10 个副本
- 中型部署(100-500 并发任务):10-20 个副本
- 大型部署(> 500 并发任务):20+ 个副本,建议配合 HPA
Scheduler - 无限扩展的任务调度
Scheduler 是任务调度的核心组件,负责管理和分发任务到 Worker 节点。
核心特性
- 分布式锁:使用 Redis 实现分布式锁,确保任务不会重复执行
- 高可用设计:支持多副本部署,自动故障转移
- 健康检查:内置健康检查端点,确保服务可用性
# Scheduler 健康检查配置
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
无限扩展能力
通过 Scheduler + Worker 的架构设计,GeniSpace 实现了任务执行能力的无限扩展:
- Scheduler 负责任务调度和分发
- Worker 负责任务执行
- 通过增加 Worker 副本数,可以线性提升任务处理能力
核心服务弹性伸缩
API 服务
API 服务是平台的核心后端服务,处理所有的 API 请求。
垂直扩展配置
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 1000m # 生产环境允许更高的突发性能
memory: 1Gi
水平扩展
根据 API 请求量,可以增加 API 服务的副本数:
spec:
replicas: 3 # 高流量场景建议 3+ 副本
Agent 服务
Agent 服务提供 AI 智能体的运行环境,是 AI 能力的核心载体。
资源配置
由于 AI 服务的计算密集型特点,Agent 服务需要更高的资源配置:
resources:
requests:
cpu: 200m # AI 服务需要更多 CPU
memory: 256Mi
limits:
cpu: 2000m # AI 任务可能需要大量 CPU
memory: 2Gi
扩展策略
- 常驻进程:Agent 作为常驻进程运行,提供实时的 AI 服务能力
- MCP 工具调用:与 MCP Server 配合,支持智能体调用各类工具
- 水平扩展:可根据并发智能体数量增加副本
Dataset 服务
Dataset 服务负责数据集的管理和处理。
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
MCP Server
MCP Server 提供 Model Context Protocol 的服务端实现,支持智能体调用外部工具。
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
Kubernetes 部署策略
滚动更新策略
所有服务都配置了滚动更新策略,确保更新过程中服务不中断:
strategy:
rollingUpdate:
maxSurge: 1 # 更新时最多额外创建 1 个 Pod
maxUnavailable: 0 # 更新时不允许 Pod 不可用
type: RollingUpdate
资源配置最佳实践
GKE Autopilot Bursting 特性
如果您使用 GKE Autopilot,可以利用 Bursting 特性优化成本:
- 策略:设置较低的
requests(节省成本),合理的limits(确保性能) - 最小值:requests CPU 50m, Memory 52Mi
资源配置分层
| 服务类型 | CPU Requests | CPU Limits | Memory Requests | Memory Limits |
|---|---|---|---|---|
| 前端服务 | 50m | 500m | 64Mi | 512Mi |
| 核心服务 | 100m | 1000m | 128Mi | 1Gi |
| AI 服务 | 200m | 2000m | 256Mi | 2Gi |
配置管理
使用 Kustomize 进行环境差异化配置:
cicd/apps/genispace/
├── base/ # 基础配置
│ ├── deployment/ # 部署配置
│ ├── service/ # 服务配置
│ └── config/ # ConfigMap 配置
└── overlays/ # 环境覆盖层
└── global/
├── prod/ # 生产环境
│ ├── patches/ # 环境特定补丁
│ └── config/ # 环境配置
└── test/ # 测试环境
高可用配置
多副本部署
关键服务建议配置多副本以实现高可用:
| 服务 | 最低副本数 | 推荐副本数 |
|---|---|---|
| API | 1 | 2-3 |
| Agent | 1 | 2-3 |
| Scheduler | 2 | 2-3 |
| Worker | 5 | 10+ |
健康检查
所有服务都支持 Kubernetes 原生的健康检查机制:
- Liveness Probe:检测服务是否存活
- Readiness Probe:检测服务是否就绪
扩展操作指南
手动扩展
使用 kubectl 命令手动扩展服务副本数:
# 扩展 Worker 到 20 个副本
kubectl scale deployment worker --replicas=20 -n genispace
# 扩展 API 到 3 个副本
kubectl scale deployment api --replicas=3 -n genispace
通过 Kustomize 配置扩展
修改 overlays/<environment>/patches/deployment-replicas.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: worker
spec:
replicas: 20 # 修改为所需副本数
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: agent
spec:
replicas: 5 # 修改为所需副本数
配置 HPA(水平自动伸缩)
可以配置 HPA 实现基于资源使用率的自动扩展:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: worker-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: worker
minReplicas: 5
maxReplicas: 50
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
监控与运维
关键监控指标
| 指标类型 | 监控对象 | 告警阈值建议 |
|---|---|---|
| CPU 使用率 | 所有服务 | > 80% |
| 内存使用率 | 所有服务 | > 85% |
| 任务队列深度 | Scheduler/Worker | > 1000 |
| 请求延迟 | API/Agent | P99 > 2s |
| 错误率 | 所有服务 | > 1% |
日志与追踪
GeniSpace 支持与主流可观测性工具集成:
- 日志收集:支持 Fluentd、Fluent Bit
- 指标监控:支持 Prometheus、Grafana
- 链路追踪:支持 Phoenix(内置)
总结
GeniSpace 独立部署版本通过微服务架构和 Kubernetes 原生特性,提供了强大的弹性伸缩能力:
- 水平扩展:所有服务支持通过增加副本数进行水平扩展
- 垂直扩展:可以通过调整资源配置进行垂直扩展
- 自动扩展:支持配置 HPA 实现自动弹性伸缩
- 高可用:通过多副本部署和健康检查确保服务高可用
- 无限扩展:通过 Scheduler + Worker 架构实现任务执行能力的无限扩展
如需了解更多关于独立部署版本的信息,或需要专业的部署支持,请联系我们: