跳到主要内容

Policies

Policy 是“命名的环境配置档”,用于定义 terminal 容器应该长什么样:镜像、资源限制、存储、环境变量和空闲超时等。它让你可以在同一个 orchestrator 下,为不同团队提供不同终端环境。

例如,你可以给数据团队一个 data-science policy:大镜像、4 核 CPU、16 GiB 内存;同时给开发团队一个更轻量的 development policy。

Policy 如何工作

  1. 管理员先在 orchestrator 上创建 policy
  2. 再在 OPL 数据空间中创建 terminal connection,并填写 policy_id
  3. 用户打开 terminal 时,请求会走 /p/{policy_id}/...
  4. orchestrator 会按该 policy 启动或复用容器

每位用户在每个 policy 下都有自己的独立容器。

常见字段

字段类型说明
imagestring要运行的容器镜像
cpu_limitstringCPU 上限
memory_limitstring内存上限
storagestring持久化存储容量
storage_modestring存储模式,如 per-usershared
envobject注入到容器内的环境变量
idle_timeout_minutesinteger空闲多久后回收容器

存储模式

模式行为
per-user每位用户独立 PVC
shared所有人共享同一 PVC,但按子目录隔离
shared-rwo在 RWO 场景下共享单个 PVC,并通过调度确保落到同一节点

环境变量

env 可以用来:

  • 注入 API key
  • 配置 OPEN_TERMINAL_ALLOWED_DOMAINS 等安全限制
  • 注入你的镜像所需自定义配置
注意

Policy 里的环境变量对 terminal 用户本身是可见的,因此不要把“不该让用户看到”的秘密直接写进去。

管理 Policy

Policy 通常通过 OPL 数据空间的 设置 → 外部连接 → Open Terminal 来管理。你可以创建、编辑、删除 policy,并把它们分配给不同连接,再结合 group access 控制谁能看到哪种 terminal。

信息

修改 policy 不会影响已经在运行的容器。新配置会在下一次新建或重建该用户容器时生效。

全局资源上限

平台管理员还可以在 orchestrator 上设置全局上限,例如:

  • TERMINALS_MAX_CPU
  • TERMINALS_MAX_MEMORY
  • TERMINALS_MAX_STORAGE
  • TERMINALS_ALLOWED_IMAGES

这些限制会对 policy 请求值做裁剪或校验,防止团队自定义 policy 时申请过多资源。

默认 policy

如果你一个 policy 也不创建,orchestrator 仍然可以依赖自己的全局环境变量工作,这就是“隐式默认 policy”。
如果后来你显式创建了一个 default policy,它会在全局设置之上继续覆盖。

API Reference

orchestrator 提供 /api/v1/policies 相关接口,可用于程序化管理 policies,包括:

  • GET /policies
  • POST /policies
  • GET /policies/{policy_id}
  • PUT /policies/{policy_id}
  • DELETE /policies/{policy_id}

示例:多团队部署

一个公司可以为不同团队建立不同 policies,例如:

  • engineering
  • data-science
  • intern

然后在 OPL 数据空间里创建 3 个 terminal connection,分别挂到这些 policy 上,再用 access grants 限制不同 group 的可见范围。