CubeStudio 是一款国产化、云原生的一站式开源人工智能平台,同时覆盖传统机器学习、深度学习与大模型全链路(MLOps / MaaS / 算力调度 / 训推平台),开源协议 MIT,开源免费商用,开源版本已有数千家企业私有化部署。平台提供多租户与算力纳管调度、算力租赁与 Token 中转站、拖拉拽 Pipeline 任务流编排、多机多卡分布式训练、超参搜索、推理服务、vGPU 虚拟化、云边端协同与边缘计算、图文音多模态自动化标注、大模型 SFT 微调 / 奖励模型 / 强化学习训练、vLLM / Ollama / MindIE 大模型多机推理、私有知识库 / LLMOps / 智能体、AI 模型市场,以及从数据到上线的全流程模型部署。原生适配昇腾、寒武纪、海光、摩尔线程、沐曦等国产异构算力与 x86 / ARM CPU 架构,支持 IB / RoCE / RDMA 高速网络及信创私有化、内网离线部署。
官网:https://www.cubestudio.vip | GitHub:https://github.com/data-infra/cube-studio | Gitee:https://gitee.com/data-infra/cube-studio
关键词:CubeStudio、cube-studio、多租户、multi-tenant、ENABLE_MULTI_TENANT、租户隔离、org、组织、租户管理员、系统管理员、is_system、is_admin、数据隔离、项目组隔离、命名空间隔离、ENABLE_SPECIFY_NAMESPACE、SaaS、私有化多组织、AI平台
一套 AI 平台,往往要同时服务多个部门、多个子公司,甚至多个互不信任的客户组织。这时最刚性的需求就是:A 组织完全看不到 B 组织的项目、任务、机器和数据 。CubeStudio 通过一个开关 ENABLE_MULTI_TENANT 把整个平台从「单租户」切成「多租户」------本文讲清它怎么划分租户、开启后谁能看到什么,以及如何启用。
一、开关与默认状态
多租户默认关闭 (ENABLE_MULTI_TENANT=False,install/kubernetes/cube/overlays/config/config.py:692)。关闭时是普通单租户平台;开启后,不同「租户(组织)」之间的数据互相隔离,一套平台干净地给多个组织用。
二、租户靠什么划分:org 组织标识
租户的划分维度是用户的 org(组织标识) 字段------org 相同的用户属于同一租户 (myapp/security.py:65,该字段注释即「相同 org 的用户属于同一租户」)。
org 在「用户列表」里维护。多租户开启后,普通用户的 org 字段在表单中只读 ,默认锁定为自己的 org(security.py:346 _set_org_readonly_web),防止用户自行改组织越权。
三、三级可见范围
多租户开启后,几乎所有业务列表都按同一套规则过滤。每个视图各有一个 *_Filter,逻辑一致(可参考 myapp/views/view_notebook.py:51-54):
| 身份 | 判定 | 能看到 |
|---|---|---|
| 系统管理员 | username=='admin' 或 org=='system' 或 org 为空(is_system(),security.py:150-158) |
全部租户的数据 |
| 租户管理员 | 该租户内的 admin 角色(is_admin()) |
**本租户(同 org)**的数据 |
| 普通用户 | 其余 | 主要是自己的数据(叠加项目组/责任人等既有权限) |
一句话概括这套模型:org='system' 或用户名 admin 是跨租户的「超级管理员」;每个租户内再各设自己的 admin 作为「租户管理员」;普通用户只见自己。
四、隔离覆盖多广
多租户过滤不是只管几个页面,而是覆盖几乎所有资源视图------myapp/views/ 下约 30 个 view_*.py 都引用了 ENABLE_MULTI_TENANT,包括:
- 算力与存储:机器/节点资源、存储资源、整体资源、账单
- 开发与训练:Notebook、任务流/任务、模型、数据集/维表/库表、镜像
- 服务与协作:推理服务/内部服务、消息、项目组
每个模块的过滤细节对应各自 view_*.py 里的 *_Filter 类------也就是说隔离是「全平台级」的,而不是打补丁式的局部限制。
五、启用四步
- 在配置文件设
ENABLE_MULTI_TENANT=True。 - 给各用户设置
org(同组织同值);跨租户的超级管理员用admin账号,或把org设为system。 - 每个租户内指定该租户的 admin 角色用户作为租户管理员。
- 重启后端生效。
想要更强隔离? 项目组专属命名空间
ENABLE_SPECIFY_NAMESPACE(config.py:710)可与多租户配合,把隔离下沉到 K8s 命名空间级------不同租户的 Pod 在 K8s 层面也彼此隔离,适合合规要求更高的私有化多组织场景。
小结
CubeStudio 的多租户模型简洁而彻底:一个开关 ENABLE_MULTI_TENANT 、一个维度 org 组织 、三级身份(系统管理员 / 租户管理员 / 普通用户) ,配合全平台约 30 个视图统一的 *_Filter 过滤,再叠加命名空间级隔离,就能让一套平台安全地承载多个互不可见的组织。这也是 CubeStudio 能同时做私有化多组织与 SaaS 化交付的底座。
了解更多
CubeStudio 采用 MIT 开源协议,开源免费商用并支持源码交付与二次分发,开源版本已有数千家企业私有化部署。
- 官网与在线文档:https://www.cubestudio.vip
- 开源仓库(GitHub):https://github.com/data-infra/cube-studio
- 开源仓库(Gitee):https://gitee.com/data-infra/cube-studio