运行 Deployment
本页面展示了在运行 Deployment 时如何利用 Kueue 的调度和资源管理能力。 虽然 Kueue 尚不支持将 Deployment 作为单个工作负载进行管理, 但仍然可以利用 Kueue 的调度和资源管理能力来管理 Deployment 中的各个 Pod。
我们演示了如何基于 Plain Pod 集成在 Kueue 中支持调度 Deployment, 其中 Deployment 中的每个 Pod 都被表示为一个独立的 Plain Pod。 这种方法允许对 Pod 进行独立的资源管理,从而实现 Deployment 的扩容和缩容。
本指南适用于对 Kueue 有基本了解的服务用户。 更多信息,请参见 Kueue 概述。
开始之前
学习如何使用自定义管理器配置来安装 Kueue。
按照运行 Plain Pod中的步骤学习如何启用和配置
pod
集成。查看管理集群配额了解初始 Kueue 设置的详细信息。
运行由 Kueue 准入的 Deployment
在 Kueue 上运行 Deployment 时,需要考虑以下方面:
a. 队列选择
目标本地队列应在 Deployment 配置的 metadata.labels
部分中指定。
metadata:
labels:
kueue.x-k8s.io/queue-name: user-queue
b. 配置资源需求
工作负载的资源需求可以在 spec.template.spec.containers
中配置。
- resources:
requests:
cpu: 3
c. 扩缩容
您可以对 Deployment 执行扩容或缩容操作。
在缩容时,多余的 Pod 会被删除,配额会被释放。
在扩容时,会创建新的 Pod,这些 Pod 会保持挂起状态,直到相应的工作负载被准入。
如果集群中没有足够的配额,Deployment 可能只运行部分 Pod。
因此,如果您的工作负载对业务至关重要,
您可以考虑通过 ClusterQueue 的 lendingLimit
仅为服务工作负载保留配额。
lendingLimit
允许您快速扩容关键的服务工作负载。
有关 lendingLimit
的更多详细信息,请参见 ClusterQueue 页面。
d. 限制
- Deployment 的范围由
pod
集成的命名空间选择器所默示。不能独立控制 Deployment。
示例
以下是一个示例 Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
kueue.x-k8s.io/queue-name: user-queue
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: registry.k8s.io/nginx-slim:0.27
ports:
- containerPort: 80
resources:
requests:
cpu: "100m"
您可以使用以下命令创建 Deployment:
kubectl create -f sample-deployment.yaml
反馈
这个页面有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.