Kubernetes 1.25 中的重大更改和删除

2023-03-19 17:43:13 浏览数 (2)

随着 Kubernetes 的发展和成熟,有些功能可能会被弃用、删除或替换。Kubernetes v1.25 包括几项重大更改和删除。

Kubernetes API 移除和弃用流程

Kubernetes 项目有一个记录良好的特性弃用策略[1]。该策略规定:

  • 只有当同一 API 的更新、稳定版本可用并且 API 具有每个稳定性级别的最短生命周期时,才可能弃用稳定 API。
  • 不推荐使用未来 Kubernetes 版本中被标记为删除的 API;
  • 它将继续运行,直到被删除(至少从弃用一年),但使用将显示警告。
  • 删除的 API 在当前版本中不再可用时,您必须迁移到新的替换功能。
  • 普遍可用 (GA) 或稳定的 API 版本可能被标记为已弃用,但不得在 Kubernetes 的主要版本中删除。
  • 弃用后的 3 个版本必须支持 Beta 或预发布 API 版本。
  • Alpha 版或实验性 API 版本可能会在任何版本中被删除,恕不另行通知。

无论 API 是由于功能从 beta 升级到稳定还是因为该 API 根本没有成功而被删除,所有删除都符合此弃用政策。每当删除 API 时,文档中都会传达迁移选项。

关于 PodSecurityPolicy 的说明

我们在 v1.21 中弃用 PodSecurityPolicy[2],在 Kubernetes v1.25 中将删除它。PodSecurityPolicy 的复杂且经常令人困惑的用法需要进行更改,不幸的是,这将是破坏性更改。为了解决这个问题,它被删除,取而代之的是 Pod Security Admission,它也在这个版本中逐渐稳定。如果您当前依赖 PodSecurityPolicy,请按照迁移到 Pod Security Admission[3]的说明进行操作。

Kubernetes v1.25 的主要变化

除了删除 PodSecurityPolicy 之外,Kubernetes v1.25 还包括几项重大更改。

CSI 迁移[4]

将 in-tree 卷插件移至 out-of-tree CSI 驱动程序的努力仍在继续,核心 CSI 迁移功能在 v1.25 中成为 GA。这是完全删除 in-tree 卷插件的重要一步。

卷插件弃用和删除

有几个卷被弃用或删除。

GlusterFS 将在 v1.25 中被弃用[5]。虽然为它构建了 CSI 驱动程序,但尚未对其进行维护。讨论[6]了迁移到兼容 CSI 驱动程序的可能性,但最终决定开始从树内驱动程序中弃用 GlusterFS 插件。

此版本也弃用了Portworx in-tree 卷插件[7],正在删除 Flocker、Quobyte 和 StorageOS in-tree 卷插件。

声明不受支持的 vSphere 版本[8]

从 Kubernetes v1.25 开始,树内 vSphere 卷驱动程序将不支持 7.0u2 之前的任何 vSphere 版本。查看 v1.25 详细的发行说明以获取有关如何处理此问题的更多建议。

签署发布工件[9]

改进发布过程的安全状况的另一个步骤是,Kubernetes 发布工件的签名将在此版本中升级为 Beta。这与针对 Kubernetes 发布过程的目标 SLSA 3 级合规性的提议增强一致。

支持 cgroup v2 升级到稳定版[10]

两年多前,新的内核 cgroups v2 API 被宣布为稳定的,在这个版本中,我们正朝着全面采用它迈出坚实的步伐。虽然将继续支持 cgroup v1,但此更改使我们准备好应对 cgroup v1 的最终弃用和 cgroup v2 成为替代。

清理 IPTables 链所有权[11]

从 Kubernetes 1.25 版本开始,Kubernetes 创建的 iptables 链将仅支持内部 Kubernetes 用例。从 v1.25 开始,Kubelet 将逐渐走向不在nat表中创建以下 iptables 链:

  • KUBE-MARK-DROP
  • KUBE-MARK-MASQ
  • KUBE-POSTROUTING

此更改将通过IPTablesCleanup功能门逐步实施。

展望未来

为 Kubernetes 1.26 计划的 API 移除[12]的官方列表是:

  • Beta FlowSchema 和 PriorityLevelConfiguration API (flowcontrol.apiserver.k8s.io/v1beta1)
  • 测试版 HorizontalPodAutoscaler API (autoscaling/v2beta2)

原文:https://kubernetes.io/blog/2022/08/04/upcoming-changes-in-kubernetes-1-25

参考资料

[1]

弃用策略: https://kubernetes.io/docs/reference/using-api/deprecation-policy/

[2]

在 v1.21 中弃用 PodSecurityPolicy: https://kubernetes.io/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/

[3]

迁移到 Pod Security Admission: https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/

[4]

CSI 迁移: https://github.com/kubernetes/enhancements/issues/625

[5]

GlusterFS 将在 v1.25 中被弃用: https://github.com/kubernetes/enhancements/issues/3446

[6]

讨论: https://github.com/kubernetes/kubernetes/issues/100897

[7]

Portworx in-tree 卷插件: https://github.com/kubernetes/enhancements/issues/2589

[8]

声明不受支持的 vSphere 版本: https://github.com/kubernetes/kubernetes/pull/111255

[9]

签署发布工件: https://github.com/kubernetes/enhancements/issues/3031

[10]

支持 cgroup v2 升级到稳定版: https://github.com/kubernetes/enhancements/issues/2254

[11]

清理 IPTables 链所有权: https://github.com/kubernetes/enhancements/issues/3178

[12]

为 Kubernetes 1.26 计划的 API 移除: https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26

- END -

0 人点赞