这篇文章已超过一年。较旧的文章可能包含过时内容。请检查页面中的信息自发布以来是否仍正确。
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 中,我们将在 v1.21 中废弃 PodSecurityPolicy 后将其移除。PodSecurityPolicy 一直服务得很好,但其复杂且常常令人困惑的使用方式需要进行修改,而这些修改不幸会导致破坏性变更。为了解决这个问题,我们将其移除,转而使用替代品 Pod Security Admission,后者也在该版本中升级到 Stable。如果你目前依赖 PodSecurityPolicy,请按照迁移到 Pod Security Admission 的说明进行操作。
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 废弃策略文档。