这篇文章已发布一年以上。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变得不正确。
Kubernetes 1.25 中的移除和重大更改
随着 Kubernetes 的发展和成熟,为了项目的健康,功能可能会被弃用、删除或替换为改进的功能。Kubernetes v1.25 包括几项重大更改和一项重大删除。
Kubernetes API 删除和弃用流程
Kubernetes 项目有一个有据可查的 弃用策略,用于处理功能。该策略规定,只有当存在更新、稳定的相同 API 版本时,才能弃用稳定的 API,并且 API 在每个稳定性级别都有最低的生命周期。已弃用的 API 是指在未来的 Kubernetes 版本中已被标记为删除的 API;它将继续运行直到被删除(从弃用起至少一年),但使用会显示警告。已删除的 API 在当前版本中不再可用,此时您必须迁移到使用替代品。
- 通用可用 (GA) 或稳定的 API 版本可能会被标记为已弃用,但不得在 Kubernetes 的主要版本中删除。
- Beta 或预发布 API 版本必须在弃用后支持 3 个版本。
- Alpha 或实验性 API 版本可能会在任何版本中删除,无需事先弃用通知。
无论 API 是由于功能从 beta 升级到 stable 而被删除,还是因为该 API 根本没有成功,所有删除都符合此弃用策略。每当 API 被删除时,迁移选项都会在文档中进行说明。
关于 PodSecurityPolicy 的说明
在 Kubernetes v1.25 中,我们将删除 PodSecurityPolicy,在 v1.21 中弃用之后。PodSecurityPolicy 为我们提供了很好的服务,但其复杂且经常令人困惑的用法需要进行更改,但不幸的是,这些更改会是破坏性的更改。为了解决这个问题,它将被删除,以支持一个替代品,Pod 安全准入,它也将在该版本中升级为稳定版。如果您目前依赖 PodSecurityPolicy,请按照 迁移到 Pod 安全准入的说明进行操作。
Kubernetes v1.25 的重大更改
除了删除 PodSecurityPolicy 之外,Kubernetes v1.25 还将包括几项重大更改。
CSI 迁移
将树内卷插件移动到树外 CSI 驱动程序的努力仍在继续,核心 CSI 迁移功能在 v1.25 中升级为 GA。这是完全删除树内卷插件的重要一步。
存储驱动程序的弃用和删除
正在弃用或删除几个卷插件。
GlusterFS 将在 v1.25 中被弃用。虽然为此构建了一个 CSI 驱动程序,但它尚未维护。迁移到兼容的 CSI 驱动程序的可能性进行了讨论,但最终决定开始弃用来自树内驱动程序的 GlusterFS 插件。Portworx 树内卷插件 也将在该版本中被弃用。Flocker、Quobyte 和 StorageOS 树内卷插件将被删除。
Flocker、Quobyte 和 StorageOS 树内卷插件将在 v1.25 中删除。这些插件的用户需要切换到等效的 CSI 驱动程序或备用存储提供商。
更改 vSphere 版本支持
从 Kubernetes v1.25 开始,树内 vSphere 卷驱动程序将不支持 7.0u2 之前的任何 vSphere 版本。一旦 Kubernetes v1.25 发布,请查看 v1.25 详细发行说明,了解有关如何处理此问题的更多建议。
清理 IPTables 链所有权
在 Linux 上,Kubernetes(通常)会创建 iptables 链以确保网络数据包到达。虽然这些链及其名称一直是内部实现细节,但一些工具依赖于该行为。将仅支持内部 Kubernetes 用例。从 v1.25 开始,Kubelet 将逐步转向不创建 nat
表中的以下 iptables 链
KUBE-MARK-DROP
KUBE-MARK-MASQ
KUBE-POSTROUTING
此更改将通过 IPTablesCleanup
功能门逐步引入。尽管这不是正式的弃用,但一些最终用户开始依赖 kube-proxy
的特定内部行为。整个 Kubernetes 项目希望明确表示不支持依赖这些内部细节,并且未来的实现将在此处更改其行为。
展望未来
官方 计划在 Kubernetes 1.26 中删除的 API 列表是
- beta FlowSchema 和 PriorityLevelConfiguration API (flowcontrol.apiserver.k8s.io/v1beta1)
- beta HorizontalPodAutoscaler API (autoscaling/v2beta2)
想了解更多?
弃用会在 Kubernetes 发行说明中宣布。您可以在发行说明中看到待处理弃用的公告,这些发行说明适用于
- Kubernetes 1.21
- Kubernetes 1.22
- Kubernetes 1.23
- Kubernetes 1.24
- 我们将在 Kubernetes 1.25 的 CHANGELOG 中正式宣布该版本随附的弃用。
有关弃用和删除过程的信息,请查看官方 Kubernetes 弃用策略文档。