Kubernetes v1.37 前瞻:Metrics API 转正与 ipvs 弃用
2026 年 7 月 31 日,Kubernetes 官方博客发布了 v1.37 前瞻(Sneak Peek),预告了这一版本中值得关注的增强、弃用与破坏性变更。v1.37 计划于 2026 年 8 月 26 日发布,对正在维护集群的团队来说,这份清单值得提前消化。
Kubernetes 每年发布三个小版本,官方对每个版本只维护约一年,这意味着升级不是"想不想"而是"什么时候"的问题。v1.37 的预告之所以重要,是因为里面既包含转正的好消息,也埋着若干会在未来两三个版本内变成"硬性要求"的弃用项——现在不规划,等它默认禁用或彻底移除时再动,成本会高得多。
亮点增强
- Metrics API 转正(GA):
metrics.k8s.ioAPI 在经历了近九年的 Beta 阶段后,终于升级为稳定版本。它为 Pod 与节点的 CPU、内存用量提供了标准查询接口,是 Horizontal Pod Autoscaler(HPA)与kubectl top等核心功能的底座。转正不改变功能,v1与v1beta1会在过渡期并存,便于平滑迁移。 - Kubelet 无 Root 模式(Rootless Mode)进入 Beta:Kubernetes 节点组件可以运行在 Linux 用户命名空间内,以非特权用户身份执行,同时在命名空间内保持 root 语义。这给节点组件加了一层隔离,有助于限制漏洞被利用后的影响范围。
- 卷健康监控(Volume Health Monitor):新增 CSI 存储健康上报机制,让存储故障不再只能靠"挂载失败"事后猜测,而是通过控制器侧与节点侧独立上报,提供更完整、可机器解析的存储健康视图。
Metrics API 转正对日常运维最实在。以前 kubectl top node 依赖 metrics-server 的临时实现,现在有了稳定的 v1 接口,监控告警、成本分析这类工具可以放心依赖它:
# 查看节点资源用量
kubectl top nodes
# 查看命名空间内各 Pod 用量
kubectl top pods -n production
值得注意的是,metrics.k8s.io 从 2017 年伴随 HPA 出现至今,一直是作为"附属接口"存在,很多监控体系只把它当成临时数据源。转正意味着 API 承诺正式化:字段不再随意变动,工具链可以放心长期依赖,这也为未来资源用量计费、成本分摊等高级功能铺平了道路。
需要提前应对的弃用与移除
- kube-proxy 的 ipvs 模式启动弃用:ipvs 模式曾在 v1.8 用来缓解 iptables 的性能瓶颈,但底层仍需 iptables 兜底。官方预计 v1.40 默认禁用、v1.43 彻底移除。可以用下面的命令确认当前模式,提前规划迁移:
kubectl -n kube-system get configmap kube-proxy -o jsonpath='{.data.config\.conf}' | grep 'mode:'
对还在用 ipvs 的集群,迁移方向通常是回到 iptables 默认模式,或者换用 eBPF 数据面(如 Cilium)这类更现代的方案。迁移本身不复杂:确认 mode 为空或为 iptables,然后滚动重启 kube-proxy,用 curl localhost:10249/proxyMode 验证。真正要留出时间的不是操作,而是排查那些依赖 ipvs 特殊行为的自定义规则。
kubectl run --filename/-f弃用:由于生成的 Pod 始终由命令行参数构建,-f标志将被废弃。- Static Pod 不再允许引用 Secret/ConfigMap:这是一个漏洞修复——此前 Static Pod 可以通过字段引用 API 资源,v1.37 起将被严格禁止。
- cgroup v1 走向移除:自 v1.35 起
failCgroupV1默认开启,依赖 cgroup v1 的节点需通过failCgroupV1: false临时覆盖,但官方明确这只是短期方案,建议尽快迁移到 cgroup v2。
检查节点是否已用 cgroup v2:
stat -fc %T /sys/fs/cgroup
# 输出 cgroup2fs 表示已使用 v2
版本窗口与迁移节奏
| 变更项 | 当前状态 | 时间线 |
|---|---|---|
| Metrics API | v1.37 转正 GA | v1 与 v1beta1 过渡期并存 |
| Kubelet Rootless | Beta | 后续版本推进 |
| ipvs 模式 | 弃用开始 | v1.40 默认禁用 / v1.43 移除 |
| cgroup v1 | 移除中 | 建议尽快迁移 v2 |
| SELinuxMount | 默认启用 | 可 seLinuxChangePolicy: Recursive 回退 |
对照这张表,建议把"检查 ipvs 模式、确认 cgroup v2、清理 Static Pod 对 Secret 的引用"列为 v1.37 升级前必做清单。清单里的每一项都对应 v1.37 之后两个版本内的明确动作,早做早安心;拖到最后,往往要同时面对多个变更叠加,排查起来更难定位是哪一项引入的问题。
破坏性变更:SELinuxMount 转正
SELinux 卷重标(SELinuxMount)在 v1.37 达到 GA 并默认启用。此前多个共享同一卷、使用不同 SELinux 标签的 Pod 可以靠递归重标共存,现在可能无法启动。若需保留旧行为,可在 Pod 中设置 seLinuxChangePolicy: Recursive。如果你的集群在裸机或自建环境下启用了 SELinux,升级到 v1.37 前最好先在有代表性的卷上做一次回归测试,确认没有 Pod 因为重标行为变化而起不来。
16IDC 观察
v1.37 的"告别清单"比"新增清单"更值得关注:技术债清理是这一代容器编排平台的主旋律。对中小企业而言,不必被新特性冲昏头脑,先把 ipvs 迁移、cgroup v2、Static Pod 规范这三件事排上日程更重要。具体行动建议很简单:把 v1.37 的升级测试、ipvs 模式确认、cgroup v2 体检写进下个迭代的运维计划,每项都不难,但都需要提前一个版本准备。入门团队可以从Kubernetes 入门部署指南开始,再结合Docker 部署入门理解容器基础。更多环境部署与运维内容请查看环境部署分类。
参考:Kubernetes v1.37 发布说明 https://kubernetes.io/blog/2026/07/31/kubernetes-v1-37-sneak-peek/