Kubernetes v1.37(Garhwal)发布解读:HPA 缩容到零转 Beta,metrics.k8s.io 转 Stable
Kubernetes 于 2026 年 8 月 26 日发布 v1.37,代号 Garhwal(印度北阿坎德邦喜马拉雅山区)。本版本共包含 67 项增强:16 项转 Stable、23 项转 Beta、27 项进入 Alpha、1 项弃用/移除。
值得关注的变化
HorizontalPodAutoscaler 缩容到零(Beta,默认启用):使用对象或外部指标的工作负载,HPA 现在可以在空闲时把副本缩到 0,需求恢复时再拉起来,对队列消费者、批处理任务和 GPU 工作负载可以显著降低成本。设置 spec.minReplicas: 0 即可生效(基于 CPU/内存指标的缩零不支持)。HPA 会在 status 中记录 ScaledToZero 条件以区分「被自动缩零」与「手动停用」。
resilient watch cache 初始化完成(Stable):WatchCacheInitializationPostStartHook 转 Stable 并锁定,API server 启动与恢复时的 watchcache 初始化不再对 etcd 造成请求尖峰;超限请求以 HTTP 429 优雅拒绝。自定义控制器与 operator 需要正确处理 429 与 Retry-After。
manifest-based admission control(Beta):Admission webhook 与 CEL 策略可以从磁盘上的 manifest 文件加载(staticManifestsDir),而非只存在于 Kubernetes API 中;策略从 API server 启动即生效,etcd 不可用时仍工作,还能保护 admission 资源本身不被修改。
Pod 级 checkpoint/restore(Alpha):CRI 新增 CheckpointPod 与 RestorePod RPC,允许 kubelet 与兼容容器运行时创建 Pod 检查点并从检查点恢复(需要运行时支持)。
转 Stable 的重点功能
- KYAML:更安全、歧义更少的 YAML 子集(仍是合法 YAML),
kubectl get -o kyaml转 Stable。 - metrics.k8s.io API:Beta 近九年后转 Stable,为 HPA、
kubectl top提供标准化的 Pod/节点 CPU 与内存用量接口。 - SELinuxMount / SELinuxChangePolicy:默认启用,卷以
-o context=<label>方式挂载而非递归重打标签(需 CSI 驱动 opt-in);共享卷且 SELinux 标签不同的 Pod 可能因此无法同节点共存,可回退seLinuxChangePolicy: Recursive。 - DRA 多项能力转 Stable:ResourceClaim
.status.devices(含标准化网络接口数据)、通过 DRA driver 处理扩展资源请求、设备 taints/tolerations、标准 NUMA 节点设备属性。
影响与建议
v1.37 的核心信号是「弹性与稳定」:缩容到零让闲置工作负载成本进一步下降;watchcache 与 admission 相关改动要求控制面使用者(尤其自定义控制器)按 429 语义做好退避。升级前注意 SELinuxMount 行为变化对共享卷场景的影响。