本文已超过一年。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变为不正确。
Kubernetes v1.26:令人振奋
我们怀着无比喜悦的心情宣布 Kubernetes v1.26 的发布!
此版本总共包含 37 项增强功能:其中 11 项升级为稳定版,10 项升级为 Beta 版,16 项进入 Alpha 版。我们还有 12 项功能被弃用或移除,其中 3 项将在本次公告中详细说明。
发布主题和徽标
Kubernetes 1.26:电气化

Kubernetes v1.26 的主题是电气化。
每个 Kubernetes 版本都是由敬业的志愿者协调努力的结果,并且只有通过使用分布在全球多个数据中心和地区的各种复杂计算资源才有可能实现。发布最终结果 - 二进制文件、镜像容器、文档 - 然后部署在越来越多的个人、本地和云计算资源上。
在此版本中,我们希望认识到所有这些 Kubernetes 开发和使用的基础组件的重要性,同时提高人们对考虑能源消耗足迹的重要性的认识:环境可持续性是任何软件解决方案的创建者和用户都不可回避的问题,并且像 Kubernetes 这样的软件的环境足迹,我们认为将在未来版本中发挥重要作用。
作为一个社区,我们始终致力于使每个新版本的流程都比以前更好(例如,在此版本中,我们开始使用项目来跟踪增强功能)。如果v1.24 "观星者"让我们抬头仰望,当我们社区团结一致时,一切皆有可能,并且v1.25 "组合器"体现了我们社区的共同努力所能实现的目标,那么这个 v1.26 "电气化" 也献给所有那些融入发布流程中的个人贡献,使这一切成为可能的人们。
主要主题
Kubernetes v1.26 由全球志愿者团队带来的许多更改组成。对于此版本,我们确定了几个主要主题。
容器镜像注册表变更
在上一个版本中,Kubernetes 更改了容器注册表,允许将负载分散到多个云提供商和区域,这一更改减少了对单个实体的依赖,并为大量用户提供了更快的下载体验。
此 Kubernetes 版本是第一个完全发布在新的 registry.k8s.io
容器镜像注册表中的版本。在(现在已过时的)k8s.gcr.io
镜像注册表中,不会发布 v1.26 的任何容器镜像标签,并且只会继续更新 v1.26 之前的版本的标签。请参阅 registry.k8s.io:更快、更便宜且普遍可用,了解有关此重大更改的动机、优势和影响的更多信息。
CRI v1alpha2 已删除
随着 容器运行时接口 (CRI) 的采用和 v1.24 中 dockershim 的移除,CRI 是 Kubernetes 与不同容器运行时交互的唯一受支持和记录的方式。每个 kubelet 都会与该节点上的容器运行时协商要使用的 CRI 版本。
在上一个版本中,Kubernetes 项目建议使用 CRI 版本 v1
,但 kubelet 仍然可以协商使用已弃用的 CRI v1alpha2
。
Kubernetes v1.26 放弃了对 CRI v1alpha2
的支持。如果容器运行时不支持 CRI v1
,则 删除将导致 kubelet 不注册该节点。这意味着 Kubernetes 1.26 不支持 containerd 1.5 及更早的版本;如果您使用 containerd,则需要在将该节点升级到 Kubernetes v1.26 之前升级到 containerd 版本 1.6.0 或更高版本。这同样适用于任何其他仅支持 v1alpha2
的容器运行时:如果这影响到您,您应该联系容器运行时供应商以获取建议或查看其网站,了解有关如何前进的其他说明。
存储改进
在上一版本中 核心容器存储接口 (CSI) 迁移功能 GA 之后,CSI 迁移是一项我们已经进行了几个版本的持续工作,并且此版本继续添加(和删除)与迁移目标一致的功能,以及对 Kubernetes 存储的其他改进。
Azure 文件和 vSphere 的 CSI 迁移升级为稳定版
vSphere 和 Azure 的内部驱动程序到 CSI 的迁移均已升级为稳定版。您可以在 vSphere CSI 驱动程序 和 Azure 文件 CSI 驱动程序存储库中找到有关它们的更多信息。
将 FSGroup 委托给 CSI 驱动程序升级为稳定版
此功能允许 Kubernetes 在挂载卷时将 pod 的 fsGroup
提供给 CSI 驱动程序,以便驱动程序可以利用挂载选项来控制卷权限。以前,kubelet 始终根据 Pod 的 .spec.securityContext.fsGroupChangePolicy
字段中指定的策略,将 fsGroup
所有权和权限更改应用于卷中的文件。从该版本开始,CSI 驱动程序可以选择在卷的附加或挂载期间应用 fsGroup
设置。
内部 GlusterFS 驱动程序删除
在 v1.25 版本中已弃用,内部 GlusterFS 驱动程序在此版本中已 删除。
内部 OpenStack Cinder 驱动程序删除
此版本删除了针对 OpenStack(cinder
卷类型)的已弃用的内部存储集成。您应该从 https://github.com/kubernetes/cloud-provider-openstack 迁移到外部云提供商和 CSI 驱动程序。有关更多信息,请访问 Cinder 内部到 CSI 驱动程序迁移。
签署 Kubernetes 发布工件升级为 Beta 版
在 Kubernetes v1.24 中引入的 此功能 是提高 Kubernetes 发布过程安全性的一个重要里程碑。所有发布工件都使用 cosign 进行无密钥签名,并且二进制工件和镜像都可以验证。
对 Windows 特权容器的支持升级为稳定版
特权容器支持允许容器以与直接在主机上运行的进程类似的权限运行。在 Windows 节点中对此功能的支持,称为 HostProcess 容器,现在将 升级为稳定版,从而可以从特权容器访问主机资源(包括网络资源)。
Kubernetes 指标的改进
此版本在指标方面有几个值得注意的改进。
指标框架扩展升级为 Alpha 版
指标框架扩展 升级为 Alpha 版,并且现在为 Kubernetes 代码库中的每个指标发布了文档。此增强功能为 Kubernetes 指标添加了两个额外的元数据字段:Internal
和 Beta
,代表指标成熟度的不同阶段。
组件健康服务级别指标升级为 Alpha 版
同时改进了使用 Kubernetes 指标的能力,组件健康服务级别指标 (SLI) 已 升级为 Alpha 版:通过启用 ComponentSLIs
功能标志,将有一个额外的指标端点,该端点允许从转换为指标格式的原始健康检查数据中计算服务级别目标 (SLO)。
现在可以使用功能指标
现在可以使用每个 Kubernetes 组件的功能指标,从而可以通过检查组件的指标端点的 kubernetes_feature_enabled
来跟踪每个活动功能门是否已启用。
动态资源分配升级为 Alpha 版
动态资源分配是一项新功能,它将资源调度置于第三方开发人员手中:它为请求访问资源提供了一种替代有限的“可计数”接口(例如,nvidia.com/gpu: 2
)的方式,提供更类似于持久卷的 API。在底层,它使用 容器设备接口 (CDI) 来执行设备注入。此功能受 DynamicResourceAllocation
功能门阻止。
准入控制中的 CEL 升级为 Alpha 版
此功能为验证准入策略引入了 v1alpha1
API,通过 通用表达式语言表达式启用可扩展的准入控制。目前,自定义策略通过 准入 Webhook 强制执行,虽然它们很灵活,但与进程内策略强制执行相比,存在一些缺点。要使用,请通过 --runtime-config
启用 ValidatingAdmissionPolicy
功能门和 admissionregistration.k8s.io/v1alpha1
API。
Pod 调度改进
Kubernetes v1.26 对更好地控制调度行为的能力进行了一些相关增强。
PodSchedulingReadiness
升级为 Alpha 版
此功能将 .spec.schedulingGates
字段引入 Pod 的 API,以指示是否允许调度 Pod。外部用户/控制器可以使用此字段来根据其策略和需求阻止 Pod 的调度。
NodeInclusionPolicyInPodTopologySpread
升级为 Beta 版
通过在 topologySpreadConstraints
中指定 nodeInclusionPolicy
,您可以控制在计算 Pod 拓扑分散偏差时是否考虑污点/容忍。
其他更新
升级为稳定版
此版本总共包含 11 项增强功能,已提升为稳定版
- 对 Windows 特权容器的支持
- vSphere 内部到 CSI 驱动程序迁移
- 允许 Kubernetes 在挂载时将 pod 的 fsgroup 提供给 CSI 驱动程序
- Azure 文件内部到 CSI 驱动程序迁移
- 在没有持久 Pod 的情况下跟踪作业
- 服务内部流量策略
- Kubelet 凭据提供程序
- 支持类型为 LoadBalancer 的服务中的混合协议
- 为动态和静态 IP 分配保留服务 IP 范围
- CPUManager
- DeviceManager
弃用和删除
在此版本中,有 12 项功能从 Kubernetes 中弃用或移除。
- CRI
v1alpha2
API 已删除 - 删除
v1beta1
流控制 API 组 - 删除
v2beta2
HorizontalPodAutoscaler API - 从可用的内部驱动程序中删除 GlusterFS 插件
- 删除与日志记录相关的旧命令行参数
- 删除
kube-proxy
用户空间模式 - 删除内部凭据管理代码
- 内部 OpenStack 云提供程序已删除
- 删除动态 kubelet 配置
- 弃用非包容性
kubectl
标志 kube-apiserver
命令行参数的弃用kubectl run
命令行参数的弃用
发行说明
Kubernetes v1.26 版本的完整详细信息,请参阅我们的发行说明。
可用性
Kubernetes v1.26 可在 Kubernetes 站点上下载。要开始使用 Kubernetes,请查看这些交互式教程,或者使用容器作为“节点”运行本地 Kubernetes 集群,使用 kind。您还可以使用 kubeadm 轻松安装 v1.26。
发布团队
Kubernetes 的成功离不开社区的支持、奉献和辛勤工作。每个发布团队都由热情的社区志愿者组成,他们共同努力构建组成您所依赖的 Kubernetes 版本的许多组件。这需要我们社区各个角落的人员的专业技能,从代码本身到其文档和项目管理。
我们要感谢整个发布团队,他们花费了大量时间辛勤工作,以确保我们为社区提供可靠的 Kubernetes v1.26 版本。
特别感谢我们的发布负责人 Leonard Pahlke,感谢他在整个发布周期中成功地指导整个发布团队,通过他持续的支持和关注构成成功发布的许多细节,确保我们能够以最佳方式为此版本做出贡献。
用户亮点
- Wortell 面临着日益增长的开发人员专业知识和日常基础设施管理时间需求。他们使用 Dapr 来降低复杂性并减少所需的基础设施相关代码,从而使他们能够将更多时间集中在新功能上。
- Utmost 处理敏感的个人数据,需要 SOC 2 Type II 认证、ISO 27001 认证和零信任网络。使用 Cilium,他们创建了自动化管道,允许开发人员创建新策略,支持每秒超过 4,000 个流。
- 全球网络安全公司 Ericom 的解决方案依赖于超低延迟和数据安全。通过 Ridge 的托管 Kubernetes 服务,他们能够通过单个 API 部署到全球服务提供商网络。
- 一家斯堪的纳维亚在线银行 Lunar 希望实施季度生产集群故障转移测试,为灾难恢复做准备,并且需要一种更好的方式来管理他们的平台服务。他们首先集中了日志管理系统,然后集中了所有平台服务,并使用 Linkerd 连接集群。
- Datadog 在多个云提供商上运行着 10 多个集群,其中包含 10,000 多个节点和 100,000 多个 Pod。他们转而使用 Cilium 作为 CNI 和 kube-proxy 的替代方案,以利用 eBPF 的强大功能,并为他们用户在任何云上提供一致的网络体验。
- Insiel 希望更新其软件生产方法,并在其软件生产中引入云原生范例。他们与 Kiratech 和 Microsoft Azure 的数字化转型项目使他们能够发展云优先文化。
生态系统更新
- 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 位个人的贡献。
即将举行的发布网络研讨会
请于 2023 年 1 月 17 日星期二美国东部时间上午 10 点至 11 点(格林威治标准时间下午 3 点至 4 点)加入 Kubernetes v1.26 发布团队的成员,了解此版本的主要功能,以及有助于规划升级的弃用和删除内容。有关更多信息和注册,请访问活动页面。
参与其中
参与 Kubernetes 的最简单方法是加入与您的兴趣相符的许多特别兴趣小组 (SIG) 之一。
您有什么想向 Kubernetes 社区广播的内容吗?请在我们的每周社区会议上以及通过以下渠道分享您的声音
- 在 Kubernetes 贡献者网站上了解有关为 Kubernetes 做贡献的更多信息
- 在 Twitter 上关注我们@Kubernetesio,了解最新更新
- 在 Discuss 上加入社区讨论
- 在 Slack 上加入社区
- 在 Server Fault 上发布问题(或回答问题)
- 分享您的 Kubernetes 故事
- 在博客上了解有关 Kubernetes 最新动态的更多信息
- 了解有关Kubernetes 发布团队的更多信息