项目空间使用与权限

想了解如何加入/创建项目组、添加成员与角色、用项目组控制集群/资源组/挂载/服务代理IP/资源额度时读这篇

平台使用 / 入门与权限
项目空间项目组项目分组projectproject group组成员membercreatordevopsauditor角色role集群cluster资源组

项目空间(项目组)

项目组(数据库表 project,type 为 org)是平台划分权限资源的核心单位。项目组既可用来控制成员能接触的资源和任务流,也可用来把任务调度到指定的集群、资源组、挂载、命名空间,并施加资源额度限制。

平台中“项目空间 / 项目分组 / 项目组”指的是同一概念。

加入项目组

路径:项目空间 -> 项目分组 -> 更多 -> 组成员。如果自己不在需要加入的项目组成员列表中,可以联系项目组的 creator 将自己加入到项目组中。

image

备注:

  • 每个人自动都在 public 项目组中。
  • 管理员可自行创建项目组。

creator 添加用户

路径:项目空间 -> 项目分组 -> 更多 -> 组成员 -> 添加组成员,则 creator 角色的组成员可以添加其他用户进组。

输入图片说明

添加组成员时,可以选择该组成员的角色,控制组成员能接触的资源和 pipeline 等。

输入图片说明

成员角色

平台支持以下成员角色(见 myapp/views/view_team.pyrole 字段的可选值 ['dev', 'ops', 'creator', 'auditor']):

  • creator:项目组创建者/管理者,可以添加、修改、删除其他组成员(可以有多个 creator)。
  • opsdev:普通成员角色。
  • auditor:审计角色。

权限校验逻辑:非管理员只有在自己是该项目组 creator 时,才能新增/编辑/删除组成员(view_team.pycheck_edit_permission)。

项目组控制调度集群 cluster(管理员)

平台支持多 k8s 集群调度。需要管理员先创建集群并配置到系统配置(CLUSTERS)后,可通过项目组扩展参数中的 cluster 字段控制项目组的调度集群。项目组若未配置 cluster,则使用配置项 ENVIRONMENT 对应的默认集群。

image

集群准备、GPU/网络等基础设施配置参见 02-部署安装 段。

项目组控制调度机器资源组(管理员)

平台支持在单集群中划分资源组。需要管理员先配置不同机器所属的资源组(机器 label org=xxx,见 机器资源配置)后,可通过项目组扩展参数中的 org 字段控制项目组的调度机器。

输入图片说明

项目组可以用来划分权限,同时也可以用来划分资源。一台调度机器只能划入一个资源组。

  • 如果单纯通过项目组划分权限、不划分资源,那么一个资源组可以划入多个项目组,调度机器可以是不同项目组、不同机型、不同区域等划分方式,这种方式能提高机器利用率,避免一个项目组不使用时机器空闲。
  • 如果在划分权限的同时划分资源,那么调度机器就只会属于一个项目组。

资源组在底层是通过机器节点的 org label 实现的,调度时项目组会把 org=xxx 加入 node_selector(见 myapp/models/model_team.pynode_selector 属性)。

项目组控制挂载(管理员)

平台支持在单集群中划分挂载。可以配置项目组下成员将自有分布式存储挂载到平台,以及项目组内共享目录等功能,可通过项目组扩展参数中的 volume_mount 字段控制项目组的挂载。

挂载格式为 $名称(类型):$容器内路径,多个挂载用 ,; 分隔。支持的挂载类型有 (pvc)(pvc-share)(hostpath)(storage)(configmap)(memory)(见 myapp/views/view_team.pypre_add_req 校验):

  • (pvc):会自动挂载该 pvc 下对应的个人用户子目录(以用户名为子目录)。默认挂载 kubeflow-user-workspace 的 pvc 到 /mnt。管理员可自行创建 pvc 进行挂载。
  • (pvc-share):挂载 pvc,但自动加用户名子目录,用于多人共享。
  • (hostpath):挂载宿主机目录,不会自动挂载个人子目录,可用来控制多人共享同一个公共目录。
  • (storage):挂载存储资源中已 mount 的分布式存储(按存储名引用)。
  • (configmap)(memory):分别挂载 configmap、内存盘。

pvc 与 hostpath 可以同时存在,实现既有个人子目录又有公共目录。

输入图片说明

示例:

kubeflow-user-workspace(pvc):/mnt/;/data/aidata(hostpath):/aidata

行为细节:即使没有显式配置 /mnt 挂载,平台也会自动补上 kubeflow-user-workspace(pvc):/mnt(见 model_team.pyvolume_mount 属性)。引用 (pvc) / (storage) 时平台会校验对应 pvc / 存储是否存在,不存在会报错。

分布式存储的添加与 mount 见 存储资源配置;存储底层准备参见 02-部署安装 段。

项目组控制服务 service 代理 IP(管理员)

平台支持在单集群中划分服务的代理 IP,多用于边缘集群,或多网关情况下。可通过项目组扩展参数中的 SERVICE_EXTERNAL_IP 字段控制项目组下服务的代理 IP。

格式为 内网ip内网ip|公网ip(例如 xx.内网.xx.xx|xx.公网.xx.xx),见 view_team.pySERVICE_EXTERNAL_IP 字段说明;对应全局默认配置项为 SERVICE_EXTERNAL_IPmyapp/config.py)。

输入图片说明

项目组控制资源额度

平台有三个层面的额度控制:

  1. 个人额度:在“用户列表”中可以设定某个人的额度限制,只要是这个用户启动的任务都会被纳入统计。
  2. 项目组额度:在项目组的扩展参数 quota 中配置,对项目组下所有用户启动的任务总和进行统计。
  3. 项目组下个人额度:在项目组成员(组成员)配置中设置,用于某个人在某个项目组下拥有的可用资源量。

额度填写格式

⚠️ 注意:三个层面的额度填写格式不同。原文档只给出了 4 字段格式,实际上“个人额度(用户列表)”用的是 6 字段格式。依据 myapp/security.py:321myapp/views/view_team.py:116,402 的表单说明,以及 myapp/utils/core.py:2085,2147,2205 的解析逻辑。

  • 个人额度(用户列表,6 字段)$集群名,$资源组名,$命名空间,$资源类型,$限制类型,$限制值

    • $集群名:可为 all 或具体集群名(如 dev)。
    • $资源组名:可为 all 或具体资源组名(如 public)。
    • $命名空间all,jupyter,pipeline,service,automl,aihubnotebook 会被等价处理为 jupyter)。
    • $资源类型cpu,memory,gpu
    • $限制类型single,concurrent
  • 项目组额度 / 项目组下个人额度(4 字段)$命名空间,$资源类型,$限制类型,$限制值

    • $命名空间all,jupyter,pipeline,service,automl,aihub
    • $资源类型cpu,memory,gpu
    • $限制类型single,concurrent

公共说明:

  • $限制类型 中,single 表示单个 pod 占用的资源最大值;concurrent 表示可同时处于运行中的资源最大值。
  • 多个限额配置之间使用分号 ; 分隔(也支持换行分隔)。
  • 管理员不受额度限制(core.pymeet_quota 对 admin 直接放行)。
最后更新 2026-06-30完整文档以官方仓库为准:GitHub Wiki