这篇文章已超过一年。较旧的文章可能包含过时内容。请检查页面中的信息自发布以来是否已失效。

Kubernetes v1.26: Electrifying

我们怀着无比喜悦的心情宣布 Kubernetes v1.26 正式发布!

本次发布共包含 37 项增强功能:其中 11 项升级到 Stable,10 项升级到 Beta,16 项进入 Alpha。我们还有 12 项特性被废弃或移除,其中 3 项将在本次公告中详细介绍。

Kubernetes 1.26:“电光火石 (Electrifying)”

Kubernetes v1.26 的主题是 电光火石 (Electrifying)

每个 Kubernetes 发布都是热心志愿者的协调努力成果,只有通过使用遍布全球多个数据中心和区域的多样化且复杂的计算资源才得以实现。发布最终成果——二进制文件、镜像容器、文档——随后被部署到越来越多的个人、本地和云计算资源上。

在本次发布中,我们希望表彰所有这些 Kubernetes 开发和使用的基石的重要性,同时提高对考虑能耗足迹重要性的认识:环境可持续性是任何软件解决方案创建者和使用者都无法回避的问题,而软件(例如 Kubernetes)的环境足迹是我们相信将在未来版本中发挥重要作用的领域。

作为社区,我们一直努力使每个新发布过程比之前更好(例如,在本次发布中,我们已经开始使用 Projects 来跟踪增强功能)。如果v1.24 “Stargazer” 让我们向上看,思考社区团结起来可能实现的事情,而v1.25 “Combiner” 展示了社区共同努力所能实现的能力,那么 v1.26 “电光火石 (Electrifying)” 也献给所有将个人贡献融入发布流程并使这一切成为可能的人。

主要主题

Kubernetes v1.26 包含许多由全球志愿者团队带来的变更。对于本次发布,我们识别出几个主要主题。

容器镜像仓库变更

在上一个发布中,Kubernetes 变更了容器仓库,将负载分散到多个云提供商和区域,这一变更减少了对单个实体的依赖,并为大量用户提供了更快的下载体验。

本次 Kubernetes 发布是第一个完全发布在新 registry.k8s.io 容器镜像仓库中的版本。在(现已遗留的)k8s.gcr.io 镜像仓库中,将不会发布 v1.26 的任何容器镜像标签,只有 v1.26 之前发布的标签会继续更新。有关此重大变更的动机、优势和影响的更多信息,请参阅registry.k8s.io:更快、更便宜并已正式发布 (GA)

CRI v1alpha2 被移除

随着在 v1.24 中采用容器运行时接口 (CRI)移除 dockershim,CRI 是 Kubernetes 与不同容器运行时交互的唯一受支持和文档化的方式。每个 kubelet 会与该节点上的容器运行时协商使用哪个版本的 CRI。

在上一个发布中,Kubernetes 项目推荐使用 CRI 版本 v1,但 kubelet 仍然可以协商使用已废弃的 CRI v1alpha2

Kubernetes v1.26 放弃了对 CRI v1alpha2 的支持。这一移除将导致如果容器运行时不支持 CRI v1,则 kubelet 将不会注册该节点。这意味着 containerd 的次要版本 1.5 及更旧的版本在 Kubernetes 1.26 中不受支持;如果您使用 containerd,则需要在将该节点升级到 Kubernetes v1.26 **之前**升级到 containerd 1.6.0 或更高版本。这同样适用于任何其他只支持 v1alpha2 的容器运行时:如果这影响到您,您应该联系容器运行时供应商寻求建议或查看其网站以获取如何继续操作的额外说明。

存储改进

继上一个发布中核心容器存储接口 (CSI) 迁移特性正式发布 (GA) 之后,CSI 迁移是我们几个发布以来一直努力进行的持续工作,本次发布继续增加(和移除)与迁移目标一致的特性,以及 Kubernetes 存储的其他改进。

Azure File 和 vSphere 的 CSI 迁移升级至 Stable

vSphereAzure 的内置驱动迁移到 CSI 都已升级到 Stable。您可以在 vSphere CSI 驱动Azure File CSI 驱动仓库中找到更多信息。

将 FSGroup 委托给 CSI 驱动 升级至 Stable

此特性允许 Kubernetes 在挂载存储卷时将 Pod 的 fsGroup 提供给 CSI 驱动,以便驱动程序可以利用挂载选项来控制存储卷权限。以前,kubelet 总是根据 Pod 的 .spec.securityContext.fsGroupChangePolicy 字段中指定的策略,将 fsGroup 所有权和权限更改应用于存储卷中的文件。从本次发布开始,CSI 驱动程序可以选择在存储卷附加或挂载时应用 fsGroup 设置。

内置 GlusterFS 驱动被移除

内置 GlusterFS 驱动已在 v1.25 发布中废弃,并在本次发布中被移除

内置 OpenStack Cinder 驱动被移除

本次发布移除了已废弃的 OpenStack 内置存储集成(cinder 卷类型)。您应该迁移到https://github.com/kubernetes/cloud-provider-openstack 中的外部云提供商和 CSI 驱动程序。有关更多信息,请访问Cinder 内置驱动到 CSI 驱动的迁移

签署 Kubernetes 发布工件升级至 Beta

此特性在 Kubernetes v1.24 中引入,是改进 Kubernetes 发布过程安全性的一个重要里程碑。所有发布工件都使用 cosign 进行无密钥签名,并且二进制工件和镜像都可以被验证

对 Windows 特权容器的支持升级至 Stable

