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 并应用其中定义的
调度策略:
basic 策略,则每个 Pod 使用标准的 Kubernetes 行为独立调度。
分组用作组级标签。gang 策略,则 Pod 进入"全有或全无"调度生命周期。
调度器尝试同时放置组中至少 minCount 个 Pod;
除非达到最小值,否则它们都不会绑定到节点。如果 Pod 引用了不存在的 PodGroup,则该 Pod 保持 Pending 状态。 一旦创建了 PodGroup,调度器会自动重新考虑该 Pod。
无论最终策略是 basic 还是 gang,这都适用,
因为调度器需要 PodGroup 来确定策略。