Kubernetes v1.36:为挂起的作业启用可变的 P... 笔记

Kubernetes v1.36:为挂起的作业启用可变的 Pod 资源(beta)

Kubernetes v1.36 将 Pod 模板中挂起(suspended)Job 的容器资源请求和限制修改能力提升至 beta 阶段。该功能在 v1.35 中作为 alpha 版本引入,允许队列控制器和管理员在 Job 执行前、处于挂起状态时调整其资源规格(如 CPU、内存和 GPU)。此前,资源需求一旦设定即不可更改,若要修改则必须删除并重新创建 Job,从而导致宝贵元数据的丢失。这一新功能解决了 Job 创建时资源需求不明确或集群容量波动的场景。例如,队列控制器现在可以将机器学习 Job 的 GPU 请求从 4 台减少至 2 台,若集群中仅有 2 台可用。Kubernetes API 服务器针对挂起 Job 的特定资源字段放宽了不可变性约束,前提是 Job 的 spec.suspend 必须为 true;若该 Job 此前正在运行,则所有活动 Pod 必须已终止。在 beta 版本中,MutablePodResourcesForSuspendedJobs 功能门控在 v1.36 中默认启用。用户可通过创建挂起 Job、编辑其资源并随后恢复执行来测试此功能。对于正在运行的挂起 Job,在修改资源之前,务必确保所有活动 Pod 均已终止,以避免出现不一致状态。