Kubernetes 1.24正式发布,2022年首个大版本更新

介绍

早在 2020 年 12 月,Kubernetes 就宣布弃用 Dockershim。在 Kubernetes 中,dockershim 是一个软件 shim,它允许您将 Docker 引擎用作 Kubernetes 中的容器运行时。

这个版本包含 46 个增强功能:14 个增强功能已经升级到稳定版,15 个增强功能正在进入 beta 版,13 个增强功能正在进入 alpha 版。此外,弃用了两个功能,删除两个功能。

主要变化

Dockershim 从 kubelet 中删除

在 1.20 版中弃用之后,在 Kubernetes v1.24 版中,dockershim 组件已从 kubelet 中删除。从 1.24 版开始,你将需要使用其他受支持的运行时 (如 containerd 或 CRI-O),如果你依赖 Docker Engine 作为容器运行时,可使用 cri-dockerd。

默认情况下关闭(新的)测试 API

默认情况下,新的测试版 API 不会在集群中启用 。默认情况下,将继续启用现有的 beta API 和现有 beta API 的新版本。

签名发布工件

发布工件使用cosign[5] 进行签名 ,并且有验证镜像签名 的实验支持。发布工件的签名和验证是增加 Kubernetes 发布过程的软件供应链安全性 的一部分。

OpenAPI v3

Kubernetes 1.24 为以OpenAPI v3 格式 发布 API 提供了测试版支持。

Storage Capacity 和 Volume Expansion 是 GA

存储容量跟踪 支持通过CSIStorageCapacity 对象 显示当前可用的存储容量,并通过后期绑定(late binding)增强使用 CSI 卷的 pod 的编排。

卷扩展 增加了对调整现有永久卷大小的支持。

NonPreemptingPriority 到 Stable

此功能为PriorityClasses 添加了新选项 ,可以启用或禁用 pod 抢占。

存储插件迁移

正在进行的工作是迁移树内存储插件的内部 ,以调用 CSI 插件,同时保持原来的 API。Azure DiskOpenStack Cinder 插件都已迁移。

gRPC 探针升级到 Beta

在 Kubernetes 1.24 中,gRPC probes 功能 已经进入测试阶段,默认情况下是可用的。现在,你可以在 Kubernetes 中为 gRPC 应用程序原生配置启动、活动和就绪探测器 ,而无需暴露 HTTP 端点或使用额外的可执行文件。

Kubelet 凭据提供程序升级到 Beta

最初在 Kubernetes 1.20 中作为 Alpha 版本发布,kubelet 对镜像凭证提供者 的支持现在已经升级到 Beta 版本。这允许 kubelet 使用 exec 插件动态检索容器镜像注册中心的凭证,而不是将凭证存储在节点的文件系统上。

Contextual Logging 处于 Alpha

Kubernetes 1.24 引入了上下文日志记录 ,使函数的调用者能够控制日志记录的所有方面(输出格式、详细程度、附加值和名称)。

避免服务的 IP 分配中的冲突

Kubernetes 1.24 引入了一个新的选择加入特性,允许你为服务的静态 IP 地址分配软保留一个范围 。手动启用此功能后,群集将倾向于从服务 IP 地址池中自动分配,从而降低冲突风险。

可以分配 ClusterIP 服务:

  • 动态地,这意味着群集将在配置的服务 IP 范围内自动选择一个空闲 IP。
  • 静态,这意味着用户将在配置的服务 IP 范围内设置一个 IP。

ClusterIP 服务是唯一的;因此,尝试使用已经分配的 ClusterIP 创建服务将会返回错误。

Dynamic Kubelet Configuration 已从 Kubelet 中移除

在 Kubernetes 1.22 中被弃用后,Dynamic Kubelet Configuration 已从 kubelet 中移除。在 Kubernetes 1.26 中,该特性将从 API 服务器中删除。

CNI 版本相关的重大变更

在升级到 Kubernetes 1.24 之前,请验证你使用/升级到的容器运行时已经过测试,可以在此版本中正常工作。

例如,以下容器运行时正在为 Kubernetes 准备,或者已经为 Kubernetes 准备好了:

  • containerd 1.6.4 版和更高版本、1.5.11 版和更高版本
  • CRI-O 1.24 和更高版本

当 CNI 插件未升级和/或 CNI 配置版本未在 CNI 配置文件中声明时,containerd v1.6.0–1.6.3 中的 pod CNI 网络设置和拆除存在服务问题。containerd 团队报告说,“containerd v1.6.4 解决了这些问题。”

使用 containerd v1.6.0–1.6.3,如果你不升级 CNI 插件和/或声明 CNI 配置版本,你可能会遇到“Incompatible CNI versions”或“Failed to destroy network for sandbox”错误情况。

其他更新

升级到稳定

在此版本中,有 14 项增强功能升级为稳定版:

  • Container Storage Interface (CSI) Volume Expansion
  • Pod Overhead[23] : Account for resources tied to the pod sandbox but not specific containers.
  • Add non-preempting option to PriorityClasses
  • Storage Capacity Tracking
  • OpenStack Cinder In-Tree to CSI Driver Migration
  • Azure Disk In-Tree to CSI Driver Migration
  • Efficient Watch Resumption : Watch can be efficiently resumed after kube-apiserver reboot.
  • Service Type=LoadBalancer Class Field : Introduce a new Service annotation service.kubernetes.io/load-balanc… that allows multiple implementations of type: LoadBalancer Services in the same cluster.
  • Indexed Job : Add a completion index to Pods of Jobs with a fixed completion count.
  • Add Suspend Field to Jobs API : Add a suspend field to the Jobs API to allow orchestrators to create jobs with more control over when pods are created.
  • Pod Affinity NamespaceSelector : Add a namespaceSelector field for to pod affinity/anti-affinity spec.
  • Leader Migration for Controller Managers : kube-controller-manager and cloud-controller-manager can apply new controller-to-controller-manager assignment in HA control plane without downtime.
  • CSR Duration : Extend the CertificateSigningRequest API with a mechanism to allow clients to request a specific duration for the issued certificate.

主要变化

这个版本有两个主要变化:

  • Dockershim Removal
  • 默认情况下,测试 API 是关闭的

发布说明

在我们的发行说明 中查看 Kubernetes 1.24 版本的全部细节。

下载

Kubernetes 1.24 可以在GitHub 下载。要开始使用 Kubernetes,请查看这些交互式教程 或通过kind ,使用容器作为“节点”运行本地 Kubernetes 集群。你也可以使用kubeadm 轻松安装 1.24。

发布团队

如果没有 Kubernetes 1.24 发布团队成员的共同努力,这次发布是不可能的。这个团队一起交付每个 Kubernetes 版本的所有组件,包括代码、文档、发行说明等等。

特别感谢我们的发布负责人 James Laverack,他指导我们完成了一个成功的发布周期,并感谢所有发布团队成员投入时间和精力为 Kubernetes 社区发布 1.24 版本。

发布主题和徽标

Kubernetes 1.24:观星者

更多内容请查看该链接:kubernetes.io/blog/2022/0…