本文已超过一年。较旧的文章可能包含过时的内容。请检查页面信息自发布以来是否仍准确无误。
Kubernetes v1.25: Combiner
公布 Kubernetes v1.25 发布!
本次发布共包含 40 项增强功能。其中 15 项增强功能进入 Alpha 阶段,10 项晋升至 Beta 阶段,13 项晋升至 Stable 阶段。此外,还有两项特性被废弃或移除。
发布主题和 Logo
Kubernetes 1.25:Combiner

Kubernetes v1.25 的主题是 Combiner。
Kubernetes 项目本身由众多独立的组件组成,这些组件组合在一起,构成了你今天所看到的项目。它也由许多具有不同技能、经验、背景和兴趣的个人构建和维护,他们不仅作为发布团队协同工作,还作为众多 SIG 全年支持着项目和社区。
借此发布之际,我们希望致敬将我们这些分散在全球各地的独立开发者、文档作者和用户凝聚成一股能够改变世界的力量的协作开放精神。Kubernetes v1.25 包含了多达 40 项增强功能,如果没有我们协作带来的强大力量,这些功能都不会存在。
受我们的发布主管的儿子 Albert Song 的启发,Kubernetes v1.25 以你们每一个人命名,无论你选择以何种方式将你独特的力量贡献给汇聚成 Kubernetes 的合力。
新增内容(主要主题)
PodSecurityPolicy 已移除;Pod Security Admission 晋升至 Stable 阶段
PodSecurityPolicy 最初在 v1.21 中被废弃,并在 v1.25 发布时被移除。为了改进其可用性所需的更新会引入破坏性变更,因此有必要将其移除,取而代之的是一个更友好的替代方案。这个替代方案就是 Pod Security Admission,它在此次发布中晋升至 Stable 阶段。如果你目前依赖 PodSecurityPolicy,请遵循迁移到 Pod Security Admission 的指南。
Ephemeral Containers 晋升至 Stable 阶段
Ephemeral Containers 是仅在现有 Pod 内短暂存在的容器。当你需要检查另一个容器,但由于该容器崩溃或其镜像缺少调试工具而无法使用 kubectl exec
时,这对于故障排除特别有用。Ephemeral Containers 在 Kubernetes v1.23 中晋升至 Beta 阶段,在此次发布中,该特性晋升至 Stable 阶段。
支持 cgroups v2 晋升至 Stable 阶段
自 Linux 内核 cgroups v2 API 被宣布稳定以来,已经过去两年多了。鉴于一些发行版现在默认使用此 API,Kubernetes 必须支持它才能在这些发行版上继续运行。cgroups v2 比 cgroups v1 提供了多项改进,更多信息请参阅 cgroups v2 文档。虽然 cgroups v1 将继续得到支持,但此增强功能使我们能够为 cgroups v1 最终的废弃和替代做好准备。
改进的 Windows 支持
- 性能仪表板增加了对 Windows 的支持
- 单元测试增加了对 Windows 的支持
- 一致性测试增加了对 Windows 的支持
- 为 Windows Operational Readiness 创建了新的 GitHub 仓库
将容器注册表服务从 k8s.gcr.io 迁移到 registry.k8s.io
将容器注册表从 k8s.gcr.io 迁移到 registry.k8s.io 的工作已合并。更多详情请参见 wiki 页面,相关公告已发送到 kubernetes 开发邮件列表。
SeccompDefault 晋升至 Beta 阶段
更多详情请参阅教程:使用 seccomp 限制容器系统调用。
Network Policy 中的 endPort 晋升至 Stable 阶段
Network Policy 中的 endPort
晋升至 GA 阶段。支持 endPort
字段的 Network Policy 提供商现在可以使用它来指定要应用 Network Policy 的端口范围。以前,每个 Network Policy 只能针对单个端口。
请注意,endPort
字段必须由 Network Policy 提供商支持。如果你的提供商不支持 endPort
,并且在 Network Policy 中指定了此字段,则创建的 Network Policy 将仅覆盖 port 字段(单个端口)。
Local Ephemeral Storage Capacity Isolation 晋升至 Stable 阶段
Local Ephemeral Storage Capacity Isolation 特性已晋升至 GA 阶段。该特性在 1.8 中作为 Alpha 引入,在 1.10 中晋升至 Beta,现在是稳定的特性。它为 Pod 之间的本地临时存储(例如 EmptyDir
)提供了容量隔离支持,以便可以在 Pod 消耗的本地临时存储超出限制时,通过逐出 Pod 的方式来对其共享资源消耗进行硬限制。
核心 CSI Migration 晋升至 Stable 阶段
CSI Migration 是 SIG Storage 团队在过去几个版本中持续进行的工作。目标是将树内(in-tree)卷插件迁移到树外(out-of-tree)CSI 驱动程序,并最终移除树内卷插件。核心 CSI Migration 特性已晋升至 GA 阶段。GCE PD 和 AWS EBS 的 CSI Migration 也已晋升至 GA。vSphere 的 CSI Migration 仍处于 Beta 阶段(但默认开启)。Portworx 的 CSI Migration 已晋升至 Beta 阶段(但默认关闭)。
CSI Ephemeral Volume 晋升至 Stable 阶段
CSI Ephemeral Volume 特性允许在 Pod 规约中直接指定 CSI 卷,用于临时用例。它们可用于通过挂载的卷将任意状态(例如配置、密钥、身份、变量或类似信息)直接注入到 Pod 中。该特性最初在 1.15 中作为 Alpha 特性引入,现已晋升至 GA。某些 CSI 驱动程序(例如 secret-store CSI 驱动程序)使用了此特性。
CRD Validation Expression Language 晋升至 Beta 阶段
CRD Validation Expression Language 晋升至 Beta 阶段,使得可以使用 Common Expression Language (CEL) 声明如何校验自定义资源。请参阅校验规则指南。
Server Side Unknown Field Validation 晋升至 Beta 阶段
将 ServerSideFieldValidation
特性门晋升至 Beta 阶段(默认开启)。这允许在 API 服务器上可选地触发 Schema 校验,当检测到未知字段时会报错。这使得可以从 kubectl 中移除客户端校验,同时保留在包含未知或无效字段的请求时报错的核心功能。
引入 KMS v2 API
引入 KMS v2alpha1 API 以增加性能、轮换和可观测性方面的改进。使用 DEK 通过 AES-GCM 而非 AES-CBC 加密静态数据(即 Kubernetes Secrets
),用于 KMS 数据加密。无需用户操作。使用 AES-GCM 和 AES-CBC 的读取仍将继续被允许。更多信息请参阅指南:使用 KMS 提供商进行数据加密。
Kube-proxy 镜像现在基于 distroless 镜像构建
在以前的版本中,kube-proxy 容器镜像使用 Debian 作为基础镜像构建。从本次发布开始,镜像现在使用 distroless 构建。这一变化将镜像大小减少了近 50%,并减少了安装的软件包和文件数量,仅保留了 kube-proxy 正常工作所需的必要文件。
其他更新
晋升至 Stable 阶段的特性
本次发布共有 13 项增强功能晋升至 Stable 阶段
- Ephemeral Containers
- Local Ephemeral Storage Resource Management
- CSI Ephemeral Volumes
- 核心 CSI Migration
- 将 kube-scheduler ComponentConfig 晋升至 GA 阶段
- CSI Migration - AWS
- CSI Migration - GCE
- DaemonSets 支持 MaxSurge
- NetworkPolicy 端口范围
- cgroups v2
- Pod 安全准入
- 为 Statefulsets 添加
minReadySeconds
- 在 API 准入层面权威性地识别 Windows Pod
弃用和移除
本次发布从 Kubernetes 中弃用或移除了两项特性。
发布说明
Kubernetes v1.25 版本的完整详情可在我们的发布说明中找到。
可用性
Kubernetes v1.25 版本可在GitHub上下载。要开始使用 Kubernetes,请查看这些交互式教程,或使用kind通过容器作为“节点”运行本地 Kubernetes 集群。你还可以使用kubeadm轻松安装 1.25。
发布团队
Kubernetes 的实现离不开其社区的支持、承诺和辛勤工作。每个发布团队都由敬业的社区志愿者组成,他们共同努力构建构成你所依赖的 Kubernetes 版本的众多组件。这需要来自社区各个角落的人们的专业技能,从代码本身到其文档和项目管理。
我们要感谢整个发布团队付出的辛勤工作,确保我们为社区交付一个稳固的 Kubernetes v1.25 版本。你们每个人都在构建此版本中发挥了作用,并且都表现出色。我们要特别感谢我们无畏的发布负责人 Cici Huang,感谢她为确保我们取得成功所做的一切。
用户亮点
- Finleap Connect 在高度监管的环境中运营。2019 年,他们有五个月的时间在其集群的所有服务中实施相互 TLS (mTLS),以使其业务代码符合新的欧洲 PSD2 支付指令。
- PNC 寻求开发一种方法,以自动确保新代码满足安全标准和审计合规要求——取代他们现有的繁琐的 30 天手动流程。PNC 使用 Knative,开发了内部工具来自动检查新代码和现有代码的更改。
- Nexxiot 需要高度可靠、安全、高性能且成本高效的 Kubernetes 集群。他们选择 Cilium 作为 CNI 来锁定其集群,并通过可靠的第二天运营实现弹性网络。
- 由于创建网络保险单的过程是一个复杂的多步骤过程,At-Bay 寻求通过使用基于异步消息的通信模式/设施来改进操作。他们确定 Dapr 满足了其期望的需求列表及更多功能。
生态系统更新
- KubeCon + CloudNativeCon 北美 2022 将于 2022 年 10 月 24 日至 28 日在密歇根州底特律举行!你可以在活动网站上找到有关会议和注册的更多信息。
- KubeDay 系列活动将于 12 月 7 日在日本 KubeDay 拉开帷幕!请在活动网站上注册或提交提案。
- 在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 发布团队的信息