特权容器支持允许容器以类似于直接在主机上运行的进程那样访问主机。此特性在 Windows 节点上的支持被称为HostProcess 容器,现在将升级到 Stable,从而能够从特权容器访问主机资源(包括网络资源)。

Kubernetes 指标改进

本次发布在指标方面有几项值得注意的改进。

指标框架扩展升级至 Alpha

指标框架扩展升级到 Alpha,并且Kubernetes 代码库中每个指标的文档现已发布。此增强功能为 Kubernetes 指标添加了两个额外的元数据字段:InternalBeta,表示指标成熟度的不同阶段。

组件健康服务级别指标升级至 Alpha

同样改进了消耗 Kubernetes 指标的能力,组件健康服务级别指标 (SLIs)升级到 Alpha:通过启用 ComponentSLIs 特性门控,将提供一个额外的指标端点,该端点允许从转换为指标格式的原始健康检查数据计算服务级别目标 (SLOs)。

特性指标现已可用

特性指标现已可用于每个 Kubernetes 组件,通过检查组件的指标端点获取 kubernetes_feature_enabled,可以跟踪每个活动的特性门控是否已启用

动态资源分配升级至 Alpha

动态资源分配是一个新特性,它将资源调度权交给第三方开发者:它提供了请求访问资源(例如 nvidia.com/gpu: 2)的有限“可计数”接口的替代方案,提供了一个更类似于持久卷的 API。在底层,它使用容器设备接口 (CDI) 进行设备注入。此特性由 DynamicResourceAllocation 特性门控控制。

Admission Control 中的 CEL 升级至 Alpha

此特性验证性准入策略引入了 v1alpha1 API,通过通用表达式语言 (CEL) 表达式实现可扩展的准入控制。目前,自定义策略通过准入 Webhook 强制执行,Webhook 虽然灵活,但与进程内策略执行相比存在一些缺点。要使用此特性,请启用 ValidatingAdmissionPolicy 特性门控并通过 --runtime-config 启用 admissionregistration.k8s.io/v1alpha1 API。

Pod 调度改进

Kubernetes v1.26 引入了一些相关的增强功能,以更好地控制调度行为。

PodSchedulingReadiness 升级至 Alpha

此特性在 Pod 的 API 中引入了 .spec.schedulingGates 字段,以指示是否允许 Pod 被调度。外部用户/控制器可以使用此字段根据其策略和需求阻止 Pod 被调度。

NodeInclusionPolicyInPodTopologySpread 升级至 Beta

通过在 topologySpreadConstraints 中指定 nodeInclusionPolicy,您可以控制在计算 Pod 拓扑分布偏差时是否考虑污点/容忍度(taints/tolerations)

其他更新

升级至 Stable

本次发布共包含十一项升级至 Stable 的增强功能

废弃和移除

本次发布中有 12 项特性被从 Kubernetes 中废弃或移除

发布说明

Kubernetes v1.26 发布的完整详情可在我们的发布说明中找到。

获取方式

Kubernetes v1.26 可从Kubernetes 网站下载。要开始使用 Kubernetes,请查看这些交互式教程,或者使用容器作为“节点”,通过 kind 运行本地 Kubernetes 集群。您还可以使用kubeadm 轻松安装 v1.26。

发布团队

Kubernetes 的成功离不开社区的支持、承诺和辛勤工作。每个发布团队由热心的社区志愿者组成,他们共同构建构成您所依赖的 Kubernetes 发布的许多部分。这需要来自社区各个角落的人员具备专业技能,从代码本身到文档和项目管理。

我们要感谢整个发布团队付出的辛勤工作,确保为我们的社区提供了坚实的 Kubernetes v1.26 发布。

特别感谢我们的发布负责人 Leonard Pahlke,他在整个发布周期成功地领导了整个发布团队,通过他持续的支持和对构成成功发布的众多细节的关注,确保我们所有人都能以最佳方式为本次发布做出贡献。

用户亮点

生态系统更新

  • KubeCon + CloudNativeCon Europe 2023 将于 2023 年 4 月 17 日至 21 日在荷兰阿姆斯特丹举行!您可以在活动网站上找到有关会议和注册的更多信息。
  • CloudNativeSecurityCon North America 是一个为期两天的活动,旨在促进云原生安全项目的协作、讨论和知识共享,以及如何最好地利用这些项目来应对安全挑战和机遇,将于 2023 年 2 月 1 日至 2 日在美国华盛顿州西雅图举行。请参阅活动页面了解更多信息。
  • CNCF 宣布了2022 年度社区奖获奖者:社区奖旨在表彰为推动云原生技术做出杰出贡献的 CNCF 社区成员。

项目活跃度

CNCF K8s DevStats 项目汇集了许多与 Kubernetes 及各种子项目活跃度相关的有趣数据点。这包括从个人贡献到贡献公司数量的一切信息,是展示推动这个生态系统发展所需的努力的深度和广度的佐证。

在 v1.26 发布周期(持续 14 周,从 9 月 5 日到 12 月 9 日)中,我们看到了来自 976 家公司6877 位个人的贡献。

即将到来的发布网络研讨会

加入 Kubernetes v1.26 发布团队成员,于 2023 年 1 月 17 日星期二 10:00 - 11:00 EST (3:00pm - 4:00pm UTC) 了解此版本的关键特性,以及弃用和移除,以便为升级做规划。欲了解更多信息并注册,请访问活动页面

参与其中

参与 Kubernetes 最简单的方式是加入众多与您的兴趣相关的特别兴趣小组 (SIG)。

您有什么想向 Kubernetes 社区传播的吗?在我们每周的社区会议上,并通过以下渠道发出您的声音