本文已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变得不正确。

Kubernetes v1.25:组合器

宣布发布 Kubernetes v1.25!

此版本共包含 40 项增强功能。其中 15 项增强功能进入 Alpha 阶段,10 项升级到 Beta 阶段,13 项升级到稳定阶段。我们还有两个功能被弃用或删除。

Kubernetes 1.25:组合器

Kubernetes v1.25 的主题是组合器

Kubernetes 项目本身由许多独立的组件组成,这些组件组合在一起构成了您今天看到的项目。它也由许多个人构建和维护,他们都具有不同的技能、经验、历史和兴趣,他们不仅作为发布团队,而且作为全年支持项目和社区的许多 SIG 加入到一起。

在这个版本中,我们希望向协作和开放的精神致敬,正是这种精神将我们从全球各地孤立的开发者、撰稿人和用户聚集在一起,形成一股能够改变世界的联合力量。Kubernetes v1.25 包含了惊人的 40 项增强功能,如果没有我们共同努力产生的强大力量,这些增强功能都不可能存在。

受我们的发布负责人之子 Albert Song 的启发,Kubernetes v1.25 以你们每一个人的名字命名,无论你们选择如何贡献你们独特的力量,汇聚成 Kubernetes 的强大力量。

新特性(主要主题)

PodSecurityPolicy 被移除;Pod 安全准入升级为稳定版

PodSecurityPolicy 最初在 v1.21 版本中被弃用,并且随着 v1.25 版本的发布,它已被移除。为了提高其可用性而进行的更新会引入重大变更,因此有必要将其移除,转而采用更友好的替代方案。这个替代方案是 Pod 安全准入,它随着此版本的发布升级为稳定版。如果您目前依赖 PodSecurityPolicy,请按照 迁移到 Pod 安全准入 的说明进行操作。

临时容器升级为稳定版

临时容器 是仅在现有 Pod 内存在有限时间的容器。当您需要检查另一个容器但由于该容器崩溃或其镜像缺少调试实用程序而无法使用 kubectl exec 时,这对于故障排除特别有用。临时容器在 Kubernetes v1.23 中升级为 Beta 版,而在此版本中,该功能升级为稳定版。

对 cgroups v2 的支持升级为稳定版

自 Linux 内核 cgroups v2 API 被声明为稳定版以来已经过去了两年多。随着一些发行版现在默认使用此 API,Kubernetes 必须支持它才能继续在这些发行版上运行。cgroups v2 提供了比 cgroups v1 更好的几个改进,有关更多信息,请参阅 cgroups v2 文档。虽然 cgroups v1 将继续得到支持,但此增强功能使我们能够为它的最终弃用和替换做好准备。

改进的 Windows 支持

将容器注册服务从 k8s.gcr.io 移动到 registry.k8s.io

将容器注册表从 k8s.gcr.io 移动到 registry.k8s.io 已合并。有关更多详细信息,请参阅 wiki 页面公告 已发送到 Kubernetes 开发邮件列表。

SeccompDefault 提升为 Beta 版,有关更多详细信息,请参阅教程 使用 seccomp 限制容器的系统调用

网络策略 中的 endPort 提升为 GA。支持 endPort 字段的网络策略提供程序现在可以使用它来指定要应用网络策略的端口范围。以前,每个网络策略只能针对单个端口。

请注意,网络策略提供程序必须支持 endPort 字段。如果您的提供程序不支持 endPort,并且在网络策略中指定了此字段,则将创建仅覆盖 port 字段(单个端口)的网络策略。

本地临时存储容量隔离 功能已移至 GA。它在 1.8 版本中作为 Alpha 版引入,在 1.10 版本中移至 Beta 版,现在它是一个稳定的功能。它为 Pod 之间的本地临时存储(例如 EmptyDir)的容量隔离提供支持,以便可以通过驱逐 Pod 来严格限制 Pod 对共享资源的消耗,如果其对本地临时存储的消耗超过了该限制。

CSI 迁移 是 SIG Storage 一直在进行的一项工作,已经持续了几个版本。目标是将树内卷插件移动到树外 CSI 驱动程序,并最终删除树内卷插件。核心 CSI 迁移 功能已移至 GA。GCE PD 和 AWS EBS 的 CSI 迁移也已移至 GA。vSphere 的 CSI 迁移仍处于 Beta 版(但默认启用)。Portworx 的 CSI 迁移已移至 Beta 版(但默认禁用)。

CSI 临时卷 功能允许直接在 Pod 规范中指定 CSI 卷,以用于临时用例。它们可用于使用挂载卷将任意状态(例如配置、密钥、身份、变量或类似信息)直接注入到 Pod 中。它最初在 1.15 中作为 Alpha 功能引入,并已移至 GA。此功能被某些 CSI 驱动程序使用,例如 secret-store CSI 驱动程序

CRD 验证表达式语言 提升为 Beta 版,这使得可以使用 通用表达式语言 (CEL) 声明如何验证自定义资源。请参阅 验证规则 指南。

ServerSideFieldValidation 功能门提升为 Beta 版(默认启用)。这允许在 API 服务器上可选地触发模式验证,当检测到未知字段时会报错。这允许从 kubectl 中删除客户端验证,同时保持对包含未知或无效字段的请求报错的相同核心功能。

引入 KMS v2 API

引入 KMS v2alpha1 API 以增加性能、轮换和可观察性方面的改进。使用 AES-GCM 而不是 AES-CBC 进行 kms 数据加密,使用 DEK 加密静态数据(即 Kubernetes Secrets)。无需用户操作。将继续允许使用 AES-GCM 和 AES-CBC 进行读取。有关更多信息,请参阅指南 使用 KMS 提供程序进行数据加密

Kube-proxy 镜像现在基于 distroless 镜像

在之前的版本中,kube-proxy 容器镜像使用 Debian 作为基础镜像构建。从此版本开始,镜像现在使用 distroless 构建。此更改使镜像大小减少了近 50%,并将已安装的软件包和文件数量减少到仅 kube-proxy 执行其工作所严格需要的那些。

其他更新

升级为稳定版

此版本总共包含了 13 项升级为稳定版的增强功能

弃用和删除

在此版本中,两个功能已从 Kubernetes 中 弃用或删除

发行说明

Kubernetes v1.25 版本的完整详细信息可在我们的 发行说明 中找到。

可用性

Kubernetes v1.25 可在 GitHub 上下载。要开始使用 Kubernetes,请查看这些 交互式教程 或使用容器作为“节点”运行本地 Kubernetes 集群,并使用 kind。您还可以使用 kubeadm 轻松安装 1.25。

发布团队

只有通过社区的支持、承诺和辛勤工作,Kubernetes 才能成为可能。每个发布团队都由敬业的社区志愿者组成,他们共同努力构建许多组件,这些组件组合在一起构成了您所依赖的 Kubernetes 版本。这需要我们社区各个角落的人员的专业技能,从代码本身到其文档和项目管理。

我们要感谢整个发布团队花费的时间和辛勤工作,以确保我们为社区交付可靠的 Kubernetes v1.25 版本。你们每个人都为构建它做出了贡献,并且你们都出色地执行了任务。我们要特别感谢我们无所畏惧的发布负责人 Cici Huang,感谢她为保证我们获得成功所需的一切所做的一切。

用户亮点

生态系统更新

  • 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 社区广播的内容吗?请在我们的每周社区会议以及以下渠道中分享您的声音