调度组
特性状态:
Kubernetes v1.35 [alpha](默认禁用)你可以将 Pod 链接到 PodGroup, 以表明该 Pod 属于一组一起调度的 Pod。 这使得调度器能够应用组级策略(如 gang 调度),而不是将每个 Pod 独立对待。
指定调度组
当启用 GenericWorkload
特性门控时,
你可以在 Pod 清单中设置 spec.schedulingGroup 字段。
此字段通过名称建立到同一名字空间中特定 PodGroup 对象的链接。
apiVersion: v1
kind: Pod
metadata:
name: worker-0
namespace: some-ns
spec:
schedulingGroup:
podGroupName: training-worker-0
containers:
- name: ml-worker
image: training:v1
schedulingGroup 字段是不可变的。设置后,Pod 无法移动到不同的 PodGroup。
行为
当你设置 spec.schedulingGroup 时,调度器会查找引用的
PodGroup 并应用其中定义的
调度策略:
- 如果 PodGroup 使用
basic策略,则每个Pod使用标准的 Kubernetes 行为独立调度。 分组用作组级标签。
- 如果 PodGroup 使用
gang策略,则 Pod 进入"全有或全无"调度生命周期。 调度器尝试同时放置组中至少minCount个 Pod; 除非达到最小值,否则它们都不会绑定到节点。
缺少 PodGroup 引用
如果 Pod 引用了不存在的 PodGroup,则该 Pod 保持 Pending 状态。 一旦创建了 PodGroup,调度器会自动重新考虑该 Pod。
无论最终策略是 basic 还是 gang,这都适用,
因为调度器需要 PodGroup 来确定策略。
接下来
- 了解 PodGroup API 及其生命周期。
- 阅读 PodGroup 调度策略。
- 理解 Gang 调度算法。