本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。
Kubernetes 1.24: Stargazer
我们很高兴地宣布 Kubernetes 1.24 的发布,这是 2022 年的第一个版本!
此版本包含 46 项增强功能:14 项增强功能已进入稳定阶段,15 项增强功能正在进入 Beta 阶段,13 项增强功能正在进入 Alpha 阶段。此外,还有两项功能已被弃用,两项功能已被移除。
主要主题
Dockershim 已从 kubelet 中移除
在 v1.20 中被弃用后,dockershim 组件已在 Kubernetes v1.24 中从 kubelet 中移除。从 v1.24 开始,如果您依赖 Docker Engine 作为容器运行时,则需要使用其他支持的运行时(例如 containerd 或 CRI-O)之一,或者使用 cri-dockerd。有关确保您的集群为此次移除做好准备的更多信息,请参阅本指南。
默认关闭 Beta API
新的 Beta API 将不会在集群中默认启用。现有的 Beta API 和现有 Beta API 的新版本将继续默认启用。
为发布工件签名
发布工件使用 cosign 签名进行签名,并且实验性地支持验证镜像签名。为发布工件进行签名和验证是为 Kubernetes 发布过程增强软件供应链安全性的一部分。
OpenAPI v3
Kubernetes 1.24 提供了以 OpenAPI v3 格式发布其 API 的 Beta 支持。
存储容量和卷扩展已正式发布(GA)
存储容量跟踪支持通过 CSIStorageCapacity 对象暴露当前可用的存储容量,并增强了使用延迟绑定的 CSI 卷的 Pod 的调度。
卷扩展增加了对调整现有持久卷大小的支持。
NonPreemptingPriority 进入稳定阶段
此功能为 PriorityClasses 添加了一个新选项,可以启用或禁用 Pod 抢占。
存储插件迁移
工作正在进行中,以将树内存储插件的内部迁移到调用 CSI 插件,同时保持原始 API。Azure Disk 和 OpenStack Cinder 插件都已迁移。
gRPC 探针进入 Beta 阶段
随着 Kubernetes 1.24 的发布,gRPC 探针功能已进入 Beta 阶段并默认可用。您现在可以在 Kubernetes 内部为您的 gRPC 应用程序配置启动、存活和就绪探针,而无需暴露 HTTP 端点或使用额外的可执行文件。
Kubelet 凭据提供程序进入 Beta 阶段
最初在 Kubernetes 1.20 中作为 Alpha 版发布,kubelet 对镜像凭据提供程序的支持现已进入 Beta 阶段。这允许 kubelet 使用 exec 插件动态检索容器镜像注册表的凭据,而不是将凭据存储在节点的文件系统上。
上下文日志记录进入 Alpha 阶段
Kubernetes 1.24 引入了上下文日志记录,它使函数的调用者能够控制日志记录的所有方面(输出格式、详细程度、附加值和名称)。
避免服务 IP 分配冲突
Kubernetes 1.24 引入了一个新的可选功能,允许您为服务的静态 IP 地址分配软保留一个范围。通过手动启用此功能,集群将优先从服务 IP 地址池中自动分配,从而降低冲突的风险。
服务的 ClusterIP
可以被分配
- 动态地,这意味着集群将自动在配置的服务 IP 范围内选择一个空闲的 IP。
- 静态地,这意味着用户将在配置的服务 IP 范围内设置一个 IP。
服务的 ClusterIP
是唯一的;因此,尝试创建一个使用已被分配的 ClusterIP
的服务将返回一个错误。
动态 Kubelet 配置已从 Kubelet 中移除
在 Kubernetes 1.22 中被弃用后,动态 Kubelet 配置已从 kubelet 中移除。该功能将在 Kubernetes 1.26 中从 API 服务器中移除。
与 CNI 版本相关的重大变更
在升级到 Kubernetes 1.24 之前,请验证您正在使用/升级到一个已经过测试可以与此版本正常工作的容器运行时。
例如,以下容器运行时正在准备或已经准备好用于 Kubernetes
- containerd v1.6.4 及更高版本,v1.5.11 及更高版本
- CRI-O 1.24 及更高版本
在 containerd v1.6.0-v1.6.3 中,当 CNI 插件未升级和/或 CNI 配置版本未在 CNI 配置文件中声明时,Pod 的 CNI 网络设置和拆除存在服务问题。containerd 团队报告称,“这些问题在 containerd v1.6.4 中已解决。”
使用 containerd v1.6.0-v1.6.3 时,如果您不升级 CNI 插件和/或声明 CNI 配置版本,您可能会遇到以下“不兼容的 CNI 版本”或“销毁沙箱网络失败”的错误情况。
CSI 快照
此信息是在初次发布后添加的。
VolumeSnapshot v1beta1 CRD 已被移除。为 Kubernetes 和容器存储接口 (CSI) 提供的卷快照和恢复功能,它提供了标准化的 API 设计 (CRD) 并为 CSI 卷驱动程序添加了 PV 快照/恢复支持,已在 v1.20 中进入 GA 阶段。VolumeSnapshot v1beta1 在 v1.20 中被弃用,现已不受支持。有关更多信息,请参阅 KEP-177: CSI Snapshot 和卷快照 GA 博客。
其他更新
升级为稳定版
此版本中有十四项增强功能提升至稳定版
- 容器存储接口 (CSI) 卷扩展
- Pod 开销:计算与 Pod 沙箱相关但非特定容器的资源。
- 为 PriorityClasses 添加非抢占选项
- 存储容量跟踪
- OpenStack Cinder 树内驱动到 CSI 驱动的迁移
- Azure Disk 树内驱动到 CSI 驱动的迁移
- 高效的 Watch 恢复:在 kube-apiserver 重启后可以高效地恢复 Watch。
- Service Type=LoadBalancer Class 字段:引入一个新的 Service 注解
service.kubernetes.io/load-balancer-class
,允许在同一集群中有多个type: LoadBalancer
服务的实现。 - 索引式 Job:为具有固定完成计数的 Job 的 Pod 添加完成索引。
- 为 Jobs API 添加 Suspend 字段:为 Jobs API 添加一个 suspend 字段,以允许编排器创建 Job 时能更好地控制 Pod 的创建时机。
- Pod 亲和性的 NamespaceSelector:为 Pod 亲和性/反亲和性规约添加一个
namespaceSelector
字段。 - 控制器管理器的领导者迁移:kube-controller-manager 和 cloud-controller-manager 可以在高可用性控制平面中应用新的控制器到控制器管理器的分配,而无需停机。
- CSR 持续时间:扩展 CertificateSigningRequest API,增加一种机制,允许客户端请求颁发的证书具有特定的持续时间。
重大变更
此版本有两项重大变更
版本说明
请在我们的发布说明中查看 Kubernetes 1.24 发布的全部详情。
可用性
Kubernetes 1.24 可在 GitHub 上下载。要开始使用 Kubernetes,请查看这些交互式教程,或使用容器作为“节点”来运行本地 Kubernetes 集群,通过 kind。您也可以使用 kubeadm 轻松安装 1.24。
发布团队
此版本的发布离不开 Kubernetes 1.24 发布团队中所有敬业成员的共同努力。这个团队齐心协力,交付了每个 Kubernetes 版本的所有组成部分,包括代码、文档、发布说明等等。
特别感谢我们的发布负责人 James Laverack,他带领我们成功地完成了一个发布周期,也感谢所有发布团队成员为向 Kubernetes 社区交付 v1.24 版本所付出的时间和努力。
发布主题和徽标
Kubernetes 1.24: Stargazer

