编程 Kubernetes v1.37 正式发布:HPA 缩容到零默认启用,watchcache 初始化完成

2026-09-09 08:01:10

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 新增 CheckpointPodRestorePod 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 行为变化对共享卷场景的影响。

来源:Kubernetes v1.37: Garhwal

复制全文 生成海报 Kubernetes 容器编排 云原生 HPA

推荐文章

程序员茄子在线接单