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

Kubernetes 1.29 中的移除、废弃和主要变更

与每个版本一样,Kubernetes v1.29 将引入特性废弃和移除。我们持续发布高质量版本的能力,证明了我们稳健的开发周期和健康的社区。以下是 Kubernetes 1.29 版本中即将到来的一些废弃和移除。

Kubernetes API 的移除和废弃流程

Kubernetes 项目针对特性制定了完善的废弃策略。该策略规定,只有当同一 API 的更新、稳定版本可用时,稳定的 API 才可能被废弃,并且 API 在每个稳定级别都有最短生命周期。已废弃的 API 是指在未来 Kubernetes 版本中被标记为移除的 API;它将继续工作直到移除(从废弃之日起至少一年),但使用时会显示警告。被移除的 API 在当前版本中不再可用,此时您必须迁移到使用替代品。

  • 正式发布 (GA) 或稳定 API 版本可能会被标记为废弃,但在 Kubernetes 的主要版本内不得移除。
  • Beta 或预发布 API 版本在废弃后必须支持 3 个版本。
  • Alpha 或实验性 API 版本可能在任何版本中移除,无需提前废弃通知。

无论 API 是因特性从 Beta 晋升到 Stable 而移除,还是仅仅因为它未能成功,所有移除都遵守此废弃策略。无论何时移除 API,文档中都会说明迁移选项。

关于 k8s.gcr.io 重定向到 registry.k8s.io 的说明

为了托管其容器镜像,Kubernetes 项目使用一个社区所有的镜像仓库,名为 registry.k8s.io。从去年三月开始,指向旧的 k8s.gcr.io 仓库的流量开始被重定向到 registry.k8s.io。废弃的 k8s.gcr.io 仓库最终将被淘汰。有关此更改的更多详细信息或查看您是否受到影响,请阅读k8s.gcr.io 重定向到 registry.k8s.io - 您需要知道什么

关于 Kubernetes 社区所有的软件包仓库的说明

2023 年早些时候,Kubernetes 项目引入了 pkgs.k8s.io,这是社区所有的 Debian 和 RPM 软件包仓库。社区所有的仓库取代了原有的 Google 所有的仓库(apt.kubernetes.ioyum.kubernetes.io)。2023 年 9 月 13 日,这些原有仓库被正式废弃,其内容被冻结。

有关此更改的更多信息或查看您是否受到影响,请阅读废弃公告

Kubernetes v1.29 的废弃和移除

请参阅官方的API 移除列表,以获取 Kubernetes v1.29 计划废弃的完整列表。

移除树内云提供商集成 (KEP-2395)

Kubernetes v1.29 中,特性门 DisableCloudProvidersDisableKubeletCloudCredentialProviders 都将默认为 true。此更改要求当前使用树内云提供商集成(Azure、GCE 或 vSphere)的用户启用外部云控制器管理器,或通过将相关特性门设置为 false 来选择使用旧集成。

启用外部云控制器管理器意味着您必须在集群的控制平面中运行一个合适的云控制器管理器;它还需要为 kubelet(在每个相关节点上)以及整个控制平面(kube-apiserver 和 kube-controller-manager)设置命令行参数 --cloud-provider=external

有关如何启用和运行外部云控制器管理器的更多信息,请阅读云控制器管理器管理迁移复制控制平面以使用云控制器管理器

有关云控制器管理器的常规信息,请参阅 Kubernetes 文档中的云控制器管理器

移除 v1beta2 流控制 API 组

FlowSchema 和 PriorityLevelConfiguration 的 flowcontrol.apiserver.k8s.io/v1beta2 API 版本将在 Kubernetes v1.29 中不再提供服务

为此,您可以编辑现有清单并重写客户端软件以使用自 v1.26 起可用的 flowcontrol.apiserver.k8s.io/v1beta3 API 版本。所有现有的持久化对象都可以通过新的 API 访问。flowcontrol.apiserver.k8s.io/v1beta3 的显著变化包括 PriorityLevelConfiguration 的 spec.limited.assuredConcurrencyShares 字段已重命名为 spec.limited.nominalConcurrencyShares

废弃 Node 对象的 status.nodeInfo.kubeProxyVersion 字段

Node 对象的 .status.kubeProxyVersion 字段将在 v1.29 中被标记为废弃,为将来版本中的移除做准备。此字段不准确,由 kubelet 设置,而 kubelet 实际上并不知道 kube-proxy 的版本,甚至不知道 kube-proxy 是否正在运行。

想了解更多?

废弃情况会在 Kubernetes 发布说明中公布。您可以在以下版本的发布说明中查看待定废弃项的公告:

我们将正式宣布随Kubernetes v1.29一起到来的废弃项,作为该版本 CHANGELOG 的一部分。

有关废弃和移除流程的信息,请参阅 Kubernetes 官方废弃策略文档。