Kubernetes v1.36:推进工作负载感知调度 笔记

Kubernetes v1.36:推进工作负载感知调度

Kubernetes v1.35 引入了感知工作负载的调度改进,包括 Workload API 以及针对相同 Pod 的基础 Gang 调度。Kubernetes v1.36 通过分离 Workload API(静态模板)与新的 PodGroup API(运行时状态)来优化该架构。这种分离简化了 kube-scheduler,使其能够直接读取 PodGroup 信息以提升性能。新的 PodGroup 调度周期支持工作负载的原子化处理,将整个组作为统一操作进行评估,以防止死锁。若找到有效放置方案且满足组约束,则 Pod 将被绑定在一起;否则,整个组将被视为不可调度,稍后重试。这构成了 Gang 调度的基础,确保严格工作负载需求的全有或全无放置。v1.36 中的感知拓扑调度允许在 PodGroup 上定义拓扑约束,将 Pod 共置于特定的物理或逻辑域内,以降低网络延迟。这涉及基于调度约束生成、评估和评分候选放置方案。引入了感知工作负载的抢占功能,以支持 PodGroup 调度周期,可同时从多个节点抢占 Pod,为整个 PodGroup 腾出空间。它将 PodGroup 视为单个抢占单元,PodGroup 的 priority 和 disruptionMode 字段控制抢占行为。最后,v1.36 将动态资源分配(DRA)与 Workload API 集成,允许 PodGroup 通过 ResourceClaims 请求和共享专用硬件资源。这些进展为在后续 Kubernetes 版本中构建高级工作负载调度能力奠定了坚实基础。