快速入门
本页面通过一个最小化的 JobSet 演示,帮助你确认 operator 正常工作,并介绍 JobSet 自定义资源中最常用的字段。
前提条件
- 已安装 JobSet Operator,并且
jobset-system中的 controller pod 处于Running状态。参见 安装 JobSet。 - 可访问目标集群的
kubectl。 - 一个用于运行演示的命名空间。下面的示例使用
default命名空间;如有需要,请替换为你的命名空间。
JobSet CR 概览
JobSet CR 中最常用的字段如下:
运行一个简单演示
下面的示例定义了一个包含两个组的 JobSet:
leader:一个 Job,包含一个 pod,用于模拟驱动进程。workers:一个 Job,包含四个并行 pod,用于模拟 worker。
当 leader 和 workers 都完成后,JobSet 即被标记为成功。
将清单保存为 jobset-quickstart.yaml:
应用它:
检查资源
检查 JobSet 是否已被接受,以及是否已创建子 Job:
预期结果:
- 一个名为
jobset-quickstart-leader-0的 Job,包含一个 pod。 - 一个名为
jobset-quickstart-workers-0的 Job,包含四个 pod。 - 一个名为
jobset-quickstart的无头 Service,用于为这些 pod 提供稳定的 DNS 主机名。
例如,跟踪某个 pod 的日志:
验证完成状态
大约 30 秒后,所有 pod 都会完成。确认 JobSet 状态:
成功的 JobSet 会报告一个 type: Completed 且 status: "True" 的条件。子 Job 会报告其 COMPLETIONS 达到已配置的值(leader 为 1/1,workers 为 4/4)。
清理
删除演示资源:
删除 JobSet 会级联删除其子 Job、pod,以及为该工作负载创建的无头 Service。
后续步骤
如需了解更高级的模式,请参阅上游示例和文档:
- JobSet 概念:https://jobset.sigs.k8s.io/docs/concepts/
- 上游示例:https://github.com/kubernetes-sigs/jobset/tree/main/site/static/examples(上游的
examples/是指向此路径的符号链接,因此 GitHub 的树视图仅在实际位置可用) - 成功和失败策略:可配置的成功条件(
Any/All)以及按错误类型进行的失败处理。 - 启动顺序:
spec.startupPolicy.startupPolicyOrder: InOrder强制执行先 leader 后 workers 的启动顺序。 - 独占放置:在 JobSet 上设置
alpha.jobset.sigs.k8s.io/exclusive-topology,可将每个子 Job 的 pod 共同放置在单个拓扑域内。 - Kueue 集成:将 JobSet 与 Alauda Build of Kueue 配对,用于管理批处理工作负载的队列和资源配额。