内容提要
Kubernetes v1.31将删除和更改一些功能,包括节点的.status.nodeInfo.kubeProxyVersion字段的弃用和删除、与云提供商的内部集成的删除、kubelet --keep-terminated-pod-volumes命令行标志的删除、CephFS和Ceph RBD卷插件的删除、以及kube-scheduler中非CSI卷限制插件的弃用和删除。此外,Kubernetes v1.32还计划删除flowcontrol.apiserver.k8s.io/v1beta3 API版本。
延伸解读
弃用与移除的规则
Kubernetes 对功能的弃用和移除有明确的策略:稳定 API 只能在有更新的稳定版本可用时弃用,且弃用后至少一年内仍可用;Beta API 弃用后需支持三个版本;Alpha API 可随时移除。所有移除都遵循此策略,并会在文档中提供迁移选项。了解这些规则有助于规划升级。
SHA-1 证书支持即将终止
由于 Go 1.18 起 crypto/x509 库拒绝 SHA-1 签名的证书,若你依赖私有 CA 签发的 SHA-1 证书用于聚合 API 服务器或 webhook,需设置 GODEBUG=x509sha1=1 显式启用支持。但该支持将在 Go 1.24(2025 年上半年发布)中完全移除,建议尽快迁移到更安全的签名算法。
云提供商集成外部化完成
v1.31 移除了所有树内云提供商集成,标志着从 v1.26 开始的外部化进程完成。这并不意味着不能与云提供商集成,而是必须使用外部集成方式(部分由 Kubernetes 项目提供,部分为第三方软件)。此举使 Kubernetes 更接近真正的厂商中立平台。
存储插件迁移至 CSI
CephFS 和 Ceph RBD 卷插件在 v1.31 中被移除,对应的卷类型将不可用。如果你之前使用这些插件,升级前必须重新部署应用,改用相应的 CSI 驱动。同时,kube-scheduler 中非 CSI 的卷限制插件(如 AzureDiskLimits、CinderLimits 等)被弃用,建议使用 NodeVolumeLimits 插件替代。
Q&A
Kubernetes v1.31中有哪些功能被删除或更改?
Kubernetes v1.31删除了节点的.status.nodeInfo.kubeProxyVersion字段、与云提供商的内部集成、kubelet --keep-terminated-pod-volumes命令行标志、CephFS和Ceph RBD卷插件,并弃用了非CSI卷限制插件。
为什么要弃用.status.nodeInfo.kubeProxyVersion字段?
该字段被弃用是因为其值不准确,kubelet无法可靠地获取kube-proxy的版本信息。
如何处理CephFS和Ceph RBD卷插件的删除?
建议使用CephFS和RBD的CSI驱动作为替代,用户需重新部署应用以使用新驱动。
Kubernetes v1.31中有哪些插件被弃用?
v1.31中弃用了所有非CSI卷限制插件,包括AzureDiskLimits、CinderLimits、EBSLimits和GCEPDLimits。
Kubernetes v1.32计划删除哪些API版本?
Kubernetes v1.32计划删除flowcontrol.apiserver.k8s.io/v1beta3 API版本。
如何应对Kubernetes中SHA-1证书的支持取消?
如果依赖SHA-1证书,用户需在环境中设置GODEBUG=x509sha1=1以恢复支持,并尽快迁移到更安全的证书。