Kubernetes v1.37:原地 Pod 扩容的调度器... 笔记

Kubernetes v1.37:原地 Pod 扩容的调度器抢占(Alpha)

Kubernetes v1.35 引入了 Pod 原地扩容功能,允许在不重启的情况下动态调整 CPU 和内存。然而,在节点资源完全耗尽的情况下对 Pod 进行扩容,若存在容量不足,Pod 状态可能变为"Deferred",导致其无限期等待资源可用。为解决此问题,Kubernetes v1.37 引入了用于 Pod 原地扩容的调度器抢占功能,当前处于 Alpha 阶段。该功能使 Kubernetes 调度器能够主动释放节点容量。若运行中 Pod 的原地扩容请求超出可用资源,调度器可抢占优先级较低的 Pod。这确保了关键应用即使在繁忙节点上也能完成扩容。抢占操作局限于 Pod 当前所在节点,针对符合条件的低优先级工作负载。这使得集群运营者能够通过二部打包(bin-packing)低优先级任务来最大化资源利用率。若无此功能,运营者将面临资源利用率不足或关键应用扩容失败的风险。该功能集成了调度器现有的跟踪机制,并将扩容抢占与标准 Pod 放置抢占区分开来。资源预留得到安全处理,以防止扩容过程中出现竞态条件。该功能需要 Kubernetes v1.37 或更高版本,并启用 InPlacePodVerticalScalingSchedulerPreemption 功能门控。管理员可通过 podPreemptionPolicy 字段为特定节点禁用扩容抢占。