这篇文章已经一年多了,较旧的文章可能包含过时的内容。请检查从发表以来,页面中的信息是否变得不正确。
作者:Kat Cosgrove、Frederico Muñoz、Debabrata Panigrahi
随着 Kubernetes 成长和日趋成熟,为了此项目的健康发展,某些功能特性可能会被弃用、移除或替换为优化过的功能特性。 Kubernetes v1.25 包括几个主要变更和一个主要移除。
Kubernetes 项目对功能特性有一个文档完备的弃用策略。 该策略规定,只有当较新的、稳定的相同 API 可用时,原有的稳定 API 才可能被弃用,每个稳定级别的 API 都有一个最短的生命周期。 弃用的 API 指的是已标记为将在后续发行某个 Kubernetes 版本时移除的 API; 移除之前该 API 将继续发挥作用(从弃用起至少一年时间),但使用时会显示一条警告。 移除的 API 将在当前版本中不再可用,此时你必须迁移以使用替换的 API。
无论一个 API 是因为某功能特性从 Beta 进入稳定阶段而被移除,还是因为该 API 根本没有成功, 所有移除均遵从上述弃用策略。无论何时移除一个 API,文档中都会列出迁移选项。
继 PodSecurityPolicy 在 v1.21 弃用后, Kubernetes v1.25 将移除 PodSecurityPolicy。PodSecurityPolicy 曾光荣地为我们服务, 但由于其复杂和经常令人困惑的使用方式,让大家觉得有必要进行修改,但很遗憾这种修改将会是破坏性的。 为此我们移除了 PodSecurityPolicy,取而代之的是 Pod Security Admission(即 PodSecurity 安全准入控制器), 后者在本次发行中也进入了稳定阶段。 如果你目前正依赖 PodSecurityPolicy,请遵循指示说明迁移到 PodSecurity 准入控制器。
Kubernetes v1.25 除了移除 PodSecurityPolicy 之外,还将包括以下几个主要变更。
将树内卷插件迁移到树外 CSI 驱动的努力还在继续,核心的 CSI Migration 特性在 v1.25 进入 GA 阶段。 对于全面移除树内卷插件而言,这是重要的一步。
若干卷插件将被弃用或移除。
GlusterFS 将在 v1.25 中被弃用。 虽然为其构建了 CSI 驱动,但未曾得到维护。 社区曾讨论迁移到一个兼容 CSI 驱动的可能性, 但最终决定开始从树内驱动中弃用 GlusterFS 插件。 本次发行还会弃用 Portworx 树内卷插件。 Flocker、Quobyte 和 StorageOS 树内卷插件将被移除。
Flocker、 Quobyte 和 StorageOS 树内卷插件将作为 CSI Migration 的一部分在 v1.25 中移除。
从 Kubernetes v1.25 开始,树内 vSphere 卷驱动将不支持任何早于 7.0u2 的 vSphere 版本。 查阅 v1.25 详细发行说明,了解如何处理这种状况的更多建议。
在 Linux 上,Kubernetes(通常)创建 iptables 链来确保这些网络数据包到达,
尽管这些链及其名称已成为内部实现的细节,但某些工具已依赖于此行为。
将仅支持内部 Kubernetes 使用场景。
从 v1.25 开始,Kubelet 将逐渐迁移为不在 nat 表中创建以下 iptables 链:
KUBE-MARK-DROPKUBE-MARK-MASQKUBE-POSTROUTING此项变更将通过 IPTablesCleanup 特性门控分阶段完成。
尽管这不是正式的弃用,但某些最终用户已开始依赖 kube-proxy 特定的内部行为。
Kubernetes 项目总体上希望明确表示不支持依赖这些内部细节,并且未来的实现将更改它们在此处的行为。
Kubernetes 1.26 计划移除的 API 的正式列表为:
Kubernetes 发行说明公布了弃用信息。你可以在以下版本的发行说明中查看待弃用特性的公告:
有关弃用和移除流程的信息,请查阅 Kubernetes 官方弃用策略文档。