Kubernetes 1.24 的主题是 Stargazer(观星者)。
从古代天文学家到建造詹姆斯·韦伯太空望远镜的科学家,世世代代的人们都曾怀着敬畏和惊奇仰望星空。星辰激励着我们,点燃了我们的想象力,并在艰难海域的长夜里为我们指引方向。
通过这次发布,我们仰望星空,展望当我们的社区团结一致时所能实现的一切。Kubernetes 是全球数百名贡献者和成千上万支持着服务数百万用户的应用程序的最终用户的共同杰作。每一个人都是我们天空中的一颗星,帮助我们规划航向。
该发布徽标由 Britnee Laverack 制作,描绘了一架望远镜对准星空和昴宿星团(Pleiades),在神话中通常被称为“七姐妹”。数字七对 Kubernetes 项目来说尤其吉利,它也呼应了我们最初的“七号项目”(Project Seven)的名称。
这个 Kubernetes 版本是为了那些仰望夜空并心怀好奇的人们而命名的——献给所有的观星者。✨
用户亮点
- 查看领先的零售电子商务公司 La Redoute 如何使用 Kubernetes 以及其他 CNCF 项目来转变和简化其软件交付生命周期——从开发到运营。
- 为了确保对 API 调用的任何更改都不会导致任何中断,Salt Security 将其微服务完全构建在 Kubernetes 之上,并通过 gRPC 进行通信,同时 Linkerd 确保消息被加密。
- 在从私有云迁移到公有云的努力中,Allianz Direct 的工程师在仅仅三个月内重新设计了其 CI/CD 流水线,同时成功地将 200 个工作流精简到 10-15 个。
- 查看英国金融科技公司 Bink 如何使用 Linkerd 更新其内部 Kubernetes 发行版,以构建一个云无关的平台,该平台可根据需要进行扩展,同时让他们能够密切关注性能和稳定性。
- 荷兰组织 Stichting Open Nederland 使用 Kubernetes,在短短一个半月内创建了一个测试门户网站,以帮助在荷兰安全地重新开放活动。“入门测试”(Testen voor Toegang)平台利用 Kubernetes 的性能和可扩展性,帮助个人每天预订超过 40 万次新冠病毒检测预约。
- 通过与 SparkFabrik 合作并利用 Backstage,Santagostino 创建了开发者平台 Samaritan,以集中化服务和文档,管理服务的整个生命周期,并简化 Santagostino 开发人员的工作。
生态系统更新
- KubeCon + CloudNativeCon Europe 2022 将于 2022 年 5 月 16 日至 20 日在西班牙瓦伦西亚举行!您可以在活动网站上找到有关会议和注册的更多信息。
- 在 2021 年云原生调查中,CNCF 见证了创纪录的 Kubernetes 和容器采用率。请查看调查结果。
- Linux 基金会和云原生计算基金会 (CNCF) 宣布推出一个新的云原生开发者训练营,为参与者提供设计、构建和部署云原生应用程序所需的知识和技能。查看公告以了解更多信息。
项目速度
CNCF K8s DevStats 项目汇总了许多与 Kubernetes 和各个子项目的速度相关的有趣数据点。这包括从个人贡献到贡献公司的数量等所有内容,展示了推动这个生态系统发展的努力的深度和广度。
在 v1.24 发布周期中,该周期持续了 17 周(1 月 10 日至 5 月 3 日),我们看到了来自 1029 家公司和 1179 位个人的贡献。
即将举行的发布网络研讨会
请于 2022 年 5 月 24 日星期二太平洋时间上午 9:45 至 11:00 加入 Kubernetes 1.24 发布团队成员,了解此版本的主要功能,以及弃用和移除的内容,以帮助规划升级。有关更多信息和注册,请访问 CNCF 在线计划网站上的活动页面。
参与其中
参与 Kubernetes 的最简单方法是加入众多与您兴趣相符的特别兴趣小组 (SIG) 之一。您有什么想向 Kubernetes 社区广播的内容吗?请在我们每周的社区会议以及通过以下渠道分享您的声音:
- 在 Kubernetes 贡献者网站上了解更多关于为 Kubernetes 做贡献的信息
- 在 Twitter 上关注我们 @Kubernetesio 获取最新更新
- 在 Discuss 上加入社区讨论
- 在 Slack 上加入社区
- 在 Server Fault 上提问(或回答问题)。
- 分享你的 Kubernetes 故事
- 在博客上阅读更多关于 Kubernetes 的动态
- 了解更多关于 Kubernetes 发布团队的信息