本文已超过一年。较旧的文章可能包含过时的内容。检查页面中的信息自发布以来是否没有变得不正确。
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 升级到稳定版而被移除,还是因为该 API 没有成功,所有的移除都符合此弃用策略。每当 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.io
和 yum.kubernetes.io
)。在 2023 年 9 月 13 日,这些旧的仓库被正式弃用,并且其内容被冻结。
有关此更改的更多信息或查看您是否受到影响,请阅读弃用公告。
Kubernetes v1.29 的弃用和移除
请参阅API 移除的官方列表,以获取 Kubernetes v1.29 计划弃用的完整列表。
移除与云提供商的树内集成 (KEP-2395)
对于 Kubernetes v1.29,特性门控 DisableCloudProviders
和 DisableKubeletCloudCredentialProviders
将默认设置为 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 中将不再提供服务。
为了对此做好准备,您可以编辑现有的清单并重写客户端软件以使用 flowcontrol.apiserver.k8s.io/v1beta3
API 版本,该版本自 v1.26 起可用。所有现有的持久化对象都可以通过新的 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 的官方弃用策略文档。