Kubernetes 1.29 中的功能移除、弃用及重大变更
内容提要
Kubernetes v1.29将弃用多个功能,包括逐步淘汰k8s.gcr.io注册表和替代pkgs.k8s.io软件库。用户需启用外部云控制器管理器,并更新API版本以适应新变化。详细信息将在发布说明中公布。
延伸解读
弃用政策与迁移窗口
Kubernetes 对稳定 API 的弃用有明确政策:只有当更新的稳定版本可用时才会弃用,且弃用后至少保留一年才移除。这意味着 v1.29 中标记为弃用的功能仍会继续工作,但使用时会收到警告。用户应利用这段时间规划迁移,避免在后续版本中因 API 移除而导致服务中断。
镜像仓库与软件源变更的影响
k8s.gcr.io 注册表自 2023 年 3 月起流量已重定向至 registry.k8s.io,并最终会被淘汰。同时,pkgs.k8s.io 取代了旧的 Google 拥有的 apt.kubernetes.io 和 yum.kubernetes.io 仓库,后者已于 2023 年 9 月 13 日弃用且内容冻结。用户需检查并更新镜像拉取地址和软件源配置,确保集群组件和节点包能正常获取。
外部云控制器管理器的启用要求
v1.29 中 DisableCloudProviders 和 DisableKubeletCloudCredentialProviders 特性门控默认设为 true,使用树内云提供商集成(Azure、GCE 或 vSphere)的用户必须启用外部云控制器管理器,或在相关组件上将门控设为 false 以继续使用旧集成。启用外部管理器需在控制平面运行合适的云控制器管理器,并为 kubelet 及控制平面组件设置 --cloud-provider=external 参数。
API 版本迁移与字段弃用
flowcontrol.apiserver.k8s.io/v1beta2 在 v1.29 中不再提供,用户需迁移至 v1beta3(自 v1.26 可用)。注意 v1beta3 中 PriorityLevelConfiguration 的 spec.limited.assuredConcurrencyShares 已重命名为 spec.limited.nominalConcurrencyShares。此外,Node 对象的 .status.kubeProxyVersion 字段被标记为弃用,因其值不准确,kubel
Q&A
Kubernetes v1.29中有哪些功能被弃用?
Kubernetes v1.29中弃用了k8s.gcr.io注册表和flowcontrol.apiserver.k8s.io/v1beta2 API版本,并标记了Node对象中的.status.kubeProxyVersion字段为弃用。
如何迁移到Kubernetes v1.29的新API版本?
用户需将flowcontrol.apiserver.k8s.io/v1beta2 API版本迁移到v1beta3版本,并更新相关的客户端软件和清单。
为什么要启用外部云控制器管理器?
启用外部云控制器管理器是为了适应Kubernetes v1.29中新的云提供商集成要求,特别是对于使用内置云提供商集成的用户。
pkgs.k8s.io软件库的作用是什么?
pkgs.k8s.io软件库是社区拥有的Debian和RPM软件包库,取代了旧的Google拥有的软件库,提供Kubernetes相关的软件包。
Kubernetes v1.29中对.kubeProxyVersion字段的变更是什么?
.status.kubeProxyVersion字段在Kubernetes v1.29中被标记为弃用,未来将被移除,因为该字段不准确。
Kubernetes的弃用政策是什么?
Kubernetes的弃用政策规定,稳定API只能在有新稳定版本可用时被弃用,弃用的API将在未来版本中移除,用户需迁移到替代版本。