本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
Kubernetes v1.25: Combiner
我们很高兴地宣布 Kubernetes v1.25 发布!
此版本包含总共 40 项增强功能。其中 15 项增强功能进入 Alpha 阶段,10 项进入 Beta 阶段,13 项进入稳定阶段。我们还有 2 个功能被弃用或移除。
发布主题和徽标
Kubernetes 1.25: Combiner

Kubernetes v1.25 的主题是 Combiner。
Kubernetes 项目本身由许许多多的独立组件组成,这些组件组合在一起,构成了你今天所看到的样子。它也是由许多人共同构建和维护的,他们都拥有不同的技能、经验、背景和兴趣,他们不仅作为发布团队,而且作为许多全年支持项目和社区的 SIG 小组,联合起来。
通过此版本,我们希望向协作、开放的精神致敬,它将我们这些分布在全球各地的孤立的开发人员、作者和用户,汇聚成一股能够改变世界的联合力量。Kubernetes v1.25 包含了惊人的 40 项增强功能,如果没有我们共同协作时所拥有的强大力量,这些功能将无一存在。
受我们发布负责人之子 Albert Song 的启发,Kubernetes v1.25 以你们每一个人命名,无论你选择以何种方式将自己独特的力量贡献给这股汇聚成 Kubernetes 的联合力量。
新功能(主要主题)
PodSecurityPolicy 被移除;Pod 安全准入(Pod Security Admission)进入稳定阶段
PodSecurityPolicy 最初在 v1.21 中被弃用,随着 v1.25 的发布,它已被移除。为提高其可用性所需的更新会引入重大变更,因此有必要将其移除,以支持一个更友好的替代方案。这个替代方案是 Pod 安全准入(Pod Security Admission),它在此版本中进入稳定阶段。如果你目前依赖于 PodSecurityPolicy,请遵循迁移到 Pod 安全准入的说明。
临时容器(Ephemeral Containers)进入稳定阶段
临时容器是指在现有 Pod 中仅存在有限时间的容器。这对于故障排查特别有用,当你需要检查另一个容器但无法使用 kubectl exec
时(因为该容器已崩溃或其镜像缺少调试工具)。临时容器在 Kubernetes v1.23 中进入 Beta 阶段,在此版本中,该功能进入稳定阶段。
对 cgroups v2 的支持进入稳定阶段
Linux 内核 cgroups v2 API 宣布稳定已经超过两年了。由于一些发行版现在默认使用此 API,Kubernetes 必须支持它才能在这些发行版上继续运行。cgroups v2 相比 cgroups v1 提供了多项改进,更多信息请参见 cgroups v2 文档。虽然 cgroups v1 将继续得到支持,但这项增强功能使我们为它最终被弃用和替换做好了准备。
改进了对 Windows 的支持
- 性能仪表板增加了对 Windows 的支持
- 单元测试增加了对 Windows 的支持
- 一致性测试增加了对 Windows 的支持
- 为 Windows 操作就绪性创建了新的 GitHub 仓库
容器镜像仓库服务从 k8s.gcr.io 迁移至 registry.k8s.io
将容器镜像仓库从 k8s.gcr.io 迁移到 registry.k8s.io 已被合并。更多详情,请参见维基页面,公告已发送至 Kubernetes 开发邮件列表。
SeccompDefault 提升至 Beta 阶段
SeccompDefault 提升至 Beta 阶段,请参阅教程使用 seccomp 限制容器的系统调用了解更多详情。
网络策略中的 endPort 提升至稳定阶段
将网络策略中的 endPort
提升至 GA。支持 endPort
字段的网络策略提供商现在可以用它来指定一个端口范围来应用网络策略。以前,每个网络策略只能针对一个端口。
请注意,endPort
字段必须得到网络策略提供商的支持。如果你的提供商不支持 endPort
,并且在网络策略中指定了该字段,则创建的网络策略将仅覆盖 port 字段(单个端口)。
本地临时存储容量隔离提升至稳定阶段
本地临时存储容量隔离功能已进入 GA 阶段。它在 1.8 版本中作为 Alpha 引入,在 1.10 版本中进入 Beta 阶段,现在是一个稳定功能。它支持 Pod 之间的本地临时存储(如 EmptyDir
)的容量隔离,这样如果 Pod 对本地临时存储的消耗超过限制,就可以通过驱逐 Pod 来对其共享资源的使用进行硬性限制。
核心 CSI 迁移提升至稳定阶段
CSI 迁移是 SIG Storage 在几个版本中一直致力于的一项持续性工作。目标是将树内(in-tree)卷插件迁移到树外(out-of-tree)CSI 驱动程序,并最终移除树内卷插件。核心 CSI 迁移功能已进入 GA 阶段。用于 GCE PD 和 AWS EBS 的 CSI 迁移也进入了 GA。用于 vSphere 的 CSI 迁移仍处于 Beta 阶段(但默认启用)。用于 Portworx 的 CSI 迁移进入 Beta 阶段(但默认关闭)。
CSI 临时卷提升至稳定阶段
CSI 临时卷功能允许在 Pod 规范中直接指定 CSI 卷以用于临时场景。它们可用于通过挂载的卷直接向 Pod 内部注入任意状态,例如配置、Secret、身份、变量或类似信息。这最初在 1.15 中作为 Alpha 功能引入,现已进入 GA 阶段。此功能被一些 CSI 驱动程序使用,例如 secret-store CSI 驱动程序。
CRD 验证表达式语言提升至 Beta 阶段
CRD 验证表达式语言提升至 Beta 阶段,这使得可以使用通用表达式语言 (CEL) 来声明如何验证自定义资源。请参阅验证规则指南。
服务器端未知字段验证提升至 Beta 阶段
将 ServerSideFieldValidation
特性门控提升至 Beta(默认开启)。这允许在 API 服务器上选择性地触发模式验证,当检测到未知字段时会报错。这允许从 kubectl 中移除客户端验证,同时保持错误处理包含未知或无效字段的请求的核心功能。
引入 KMS v2 API
引入 KMS v2alpha1 API,以增加性能、轮换和可观察性方面的改进。使用 AES-GCM 而不是 AES-CBC 对静态数据(即 Kubernetes Secrets
)进行 DEK 加密。用户无需任何操作。使用 AES-GCM 和 AES-CBC 的读取将继续被允许。更多信息请参见使用 KMS 提供程序进行数据加密指南。
Kube-proxy 镜像现在基于 distroless 镜像
在以前的版本中,kube-proxy 容器镜像是使用 Debian 作为基础镜像构建的。从这个版本开始,镜像现在使用 distroless 构建。这一变化使镜像大小减少了近 50%,并将安装的软件包和文件数量减少到仅为 kube-proxy 工作所严格需要的那些。
其他更新
升级为稳定版
此版本共有 13 项增强功能提升至稳定阶段
- 临时容器
- 本地临时存储资源管理
- CSI 临时卷
- CSI 迁移 - 核心
- 将 kube-scheduler ComponentConfig 毕业至 GA
- CSI 迁移 - AWS
- CSI 迁移 - GCE
- DaemonSet 支持 MaxSurge
- 网络策略端口范围
- cgroups v2
- Pod 安全准入
- 向 StatefulSet 添加
minReadySeconds
- 在 API 准入层面权威地识别 Windows Pod
弃用和移除
此版本中,有两个功能从 Kubernetes 中被弃用或移除。
版本说明
Kubernetes v1.25 版本的完整详情可在我们的版本说明中找到。
可用性
Kubernetes v1.25 可在 GitHub 上下载。要开始使用 Kubernetes,请查看这些交互式教程,或使用容器作为“节点”来运行本地 Kubernetes 集群,使用 kind。你也可以使用 kubeadm 轻松安装 1.25。
发布团队
Kubernetes 的成功离不开其社区的支持、承诺和辛勤工作。每个发布团队都由敬业的社区志愿者组成,他们共同努力,构建出构成你所依赖的 Kubernetes 版本的各个部分。这需要我们社区各个角落的人们的专业技能,从代码本身到其文档和项目管理。
我们衷心感谢整个发布团队,他们辛勤工作了数小时,以确保我们为社区提供一个坚实的 Kubernetes v1.25 版本。你们每个人都在构建这个版本中发挥了作用,并且你们都完成得非常出色。我们特别感谢我们无畏的发布负责人 Cici Huang,她为确保我们拥有成功所需的一切所做的一切。
用户亮点
- Finleap Connect 在一个高度监管的环境中运营。2019 年,他们有五个月的时间在其集群中的所有服务上实施双向 TLS (mTLS),以使其业务代码符合新的欧洲 PSD2 支付指令。
- PNC 寻求开发一种方法来确保新代码能自动满足安全标准和审计合规性要求——取代他们现有的繁琐的 30 天手动流程。使用 Knative,PNC 开发了内部工具,以自动检查新代码和对现有代码的更改。
- Nexxiot 需要高度可靠、安全、高性能且成本效益高的 Kubernetes 集群。他们选择了 Cilium 作为 CNI,以锁定其集群并实现弹性网络,确保可靠的第二天运维。
- 由于创建网络保险保单是一个复杂的多步骤过程,At-Bay 寻求通过使用异步的基于消息的通信模式/设施来改善运营。他们确定 Dapr 满足了他们期望的需求清单,甚至更多。
生态系统更新
- 2022 年北美 KubeCon + CloudNativeCon 将于 2022 年 10 月 24 日至 28 日在密歇根州底特律举行!你可以在活动网站上找到有关会议和注册的更多信息。
- KubeDay 系列活动将于 12 月 7 日以 KubeDay Japan 拉开帷幕!请在活动网站上注册或提交提案。
- 在2021 年云原生调查中,CNCF 见证了创纪录的 Kubernetes 和容器采用率。请查看调查结果。
项目速度
CNCF K8s DevStats 项目汇总了许多与 Kubernetes 和各种子项目的发展速度相关的有趣数据点。这包括从个人贡献到贡献公司数量的各种信息,展示了推动这个生态系统发展的努力的深度和广度。
在 v1.25 发布周期中(为期 14 周,从 5 月 23 日到 8 月 23 日),我们看到了来自 1065 家公司和 1620 名个人的贡献。
即将举行的发布网络研讨会
请于 2022 年 9 月 22 日星期四上午 10 点至 11 点(太平洋时间)加入 Kubernetes v1.25 发布团队成员,了解此版本的主要功能,以及弃用和移除的内容,以帮助规划升级。更多信息和注册,请访问活动页面。
参与其中
参与 Kubernetes 的最简单方法是加入众多与你的兴趣相符的特别兴趣小组(SIG)之一。有什么想向 Kubernetes 社区广播的吗?在我们每周的社区会议上分享你的声音,并通过以下渠道:
- 在 Kubernetes 贡献者网站上了解更多关于为 Kubernetes 做贡献的信息
- 在 Twitter 上关注我们 @Kubernetesio 获取最新更新
- 在 Discuss 上加入社区讨论
- 在 Slack 上加入社区
- 在 Server Fault 上提问(或回答问题)。
- 分享你的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的动态
- 了解更多关于 Kubernetes 发布团队的信息