
作者:Aakanksha Bhende, Arujjwal Negi, Chad M. Crowell, Graziano Casto, Swathi Rao
随着 Kubernetes v1.35 发布临近,Kubernetes 项目持续发展。部分功能可能被废弃、移除或替换,以提升项目整体健康度。本文介绍了 v1.35 计划中的变更,发布团队认为你应当了解这些内容,以保证 Kubernetes 集群的平稳运行,并及时掌握最新进展。以下内容基于当前 v1.35 状态,最终版本可能有所调整。
Kubernetes v1.35 的废弃与移除
cgroup v1 支持
Linux 节点上,容器运行时通常依赖 cgroup(控制组)。Kubernetes 自 v1.25 起已对 cgroup v2 提供稳定支持,作为对原始 cgroup v1 的替代。cgroup v1 曾是最初的资源控制机制,但存在已知不一致和限制。支持 cgroup v2 后,实现了统一的控制组层级,提升资源隔离,并为现代特性奠定基础,故旧版 cgroup v1 支持将被移除。
cgroup v1 支持移除只会影响运行在不支持 cgroup v2 的旧 Linux 发行版节点,相关节点上的 kubelet 将无法启动。管理员需将节点迁移到启用 cgroup v2 的系统。关于兼容性要求的详细信息将在 v1.35 发布后不久通过博客发布。
更多信息请见 cgroup v2 介绍[1];
也可关注 KEP-5573:Remove cgroup v1 support。
kube-proxy 中 ipvs 模式的废弃
Kubernetes 很早以前在 kube-proxy 中实现了 ipvs 模式,因其负载均衡性能优于 iptables 模式而被采用。但由于技术复杂性和需求分歧,维护 ipvs 与其他模式的功能一致性变得困难,导致技术债务增加,且不利于支持新网络功能。
因此,Kubernetes 计划在 v1.35 中废弃 kube-proxy 的 ipvs 模式,简化代码库。对于 Linux 节点,推荐使用的 kube-proxy 模式已是 nftables。
详情见 KEP-5495:Deprecate ipvs mode in kube-proxy。
Kubernetes 废弃 containerd v1.x 支持
虽然 v1.35 仍支持 containerd 1.7 及其他 LTS 版本,但因自动 cgroup 驱动检测机制,SIG Node 社区已正式确定 containerd v1.x 的最终支持时间表。v1.35 是最后支持该版本的 Kubernetes 版本(对应 containerd 1.7 EOL)。
这是最后警告:如果你还使用 containerd 1.x,必须在升级 Kubernetes 到下一个版本前切换到 2.0 或更高版本。可通过监控 kubelet_cri_losing_support 指标,检测集群中是否有节点使用即将不支持的 containerd 版本。
详情见官方博客[2]及 KEP-4033:Discover cgroup driver from CRI。
Kubernetes v1.35 重点新特性
以下是部分预计包含于 v1.35 的新特性,内容非最终确定,可能会变动。
节点声明特性
调度 Pod 时,Kubernetes 通过节点标签、污点和容忍匹配工作负载需求与节点能力。但升级时控制平面与节点版本不一致,导致节点特性兼容性难管,可能让 Pod 被调度到不支持所需特性的节点,导致运行失败。
节点声明特性框架为节点声明支持的 Kubernetes 功能提供标准机制。启用该 alpha 功能后,节点通过 .status.declaredFeatures 字段向控制平面报告支持的功能,调度器、准入控制器及第三方组件可基于此信息进行调度和 API 验证,确保 Pod 仅调度到兼容节点。
该机制减少手动标签管理,提升调度准确率,且可与 Cluster Autoscaler 集成,实现更智能的扩容决策。特性声明与 Kubernetes 功能开关绑定,方便安全推广和清理。
计划在 v1.35 作为 alpha 发布。更多见 KEP-5328。
Pod 资源原地更新
Pod 资源原地更新功能毕业为 GA,允许用户调整 Pod 的 CPU 和内存资源,无需重启 Pod 或容器。之前这类调整需重建 Pod,影响有状态或批处理应用稳定性。
CRI 也有改进,Windows 及未来运行时支持 UpdateContainerResources API,ContainerStatus 可报告实时资源配置。整体提升 Kubernetes 的弹性扩缩容能力,减少中断。该功能自 v1.27 alpha 起步,v1.33 升级为 beta,v1.35 计划稳定。
详情见 KEP-1287:In-place Update of Pod Resources。
Pod 证书支持
微服务间通常需要强身份认证,实现基于 mTLS 的安全通信。Kubernetes 提供的 Service Account Token 只适用于 API 认证,非通用工作负载身份。
之前需依赖 SPIFFE/SPIRE 或 cert-manager 等外部项目管理证书。KEP-4317 设计了原生 Pod 证书支持,允许 kubelet 通过投影卷自动请求并挂载短期唯一证书,简化服务网格和零信任网络策略的部署。
该功能在 v1.34 作为 alpha 发布,v1.35 目标升级为 beta。
详情见 KEP-4317:Pod Certificates。
污点的数值比较支持
Kubernetes 扩展污点和容忍机制,新增数值比较操作符,如 Gt(大于)、Lt(小于)。
此前容忍只支持等于或存在匹配,不适合数值属性(如可靠性 SLA)。新支持后,Pod 可容忍满足特定数值阈值的节点,例如要求 SLA 污点值大于 950。
该机制比节点亲和性更强大,支持 NoExecute 效果,节点数值低于阈值时自动驱逐 Pod。
详情见 KEP-5471:Enable SLA-based Scheduling。
用户命名空间支持
Pod 内可用 securityContext 降权,但容器内进程通常仍以 root(UID 0)运行,且此 UID 映射到宿主机 root。此设计存在容器逃逸风险。
KEP-127 引入 Linux 用户命名空间支持,动态将容器 root 映射为宿主机上的非特权高 UID。容器内仍拥有 root 权限,但宿主机上是普通用户,极大提升安全性。
该功能自 v1.25 alpha 起,v1.30 beta,持续完善中,为未来“无 root”容器奠定基础。
详情见 KEP-127:User Namespaces。
支持将 OCI 镜像挂载为卷
Pod 配置时常需携带数据、二进制或配置文件。以前多将数据打包进镜像,或用 init 容器下载解压到 emptyDir。
Kubernetes v1.31 增加 image 卷类型支持,允许 Pod 直接从 OCI 镜像仓库拉取并解包数据卷,解耦数据与镜像,简化流程。该卷类型自 v1.33 进入 beta,v1.35 可能默认启用。
可试用 beta 版本,详情见 KEP-4639:OCI Volume Source。
想了解更多?
新特性和废弃信息也会在 Kubernetes 发布说明中公布。v1.35[3] 的更新内容将通过该版本的 CHANGELOG 正式宣布。
v1.35 计划于 2025 年 12 月 17 日发布,敬请关注最新动态!
你也可以查看历次版本的发布说明:
Kubernetes v1.34[4] Kubernetes v1.33[5] Kubernetes v1.32[6] Kubernetes v1.31[7] Kubernetes v1.30[8]
参与贡献
参与 Kubernetes 最简单的方式是加入与你兴趣相符的 SIG[9](特别兴趣组)。想向社区分享你的观点?可参加每周社区会议[10],或通过以下渠道交流。感谢你一直以来的反馈和支持。
关注 Bluesky @kubernetes.io 获取最新动态 参与 Discuss 社区讨论 加入 Slack 社区 在 Server Fault 或 Stack Overflow 提问或解答 分享你的 Kubernetes 故事 阅读 Kubernetes 官方博客了解更多动态 了解 Kubernetes 发布团队[11]的工作
cgroup v2 介绍: https://kubernetes.io/zh-cn/docs/concepts/architecture/cgroups/
[2]博客: https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/#announcement-kubernetes-is-deprecating-containerd-v1-y-support
[3]v1.35: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.35.md
[4]Kubernetes v1.34: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.34.md
[5]Kubernetes v1.33: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.33.md
[6]Kubernetes v1.32: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md
[7]Kubernetes v1.31: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md
[8]Kubernetes v1.30: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md
[9]SIG: https://github.com/kubernetes/community/blob/master/sig-list.md
[10]社区会议: https://github.com/kubernetes/community/tree/master/communication
[11]Kubernetes 发布团队: https://github.com/kubernetes/sig-release/tree/master/release-team
(版权归原作者所有,侵删)
免责声明:本文内容来源于网络,所载内容仅供参考。转载仅为学习和交流之目的,如无意中侵犯您的合法权益,请及时联系Docker中文社区!

温馨提示:文章内容系作者个人观点,不代表Docker中文对观点赞同或支持。
版权声明:本文为转载文章,来源于 互联网 ,版权归原作者所有,欢迎分享本文,转载请保留出处!

发表评论