运行 LeaderWorkerSet
本页面展示了如何通过运行 LeaderWorkerSet 来利用 Kueue 的调度和资源管理能力。
我们演示了如何支持调度 LeaderWorkerSet, 其中一组 Pod 构成由工作负载所表示的准入单元。 这允许逐组扩大和缩小 LeaderWorkerSet。
此集成基于普通的 Pod 组集成。
本指南适用于为用户提供服务并对 Kueue 有基本理解的人们。 有关更多信息,请参见 Kueue 概述。
开始之前
学习如何安装 Kueue 并使用自定义管理器配置。
确保你已启用
leaderworkerset.x-k8s.io/leaderworkerset
集成,例如:apiVersion: config.kueue.x-k8s.io/v1beta1 kind: Configuration integrations: frameworks: - "pod" - "leaderworkerset.x-k8s.io/leaderworkerset"
同时,请参见运行普通 Pod 中所述的步骤, 了解如何启用和配置 Pod 集成。
查阅管理集群配额了解初始 Kueue 设置的详细信息。
运行一个由 Kueue 准入的 LeaderWorkerSet
运行 LeaderWorkerSet 时,请考虑以下方面:
a. 队列选择
目标本地队列应在 LeaderWorkerSet 配置的 metadata.labels
部分指定。
metadata:
labels:
kueue.x-k8s.io/queue-name: user-queue
b. 配置资源需求
工作负载的资源需求可以在 spec.template.spec.containers
中配置。
spec:
leaderWorkerTemplate:
leaderTemplate:
spec:
containers:
- resources:
requests:
cpu: "100m"
workerTemplate:
spec:
containers:
- resources:
requests:
cpu: "100m"
c. 扩缩
你可以对 LeaderWorkerSet .spec.replicas
执行扩缩操作。
扩缩的单位是 LWS 组。通过更改 LWS 中的 replicas
数量,
你可以创建或删除整个 Pod 组。
扩容后,新建的 Pod 组会由调度门控挂起,直到相应的工作负载被准入为止。
示例
以下是一个 LeaderWorkerSet 的示例:
apiVersion: leaderworkerset.x-k8s.io/v1
kind: LeaderWorkerSet
metadata:
name: nginx-leaderworkerset
labels:
app: nginx
kueue.x-k8s.io/queue-name: user-queue
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: registry.k8s.io/nginx-slim:0.27
resources:
requests:
cpu: "200m"
ports:
- containerPort: 80
你可以使用以下命令创建 LeaderWorkerSet:
kubectl create -f sample-leaderworkerset.yaml
反馈
这个页面有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.