运行包装过的自定义工作负载
使用 AppWrapper 在 Kueue 上运行自定义工作负载。
本页面展示了如何使用 AppWrapper
使 Kueue 的调度和资源管理能力可用于没有专用 Kueue 集成的工作负载类型。
对于在其定义中使用 PodSpecTemplates
的工作负载,这提供了一种比构建自定义集成
更简便的方法来启用与自定义工作负载类型一起使用 Kueue。
本指南适用于对 Kueue 有基本了解的批处理用户。 欲了解更多信息,请参阅Kueue 概述。
开始之前
确保你正在使用 Kueue v0.11.0 版本或更新版本以及 AppWrapper v1.0.2 或更新版本。
遵循运行 AppWrapper 中的步骤学习如何启用和配置
workload.codeflare.dev/appwrapper
集成。
使用 LeaderWorkerSet 作为自定义工作负载的示例
我们使用 LeaderWorkerSet 为例,来解释如何在 AppWrapper 内运行自定义类型的工作负载。
按照安装 说明进行 LeaderWorkerSet 的安装。
编辑
appwrapper-manager-role
ClusterRole
,添加以下片段以允许 Appwrapper 控制器操作 LeaderWorketSet。
- apiGroups:
- leaderworkerset.x-k8s.io
resources:
- leaderworkersets
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- 包含 LeaderWorkerSet 的 AppWrapper 如下所示。
特别注意
podSets
数组的每个元素的replicas
和path
如何对应于template
中的PodSpecTemplate
和副本计数。 这为 AppWrapper 控制器提供了足够的信息,使其能够“理解”被包裹的资源, 并提供 Kueue 管理该资源所需的信息。
apiVersion: workload.codeflare.dev/v1beta2
kind: AppWrapper
metadata:
name: sample-appwrapper-lws
labels:
kueue.x-k8s.io/queue-name: user-queue
spec:
components:
- podSets:
- path: "template.spec.leaderWorkerTemplate.leaderTemplate"
replicas: 2
- path: "template.spec.leaderWorkerTemplate.workerTemplate"
replicas: 3
template:
apiVersion: leaderworkerset.x-k8s.io/v1
kind: LeaderWorkerSet
metadata:
name: nginx-leaderworkerset
labels:
app: nginx
spec:
replicas: 2
leaderWorkerTemplate:
leaderTemplate:
spec:
containers:
- name: nginx-leader
image: registry.k8s.io/nginx-slim:0.27
resources:
requests:
cpu: "100m"
ports:
- containerPort: 80
size: 3
workerTemplate:
spec:
containers:
- name: nginx-worker
image: nginx:1.14.2
resources:
requests:
cpu: "200m"
ports:
- containerPort: 80
反馈
这个页面有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.