专栏名称: 院长技术
《院长技术》专注于DevOps技术栈研究,云原生、Istio,CICD、Docker、Prometheus、K8s、ServiceMesh、Jenkins、Linux、微服务、分布式存储、监控、日志收集、安全渗透、虚拟化等技术栈。
目录
相关文章推荐
51好读  ›  专栏  ›  院长技术

Kubernetes v1.31 中的移除和主要变更

院长技术  · 公众号  ·  · 2024-08-14 11:47

正文

院长简介

作者:院长

职位:运维开发工程师

官网:https://deanit.cn

博客:https://blog.deanit.cn

擅长:

【虚拟化,容器化,自动化运维,CICD,监控,日志,中间件,双机热备,分布式存储,数据库,认证,组网隧道,Kali 安全渗透,网络攻击,负载均衡,Html,Css,Js,Jq,Vue3,Shell,Python,Go,前后端框架】

随着 Kubernetes 的发展和成熟,为了项目的整体健康,某些特性可能会被弃用、删除或替换为更好的特性。本文阐述了 Kubernetes v1.31 版本的一些更改计划,发行团队认为你应当了解这些更改, 以便持续维护 Kubernetes 环境。下面列出的信息基于 v1.31 版本的当前状态;这些状态可能会在实际发布日期之前发生变化。

1. 弃用和删除的特性

  • 节点的status.nodeInfo.kubeProxyVersion字段 :该字段在Kubernetes v1.31中被弃用,并将在后续版本中删除。原因是该字段的取值不准确,且kubelet没有关于kube-proxy版本或状态的可靠信息。从v1.31开始,DisableNodeKubeProxyVersion特性门控将默认设置为true,kubelet将不再尝试设置此字段。

  • kubelet的--keep-terminated-pod-volumes命令行标志 :该标志已在2017年弃用,并将在v1.31中被删除。此标志用于控制是否保留已终止Pod的卷,但在后续版本中已被视为不必要的。

  • CephFS和Ceph RBD卷插件 :CephFS和Ceph RBD卷插件在v1.31中被删除,建议使用相应的CSI(容器存储接口)驱动程序替代。这些插件在v1.28中已被标记为已弃用。

  • kube-scheduler中的非CSI卷限制插件 :包括AzureDiskLimits、CinderLimits、EBSLimits等插件在v1.31中被弃用,并将从默认插件中删除。建议使用NodeVolumeLimits插件替代,因为它可以处理相同的功能。

2. 其他重要变更

  • 云驱动集成的树内支持 :v1.31版本标志着Kubernetes将所有云驱动集成组件从核心外部化的过程完成。这意味着用户现在需要使用推荐的外部集成方法来与云驱动集成。

  • FlowSchema和PriorityLevelConfiguration的API版本变更 :flowcontrol.apiserver.k8s.io/v1beta3 API版本的FlowSchema和PriorityLevelConfiguration将在未来的版本中删除。建议用户编辑现有清单并重写客户端软件以使用自v1.29起可用的flowcontrol.apiserver.k8s.io/v1 API版本。

3. 安全性更新

  • 对SHA-1证书的支持 :在go1.18及更高版本中,crypto/x509库开始拒绝使用SHA-1哈希函数签名的证书。虽然Kubernetes环境中可能仍存在使用SHA-1签名的证书,但用户需要明确设置环境变量以重新支持这些证书。然而,随着Go语言的更新,对SHA-1证书的支持将在未来版本中完全消失。

4. K8s的关键特性保持不变

尽管K8s 1.31版本带来了上述变更和弃用项,但其核心特性和功能(如自动化部署和扩展、服务发现和负载均衡、自我修复、配置管理、水平扩展以及集群管理等)仍然保持不变。这些特性使得K8s成为容器化应用程序部署、扩展和管理的强大工具。

弃用和删除

弃用节点的 status.nodeInfo.kubeProxyVersion 字段

Node 的 .status.nodeInfo.kubeProxyVersion 字段在 Kubernetes v1.31 中将被弃用, 并将在后续版本中删除。该字段被弃用是因为其取值原来不准确,并且现在也不准确。该字段由 kubelet 设置,而 kubelet 没有关于 kube-proxy 版本或 kube-proxy 是否正在运行的可靠信息。

在 v1.31 中, DisableNodeKubeProxyVersion 特性门控 [8] 将默认设置为 true , 并且 kubelet 将不再尝试为其关联的 Node 设置 .status.kubeProxyVersion 字段。

删除所有云驱动的树内集成组件

v1.31 版本将删除云驱动集成的树内支持的最后剩余部分。这并不意味着你无法与某云驱动集成,只是你现在 必须 使用推荐的外部集成方法。一些集成组件是 Kubernetes 项目的一部分,其余集成组件则是第三方软件。


后一个博客还包含对需要迁移到 v1.29 及更高版本的用户有用的信息。

删除 kubelet --keep-terminated-pod-volumes 命令行标志

kubelet 标志 --keep-terminated-pod-volumes 已于 2017 年弃用,将在 v1.31 版本中被删除。

你可以在拉取请求 #122082 [13] 中找到更多详细信息。

删除 CephFS 卷插件

CephFS 卷插件 [14] 已在此版本中删除, 并且 cephfs 卷类型已无法使用。

建议你改用 CephFS CSI 驱动程序 [15] 作为第三方存储驱动程序。如果你在将集群版本升级到 v1.31 之前在使用 CephFS 卷插件,则必须重新部署应用才能使用新驱动。

CephFS 卷插件在 v1.28 中正式标记为已弃用。

删除 Ceph RBD 卷插件

v1.31 版本将删除 Ceph RBD 卷插件 [16] 及其 CSI 迁移支持, rbd 卷类型将无法继续使用。

建议你在集群中使用 RBD CSI 驱动 [17] 。如果你在将集群版本升级到 v1.31 之前在使用 Ceph RBD 卷插件,则必须重新部署应用以使用新驱动。

Ceph RBD 卷插件在 v1.28 中正式标记为已弃用。

kube-scheduler 中非 CSI 卷限制插件的弃用

v1.31 版本将弃用所有非 CSI 卷限制调度程序插件, 并将从 默认插件 [18] 中删除一些已弃用的插件,包括:

  • AzureDiskLimits
  • CinderLimits
  • EBSLimits
  • GCEPDLimits

建议你改用 NodeVolumeLimits 插件,因为它可以处理与已删除插件相同的功能,因为这些卷类型已迁移到 CSI。如果你在 调度器配置 [19] 中显式使用已弃用的插件, 请用 NodeVolumeLimits 插件替换它们。 AzureDiskLimits CinderLimits EBSLimits GCEPDLimits 插件将在未来的版本中被删除。







请到「今天看啥」查看全文