Kubernetes v1.32: Penelope
编辑: Matteo Bianchi、Edith Puclla、William Rizzo、Ryota Sawada、Rashan Smith
宣布 Kubernetes v1.32:Penelope 正式发布!
与以往的版本一样,Kubernetes v1.32 的发布引入了新的稳定(Stable)、测试(Beta)和预览(Alpha)特性。高质量版本的持续交付凸显了我们开发周期的强大以及社区的鼎力支持。此版本共包含 44 项增强功能。其中 13 项已进入稳定阶段,12 项进入 Beta 阶段,19 项进入 Alpha 阶段。
发布主题和徽标

Kubernetes v1.32 版本的发布主题是“Penelope”。
如果说 Kubernetes 在古希腊语中意为“舵手”,那么在这个版本中,我们从这个起源出发,反思了 Kubernetes 过去 10 年的发展和成就:每个发布周期都是一次旅程,就像《奥德赛》中的佩涅罗佩(Penelope)一样,
她织了 10 年的布——每晚拆掉白天所织的一部分——同样,每个版本都会增加新特性并移除其他特性,尽管这里的目的更明确,即不断改进 Kubernetes。v1.32 是 Kubernetes 迎来十周年纪念的最后一个版本,我们想借此向所有那些曾经作为全球 Kubernetes 船员的一员,在云原生的海洋中历经艰险、迎接挑战的人们致敬:愿我们继续共同编织 Kubernetes 的未来。
近期关键特性的更新
关于 DRA 增强功能的说明
在此版本中,与上一个版本一样,Kubernetes 项目继续提出多项针对动态资源分配(Dynamic Resource Allocation, DRA)的增强功能,这是 Kubernetes 资源管理系统的关键组件。这些增强功能旨在为需要专用硬件(如 GPU、FPGA 和网络适配器)的工作负载提高资源分配的灵活性和效率。这些特性对于机器学习或高性能计算应用等用例特别有用。作为核心部分,DRA 结构化参数支持已升级至 Beta。
节点和 Sidecar 容器的生活质量改进更新
SIG Node 除了 KEP 之外,还有以下亮点:
现在,当 kubelet 的健康检查失败时,会使用 systemd 看门狗(watchdog)功能来重启 kubelet,同时限制了在给定时间段内的最大重启次数。这增强了 kubelet 的可靠性。更多详情,请参见拉取请求 #127566。
在遇到镜像拉取退避(Image Pull Back-off)错误时,Pod 状态中显示的消息已得到改进,变得更加人性化,并能指示 Pod 处于此状况的原因。当发生镜像拉取退避时,错误信息会附加到 Pod 规约中
status.containerStatuses[*].state.waiting.message
字段,并在reason
字段中显示ImagePullBackOff
值。这一更改为你提供了更多上下文,帮助你识别问题的根本原因。更多详情,请参见拉取请求 #127918。Sidecar 容器特性计划在 v1.33 版本中升级为稳定版。要查看剩余的工作项和用户的反馈,请参见问题 #753 中的评论。
升级至稳定版的特性亮点
以下是 v1.32 版本发布后升级为稳定版的部分改进功能。
自定义资源的字段选择器
自定义资源字段选择器允许开发者为自定义资源添加字段选择器,这与内置 Kubernetes 对象的功能类似。这使得对自定义资源的过滤更加高效和精确,从而促进了更好的 API 设计实践。
这项工作是 KEP #4358 的一部分,由 SIG API Machinery 完成。
支持调整内存支持的卷的大小
此功能可以根据 Pod 的资源限制动态调整内存支持的卷的大小,从而提高了工作负载的可移植性和节点资源的整体利用率。
这项工作是 KEP #1967 的一部分,由 SIG Node 完成。
绑定服务账号令牌的改进
在服务账号令牌的声明(claims)中包含了节点名称,这允许用户在授权和准入控制(ValidatingAdmissionPolicy)中使用这些信息。此外,这一改进还能防止服务账号凭证成为节点的权限提升路径。
这项工作是 KEP #4193 的一部分,由 SIG Auth 完成。
结构化授权配置
可以在 API 服务器中配置多个授权器(authorizer),以实现结构化的授权决策,并支持在 Webhook 中使用 CEL 匹配条件。这项工作是 KEP #3221 的一部分,由 SIG Auth 完成。
自动删除由 StatefulSet 创建的 PVC
由 StatefulSet 创建的 PersistentVolumeClaims (PVCs) 在不再需要时会自动删除,同时确保在 StatefulSet 更新和节点维护期间的数据持久性。此特性简化了 StatefulSet 的存储管理,并降低了孤立 PVC 的风险。
这项工作是 KEP #1847 的一部分,由 SIG Apps 完成。
升级至 Beta 版的特性亮点
以下是 v1.32 版本发布后升级为 Beta 版的部分改进功能。
Job API 的 managed-by 机制
在 v1.32 版本中,Job 的 managedBy
字段已升级为 Beta 版。此特性允许外部控制器(如 Kueue)管理 Job 的同步,为与高级工作负载管理系统集成提供了更大的灵活性。
这项工作是 KEP #4368 的一部分,由 SIG Apps 完成。
仅允许已配置的端点进行匿名认证
此特性允许管理员指定哪些端点可以接受匿名请求。例如,管理员可以选择仅允许对健康检查端点(如 /healthz
、/livez
和 /readyz
)进行匿名访问,同时确保即使在用户错误配置了 RBAC 的情况下,也能防止对其他集群端点或资源的匿名访问。
这项工作是 KEP #4633 的一部分,由 SIG Auth 完成。
kube-scheduler 中用于精确重新排队的每个插件回调函数 增强
此特性通过每个插件的回调函数(QueueingHint)实现了更高效的调度重试决策,从而提高了调度吞吐量。现在所有插件都具有 QueueingHints。
这项工作是 KEP #4247 的一部分,由 SIG Scheduling 完成。
从卷扩展失败中恢复
此特性允许用户通过使用较小的尺寸重试,从而从卷扩展失败中恢复。此增强功能确保了卷扩展过程更具弹性和可靠性,降低了在此过程中数据丢失或损坏的风险。
这项工作是 KEP #1790 的一部分,由 SIG Storage 完成。
卷组快照
此特性引入了 VolumeGroupSnapshot API,允许用户同时对多个卷进行快照,确保这些卷之间的数据一致性。
这项工作是 KEP #3476 的一部分,由 SIG Storage 完成。
结构化参数支持
动态资源分配(DRA)的核心部分——结构化参数支持已升级为 Beta 版。这使得 kube-scheduler 和 Cluster Autoscaler 能够直接模拟资源声明的分配,而无需第三方驱动程序。这些组件现在可以根据集群的当前状态预测资源请求是否能被满足,而无需实际提交分配。通过消除对第三方驱动程序进行验证或测试分配的需求,此特性提高了资源分配的规划和决策能力,使调度和扩缩容过程更加高效。
这项工作是 KEP #4381 的一部分,由 WG Device Management(一个包含 SIG Node、SIG Scheduling 和 SIG Autoscaling 的跨职能团队)完成。
标签和字段选择器授权
标签和字段选择器可用于授权决策。节点授权器会自动利用这一点,将节点限制为只能列出或监视其自身的 Pod。Webhook 授权器可以进行更新,以根据所使用的标签或字段选择器来限制请求。
这项工作是 KEP #4601 的一部分,由 SIG Auth 完成。
Alpha 阶段新特性亮点
以下是 v1.32 版本中作为 Alpha 特性引入的一些关键改进。
Kubernetes 调度器中的异步抢占
Kubernetes 调度器已通过异步抢占(Asynchronous Preemption)功能得到了增强,该功能通过异步处理抢占操作来提高调度吞吐量。抢占通过驱逐较低优先级的 Pod 来确保较高优先级的 Pod 获得所需资源,但此过程之前涉及如删除 Pod 的 API 调用等繁重操作,从而减慢了调度器的速度。通过此项增强,这些任务现在可以并行处理,使调度器能够继续调度其他 Pod 而不会出现延迟。这一改进对于 Pod 流失率高或调度失败频繁的集群尤其有益,可确保调度过程更加高效和有弹性。
这项工作是 KEP #4832 的一部分,由 SIG Scheduling 完成。
使用 CEL 表达式的变更性准入策略
此特性利用了 CEL 的对象实例化和 JSON Patch 策略,并结合了服务器端应用(Server Side Apply)的合并算法。它简化了策略定义,减少了变更冲突,并提高了准入控制的性能,同时为 Kubernetes 中更强大、更可扩展的策略框架奠定了基础。
Kubernetes API 服务器现在支持基于通用表达式语言(Common Expression Language, CEL)的变更性准入策略,为变更性准入 Webhook 提供了一种轻量、高效的替代方案。通过此项增强,管理员可以使用 CEL 来声明变更,例如设置标签、设置字段默认值或注入 Sidecar,这些操作都通过简单、声明性的表达式完成。这种方法降低了操作复杂性,无需 Webhook,并直接与 kube-apiserver 集成,提供了更快、更可靠的进程内变更处理。
这项工作是 KEP #3962 的一部分,由 SIG API Machinery 完成。
Pod 级资源规约
此增强功能通过引入在 Pod 级别设置资源请求和限制的能力,简化了 Kubernetes 中的资源管理,创建了一个 Pod 中所有容器都可以动态使用的共享资源池。这对于那些容器资源需求波动或突发的工作负载尤其有价值,因为它最大限度地减少了过度配置,并提高了整体资源效率。
通过在 Pod 级别利用 Linux cgroup 设置,Kubernetes 确保了这些资源限制得到强制执行,同时使紧密耦合的容器能够更有效地协作,而不会遇到人为的限制。重要的是,此特性保持了与现有容器级资源设置的向后兼容性,允许用户逐步采用,而不会中断当前的工作流程或现有配置。
这标志着对多容器 Pod 的一次重大改进,因为它降低了管理跨容器资源分配的操作复杂性。它还为紧密集成的应用程序(如 Sidecar 架构)提供了性能提升,在这些应用中,容器共享工作负载或相互依赖以实现最佳性能。
这项工作是 KEP #2837 的一部分,由 SIG Node 完成。
允许 PreStop 钩子的 sleep 操作值为零
此增强功能引入了为 Kubernetes 中的 PreStop 生命周期钩子设置零秒睡眠时长的能力,为资源验证和自定义提供了一个更灵活的无操作选项。以前,尝试为 sleep 操作定义一个零值会导致验证错误,限制了其使用。通过此更新,用户可以将零秒时长配置为有效的睡眠设置,从而在需要时实现立即执行和终止行为。
此增强功能是向后兼容的,作为一项可选功能引入,由 PodLifecycleSleepActionAllowZero
特性门控控制。这一更改对于需要 PreStop 钩子进行验证或准入 Webhook 处理而不需要实际睡眠时长的场景特别有益。通过与 Go 函数 time.After
的功能保持一致,此更新简化了配置并扩展了 Kubernetes 工作负载的可用性。
这项工作是 KEP #4818 的一部分,由 SIG Node 完成。
DRA:资源声明状态中标准化的网络接口数据
此增强功能增加了一个新字段,允许驱动程序为 ResourceClaim 中每个已分配的对象报告特定的设备状态数据。它还建立了一种表示网络设备信息的标准化方式。
这项工作是 KEP #4817 的一部分,由 SIG Network 完成。
核心组件的新 statusz 和 flagz 端点
你可以为核心组件启用两个新的 HTTP 端点:/statusz
和 /flagz
。这些端点通过让你深入了解组件运行的版本(例如 Golang 版本),以及其正常运行时间、组件执行时使用的命令行标志等详细信息,从而增强了集群的可调试性;这使得诊断运行时和配置问题变得更加容易。
这项工作是 KEP #4827 和 KEP #4828 的一部分,由 SIG Instrumentation 完成。
Windows 强势回归!
增加了对 Kubernetes 集群中 Windows 节点优雅关闭的支持。在此版本之前,Kubernetes 为 Linux 节点提供了优雅节点关闭功能,但缺乏对 Windows 的同等支持。此增强功能使 Windows 节点上的 kubelet 能够正确处理系统关闭事件。这样做可以确保在 Windows 节点上运行的 Pod 被优雅地终止,从而可以在不中断的情况下重新调度工作负载。此改进提高了包含 Windows 节点的集群的可靠性和稳定性,尤其是在计划性维护或任何系统更新期间。
此外,还为具有多个 NUMA 节点的 Windows 节点增加了 CPU 和内存亲和性支持,并改进了 CPU 管理器、内存管理器和拓扑管理器。
这项工作分别是 KEP #4802 和 KEP #4885 的一部分,由 SIG Windows 完成。
1.32 版本中的毕业、弃用和移除
升级为稳定版
这里列出了所有升级到稳定版(也称为**正式发布**)的功能。有关包括新功能和从 Alpha 升级到 Beta 的完整更新列表,请参阅发布说明。
此版本共有 13 项增强功能升级为稳定版:
- 结构化授权配置
- 绑定的 Service Account 令牌改进
- 自定义资源字段选择器
- 重试生成名称
- 让 Kubernetes 感知 LoadBalancer 的行为
- 为 Pod 添加了
status.hostIPs
字段 - kubectl debug 中的自定义配置文件
- 内存管理器
- 支持调整内存支持的卷的大小
- 拓扑管理器中改进的多 NUMA 对齐
- 在作业注解中添加作业创建时间戳
- 为 StatefulSet 和 Indexed Job 添加 Pod 索引标签
- 自动删除由 StatefulSet 创建的 PVC
弃用和移除
随着 Kubernetes 的发展和成熟,为了项目的整体健康,一些特性可能会被弃用、移除或被更好的特性所取代。有关此过程的更多详细信息,请参阅 Kubernetes 的弃用和移除策略。
旧版 DRA 实现的撤销
增强功能 #3063 在 Kubernetes 1.26 中引入了动态资源分配(DRA)。
然而,在 Kubernetes v1.32 中,这种 DRA 的方法将发生重大改变。与原始实现相关的代码将被移除,使 KEP #4381 成为“新的”基础功能。
改变现有方法的原因是它与集群自动扩缩容不兼容,因为资源可用性不透明,这使得 Cluster Autoscaler 和控制器的决策变得复杂。新添加的结构化参数模型替代了该功能。
此次移除将使 Kubernetes 能够更可预测地处理新的硬件需求和资源声明,避免了与 kube-apiserver 来回 API 调用的复杂性。
要了解更多信息,请参阅增强功能问题 #3063。
API 移除
在 Kubernetes v1.32 中有一项 API 移除:
flowcontrol.apiserver.k8s.io/v1beta3
版本的 FlowSchema 和 PriorityLevelConfiguration API 已被移除。为准备此变更,你可以编辑现有的清单文件并重写客户端软件,以使用自 v1.29 起可用的flowcontrol.apiserver.k8s.io/v1
API 版本。所有现有的持久化对象都可以通过新的 API 访问。flowcontrol.apiserver.k8s.io/v1beta3
中的显著变化包括:PriorityLevelConfiguration 的spec.limited.nominalConcurrencyShares
字段仅在未指定时默认为 30,显式指定为 0 的值不会被更改为 30。
更多信息,请参阅 API 弃用指南。
发布说明和所需升级操作
请在我们的发布说明中查看 Kubernetes v1.32 版本的全部详细信息。
可用性
Kubernetes v1.32 可在 GitHub 或 Kubernetes 下载页面上下载。
要开始使用 Kubernetes,请查看这些交互式教程,或使用 minikube 运行本地 Kubernetes 集群。你也可以使用 kubeadm 轻松安装 v1.32。
发布团队
Kubernetes 的成功离不开其社区的支持、承诺和辛勤工作。每个发布团队都由敬业的社区志愿者组成,他们共同努力,构建出你所依赖的 Kubernetes 版本的各个部分。这需要我们社区各个角落的人们的专业技能,从代码本身到其文档和项目管理。
我们衷心感谢整个发布团队,感谢他们为向社区交付 Kubernetes v1.32 版本而付出的辛勤工作。发布团队的成员范围从首次参与的“影子”成员到拥有多个发布周期经验的回归团队负责人。我们特别感谢我们的发布负责人 Frederico Muñoz,他优雅地领导了发布团队,并以最细致的态度处理任何事务,确保了本次发布的顺利和高效。最后但同样重要的是,我们要感谢所有的发布成员——负责人和影子成员们——以及以下 SIGs,感谢他们在这 14 周的发布工作中取得的卓越成果:
- SIG Docs - 在文档和博客审阅方面提供了基础性支持,并与发布沟通和文档团队持续合作;
- SIG k8s Infra 和 SIG Testing - 在维护测试框架以及所有必要的基础设施组件方面做出了杰出工作;
- SIG Release 和所有发布经理 - 在整个发布过程的协调中提供了令人难以置信的支持,以优雅及时的方式解决了即使是最具挑战性的问题。
项目速度
CNCF K8s DevStats 项目汇总了许多与 Kubernetes 和各种子项目发展速度相关的有趣数据点。这包括从个人贡献到贡献公司的数量等所有内容,展示了推动这个生态系统发展的努力的深度和广度。
在 v1.32 发布周期中,为期 14 周(9 月 9 日至 12 月 11 日),截至撰写本文时,我们看到了来自多达 125 家不同公司和 559 名个人的贡献。
在整个云原生生态系统中,这一数字上升到 433 家公司,总计 2441 名贡献者。与上一个发布周期相比,总贡献量增加了 7%,参与的公司数量增加了 14%,展示了云原生项目背后强大的兴趣和社区支持。
此数据来源
我们所说的贡献是指某人提交代码、进行代码审查、发表评论、创建问题或拉取请求、审查拉取请求(包括博客和文档)或对问题和拉取请求发表评论。
如果你有兴趣贡献,请访问我们贡献者网站上的入门指南。
查看 DevStats 以了解有关 Kubernetes 项目和社区整体速度的更多信息。
活动更新
探索 2025 年 3 月至 6 月即将举行的 Kubernetes 和云原生活动,包括 KubeCon 和 KCD。保持信息灵通,与 Kubernetes 社区互动。
2025 年 3 月
- KCD - Kubernetes 社区日:中国北京:3 月 | 中国北京
- KCD - Kubernetes 社区日:墨西哥瓜达拉哈拉:2025 年 3 月 16 日 | 墨西哥瓜达拉哈拉
- KCD - Kubernetes 社区日:巴西里约热内卢:2025 年 3 月 22 日 | 巴西里约热内卢
2025 年 4 月
- KubeCon + CloudNativeCon 欧洲 2025:2025 年 4 月 1-4 日 | 英国伦敦
- KCD - Kubernetes 社区日:匈牙利布达佩斯:2025 年 4 月 23 日 | 匈牙利布达佩斯
- KCD - Kubernetes 社区日:印度金奈:2025 年 4 月 26 日 | 印度金奈
- KCD - Kubernetes 社区日:新西兰奥克兰:2025 年 4 月 28 日 | 新西兰奥克兰
2025 年 5 月
- KCD - Kubernetes 社区日:芬兰赫尔辛基:2025 年 5 月 6 日 | 芬兰赫尔辛基
- KCD - Kubernetes 社区日:美国旧金山:2025 年 5 月 8 日 | 美国旧金山
- KCD - Kubernetes 社区日:美国奥斯汀:2025 年 5 月 15 日 | 美国奥斯汀
- KCD - Kubernetes 社区日:韩国首尔:2025 年 5 月 22 日 | 韩国首尔
- KCD - Kubernetes 社区日:土耳其伊斯坦布尔:2025 年 5 月 23 日 | 土耳其伊斯坦布尔
- KCD - Kubernetes 社区日:哥斯达黎加埃雷迪亚:2025 年 5 月 31 日 | 哥斯达黎加埃雷迪亚
- KCD - Kubernetes 社区日:美国纽约:5 月 | 美国纽约
2025 年 6 月
- KCD - Kubernetes 社区日:斯洛伐克布拉迪斯拉发:2025 年 6 月 5 日 | 斯洛伐克布拉迪斯拉发
- KCD - Kubernetes 社区日:印度班加罗尔:2025 年 6 月 6 日 | 印度班加罗尔
- KubeCon + CloudNativeCon 中国 2025:2025 年 6 月 10-11 日 | 香港
- KCD - Kubernetes 社区日:危地马拉安提瓜:2025 年 6 月 14 日 | 危地马拉安提瓜
- KubeCon + CloudNativeCon 日本 2025:2025 年 6 月 16-17 日 | 日本东京
- KCD - Kubernetes 社区日:尼日利亚,非洲:2025 年 6 月 19 日 | 尼日利亚,非洲
即将举行的发布网络研讨会
欢迎在 2025 年 1 月 9 日(星期四)下午 5:00 (UTC) 加入 Kubernetes v1.32 发布团队成员的行列,了解此版本的发布亮点,以及有助于规划升级的弃用和移除信息。更多信息和注册,请访问 CNCF 在线项目网站上的活动页面。
参与其中
参与 Kubernetes 最简单的方式是加入众多与你兴趣相符的特别兴趣小组(SIG)之一。有什么你想向 Kubernetes 社区广播的吗?在我们每周的社区会议上分享你的声音,并通过以下渠道。感谢你一直以来的反馈和支持。
- 在 Bluesky @Kubernetes.io 上关注我们以获取最新更新
- 在 Discuss 上加入社区讨论
- 在 Slack 上加入社区
- 在 Stack Overflow 上提问(或回答问题)
- 分享你的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的动态
- 了解更多关于 Kubernetes 发布团队的信息