跳转到正文

资源模型

了解 RLark 的资源层级,可以帮助你找到应该修改的配置,并判断列表中的状态来自哪一层。

从 Job 找到实际 Worker

text
Workflow
└── Job
    └── Task
        └── 数据面工作负载(Web 控制台创建 StatefulSet)
            └── Pod(控制台显示为 Worker)
  • Workflow 编排多个 Job 模板及其依赖关系。
  • Job 表示一次训练或评测任务,包含 Domain、停止标志和一组 Task 模板。
  • Task 表示一个可调度的执行单元,记录角色、节点选择、工作负载、脚本和存储映射。
  • Pod 由数据面回报,记录实际 Pod 的名称、节点、IP 和阶段。
  • Worker 是控制台中的运行实例视图,通常对应某个 Task 下的 Pod;它不是独立的 RLark CRD。

RLark 根据 Job 模板创建 Task,数据面 Agent 再根据 Task 创建并观察工作负载。因此,Job、Task 和 Pod 的状态会逐层同步,操作后可能短暂不同步。

查询基础资源

下表用于按资源名称查找它在任务中的作用和 API 范围。

资源作用API 范围
Domain为 Job 和 Task 提供跨集群网络域集群级
Node表示数据平面中的计算节点,包含接入形态、可调度性和资源状态命名空间级
Job表示一次任务及其 Task 模板集群级
Task表示单个执行单元及其目标数据平面命名空间级
Pod记录目标集群最近上报的 Pod 状态命名空间级
Workflow表示多个 Job 的 DAG 编排集群级
DomainPeer同步同一 Domain 在一个数据平面中的路由和证书信息,主要由平台组件管理命名空间级
Addon表示安装到数据平面的附加组件命名空间级

控制台中的“集群”汇总了已接入目标环境的信息,不是一个同名 CRD。Node 的命名空间和 cluster-id 等标签用于表示集群归属。

判断 Task 能否运行

Web 控制台创建 Kubernetes Task,并用 StatefulSet 描述各角色的副本。Task 的 agentType 还可以表达 Docker 或 Raw,但控制台没有对应的创建流程。

Task 要成功调度,需要同时满足:

  • Domain 和目标数据平面可用;
  • nodeSelector 能匹配预期节点;
  • 节点为 Online,且未标记为 unschedulable
  • CPU、内存、GPU 等资源请求可以被满足;
  • 镜像、存储和启动脚本能在目标环境中使用。

核对存储路径

对象存储不是 Job 的子资源。控制台会为角色生成 PVC 引用,在 Task 工作负载中保存“PVC 名称到 StorageClass 名称”的映射,再把 PVC 挂载到容器路径。

因此,需要分别确认文件已经上传、StorageClass 已在目标集群创建、PVC 已绑定,以及容器路径可见。参见存储

选择要修改的资源

  • 调整一次任务的角色、资源、脚本和挂载:修改或重新创建 Job。
  • 查看具体副本的节点、IP、日志或终端:进入 Worker 视图。
  • 控制节点是否接收新任务:修改 Node 的可调度状态。
  • 接入新的对象存储:创建或更新存储配置。
  • 编排多个相互依赖的任务:使用 Workflow。

Task、数据面工作负载和 Pod 都由 RLark 持续协调。直接修改这些数据面对象的结果可能被后续协调覆盖;长期配置应通过 Job 或对应的管理入口完成。

本页只说明使用控制台时需要理解的资源关系。要进一步了解控制面、数据面、协调流程和跨集群网络,请查阅源码仓库中的技术架构(简体中文)。维护已部署环境时,请使用与该环境相同的 Git tag 或 commit。