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 项已升级到 Stable,12 项进入 Beta 阶段,19 项进入 Alpha 阶段。
发布主题和 Logo

Kubernetes v1.32 的发布主题是 "Penelope"。
如果 Kubernetes 在古希腊语中意为“舵手”,在此版本中,我们从这个本源出发,回顾 Kubernetes 过去十年取得的成就:每个发布周期都是一次旅程,就像《奥德赛》中的 Penelope 一样,
她织了十年,每晚拆掉白天织好的部分——每个 Kubernetes 版本也是如此,会增加新功能并移除其他功能,尽管在 Kubernetes 这里,不断改进的目的是为了让它变得更好,目标更明确。值此 Kubernetes 迎来十年周年之际,v1.32 作为这一年中的最后一个版本,我们想向所有那些作为全球 Kubernetes 工作人员一员,在云原生海洋中历经危险和挑战的人们致敬:愿我们继续共同编织 Kubernetes 的未来。
近期关键特性更新
关于 DRA 增强功能的说明
在此版本中,与上一个版本类似,Kubernetes 项目继续提出了对动态资源分配 (DRA) 的多项增强功能,DRA 是 Kubernetes 资源管理系统的关键组件。这些增强功能旨在提高需要专用硬件(例如 GPU、FPGA 和网络适配器)的工作负载的资源分配灵活性和效率。这些特性尤其适用于机器学习或高性能计算应用等用例。启用 DRA 结构化参数支持的核心部分已升级到 Beta。
节点方面的使用体验改进以及 Sidecar 容器更新
SIG Node 有以下超出 KEPs 范围的亮点:
现在使用 systemd watchdog 功能在 kubelet 健康检查失败时重启 kubelet,同时限制给定时间段内的最大重启次数。这提高了 kubelet 的可靠性。更多详细信息,请参阅 pull request #127566。
在遇到镜像拉取退避错误的情况下,Pod 状态中显示的消息已得到改进,更加人性化,并指明 Pod 处于此状况的详细原因。当发生镜像拉取退避时,错误会附加到 Pod 规范的
status.containerStatuses[*].state.waiting.message
字段中,并在reason
字段中使用ImagePullBackOff
值。此更改为你提供了更多上下文,并帮助你识别问题的根本原因。更多详细信息,请参阅 pull request #127918。sidecar 容器特性目标是在 v1.33 中升级到 Stable。要查看剩余工作项和用户反馈,请参阅 issue #753 中的评论。
升级到 Stable 的特性亮点
以下是随着 v1.32 版本发布而进入 Stable 阶段的一些改进精选。
Custom Resource 字段选择器
Custom resource 字段选择器允许开发者为 Custom Resource 添加字段选择器,镜像了内置 Kubernetes 对象可用的功能。这使得 Custom Resource 的过滤更高效、更精确,促进了更好的 API 设计实践。
这项工作是 KEP #4358 的一部分,由 SIG API Machinery 完成。
支持设置内存支持卷的大小
此特性使得可以基于 Pod 资源限制动态设置内存支持卷的大小,提高了工作负载的可移植性以及整体节点资源利用率。
这项工作是 KEP #1967 的一部分,由 SIG Node 完成。
绑定的 Service Account Token 改进
将节点名称包含在 Service Account Token 声明中,允许用户在授权和准入 (ValidatingAdmissionPolicy) 期间使用此类信息。此外,此改进阻止 Service Account 凭证成为节点的特权升级路径。
这项工作是 KEP #4193 的一部分,由 SIG Auth 完成。
结构化授权配置
可以在 API Server 中配置多个授权器以允许结构化授权决策,并支持在 Webhook 中使用 CEL 匹配条件。这项工作是 KEP #3221 的一部分,由 SIG Auth 完成。
StatefulSet 创建的 PVC 自动移除
StatefulSet 创建的 PersistentVolumeClaims (PVC) 在不再需要时会自动删除,同时确保在 StatefulSet 更新和节点维护期间的数据持久性。此特性简化了 StatefulSet 的存储管理,并降低了孤立 PVC 的风险。
这项工作是 KEP #1847 的一部分,由 SIG Apps 完成。
升级到 Beta 的特性亮点
以下是随着 v1.32 版本发布而进入 Beta 阶段的一些改进精选。
Job API 的 managed-by 机制
Job 的 managedBy
字段在 v1.32 版本中升级到 Beta。此特性使得外部控制器(如 Kueue)能够管理 Job 同步,提供了更大的灵活性以及与高级工作负载管理系统的集成能力。
这项工作是 KEP #4368 的一部分,由 SIG Apps 完成。
仅允许对已配置端点进行匿名认证
此特性允许管理员指定哪些端点允许匿名请求。例如,管理员可以选择仅允许匿名访问健康检查端点(例如 /healthz
、/livez
和 /readyz
),同时确保阻止匿名访问其他集群端点或资源,即使用户错误配置了 RBAC。
这项工作是 KEP #4633 的一部分,由 SIG Auth 完成。
kube-scheduler 增强功能中用于精确重新排队的每插件回调函数
此特性通过每插件回调函数 (QueueingHint) 实现更高效的调度重试决策,从而提高了调度吞吐量。所有插件现在都有 QueueingHint。
这项工作是 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 调度器已通过异步抢占得到增强,此特性通过异步处理抢占操作来提高调度吞吐量。抢占通过驱逐低优先级的 Pod 来确保高优先级 Pod 获得所需的资源,但此过程之前涉及大量操作,例如调用 API 删除 Pod,导致调度器变慢。通过此增强,此类任务现在并行处理,允许调度器继续调度其他 Pod 而不产生延迟。此改进在 Pod 频繁创建/删除或调度频繁失败的集群中尤其有益,确保调度过程更高效、更有弹性。
这项工作是 KEP #4832 的一部分,由 SIG Scheduling 完成。
使用 CEL 表达式的修改性准入策略
此特性利用了 CEL 的对象实例化和 JSON Patch 策略,结合了服务端 Apply 的合并算法。它简化了策略定义,减少了修改冲突,并提高了准入控制性能,同时为 Kubernetes 中更健壮、可扩展的策略框架奠定了基础。
Kubernetes API Server 现在支持基于通用表达式语言 (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 hook 的 sleep action 设置零值
这项增强功能引入了在 Kubernetes 中为 PreStop 生命周期 hook 设置零秒 sleep 时长的能力,为资源验证和自定义提供了一个更灵活且无操作(no-op)的选项。之前,尝试为 sleep action 定义零值会导致验证错误,限制了其使用。通过此更新,用户可以将零秒时长配置为有效的 sleep 设置,从而在需要时启用立即执行和终止行为。
这项增强功能是向后兼容的,作为一项可选(opt-in)功能引入,由 PodLifecycleSleepActionAllowZero
feature gate 控制。此更改对于需要 PreStop hook 进行验证或准入 webhook 处理但不需要实际 sleep 时长的场景特别有利。通过与 time.After
Go 函数的功能保持一致,此更新简化了配置并扩展了 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 节点的集群的可靠性和稳定性,特别是在计划内维护或任何系统更新期间。
此外,还为 Windows 节点添加了 CPU 和内存亲和性支持,并改进了 CPU 管理器、内存管理器和拓扑管理器。
这项工作分别作为 KEP #4802 和 KEP #4885 的一部分由 SIG Windows 完成的。
1.32 中的毕业、弃用和移除
晋升至稳定(Stable)
此处列出了所有晋升至稳定(也称为正式发布)的功能。有关包括新功能以及从 alpha 晋升到 beta 的完整更新列表,请参阅发行说明。
此版本总共包含 13 项晋升至稳定的增强功能
- 结构化授权配置
- 绑定的服务账户 token 改进
- 自定义资源字段选择器
- 重试生成名称
- 使 Kubernetes 了解 LoadBalancer 行为
- Pod 新增
status.hostIPs
字段 - kubectl debug 中的自定义 profile
- 内存管理器
- 支持设置内存支持卷的大小
- 改进拓扑管理器中的多 NUMA 对齐
- 为 Job 注解添加创建时间戳
- 为 StatefulSets 和索引 Job 添加 Pod 索引标签
- StatefulSet 创建的 PVC 自动移除
弃用和移除
随着 Kubernetes 的发展和成熟,为了项目的整体健康,某些功能可能会被弃用、移除或被更好的功能取代。有关此流程的更多详细信息,请参阅 Kubernetes 弃用和移除策略。
旧 DRA 实现的撤回
增强功能 #3063 在 Kubernetes 1.26 中引入了动态资源分配(DRA)。
然而,在 Kubernetes v1.32 中,这种 DRA 方法将发生重大变化。与原始实现相关的代码将被移除,将 KEP #4381 留下作为“新”的基础功能。
改变现有方法的决定源于其与集群自动扩缩(Cluster Autoscaler)的不兼容性,因为资源可用性不透明,使得 Cluster Autoscaler 和控制器都难以做出决策。新添加的结构化参数模型替代了该功能。
此次移除将使 Kubernetes 能够更可预测地处理新的硬件需求和资源申领,绕过与 kube-apiserver 来回 API 调用的复杂性。
有关更多信息,请参阅增强功能 issue #3063。
API 移除
在 Kubernetes v1.32 中有一项 API 移除
- FlowSchema 和 PriorityLevelConfiguration 的
flowcontrol.apiserver.k8s.io/v1beta3
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 版本所付出的辛勤工作。发行团队的成员包括首次参与的“影子”(shadow)成员,以及拥有多个发行周期经验的回归团队负责人。特别感谢我们的发行负责人 Frederico Muñoz 如此优雅地领导发行团队,并以最细致的态度处理任何事项,确保此次发行顺利高效地执行。最后但同样重要的是,衷心感谢所有发行团队成员(无论负责人还是“影子”),以及以下 SIG 在这 14 周的发行工作中取得的卓越成果和贡献。
- SIG Docs - 为文档和博客评审提供基础支持,并与发行沟通和文档团队持续协作;
- SIG k8s Infra 和 SIG Testing - 在维护测试框架以及所有必需的基础设施组件方面做出了杰出贡献;
- SIG Release 和所有发行管理器 - 在整个发行的协调过程中提供了令人难以置信的支持,优雅及时地解决了即使是最具挑战性的问题。
项目进展速度
CNCF K8s DevStats 项目汇总了许多与 Kubernetes 及各种子项目进展速度相关的有趣数据点。这包括从个人贡献到参与贡献的公司数量等方方面面,展示了为发展这个生态系统所付出的努力的深度和广度。
在持续 14 周(9 月 9 日至 12 月 11 日)的 v1.32 发布周期中,截至撰写本文时,我们看到来自多达 125 家不同公司和 559 名个人对 Kubernetes 的贡献。
在整个云原生生态系统中,这一数字上升至 433 家公司,共有 2441 名贡献者。与上一个发布周期相比,整体贡献增加了 7%,参与的公司数量增加了 14%,表明云原生项目背后有着浓厚的兴趣和强大的社区。
数据来源
贡献是指有人提交 commit、进行代码评审、发表评论、创建 issue 或 PR、评审 PR(包括博客和文档)或在 issue 和 PR 上发表评论。
如果您有兴趣贡献,请访问我们的贡献者网站上的入门指南。
查看 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 日 | 非洲尼日利亚
即将到来的发行网络研讨会
加入 Kubernetes v1.32 发行团队成员,时间是**2025 年 1 月 9 日星期四下午 5:00 (UTC)**,了解此版本的发行亮点,以及弃用和移除信息,以帮助规划升级。有关更多信息和注册,请访问 CNCF Online Programs 网站上的活动页面。
参与其中
参与 Kubernetes 的最简单方法是加入众多与您的兴趣相关的特别兴趣小组(SIG)之一。有什么想向 Kubernetes 社区广播的吗?在我们每周的社区会议上以及通过以下渠道分享您的声音。感谢您持续的反馈和支持。
- 在 Bluesky 上关注我们 @Kubernetes.io 获取最新更新
- 在 Discuss 上加入社区讨论
- 在 Slack 上加入社区
- 在 Stack Overflow 上提问(或回答问题)
- 分享您的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的最新动态
- 了解更多关于 Kubernetes 发行团队的信息