To use this feature, you (or a cluster administrator) will need to enable the GenericWorkload feature gate for all relevant components in your cluster.
See Enable Or Disable Feature Gates for more information.
你可以将 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 来确定策略。