Kubernetes v1.37:使用 Horizontal... 笔记

Kubernetes v1.37:使用 HorizontalPodAutoscaler 将工作负载缩容至零

Kubernetes v1.37 现已默认提供将工作负载缩放到零副本的 Beta 级 API 支持。这使得 HorizontalPodAutoscaler 能够将闲置资源缩减至零,并在需要时重新扩容。此前,该功能需要外部附加组件或 Alpha 级特性门控。将工作负载缩放到零对于队列消费者类工作负载尤为有益,可显著节省资源,特别是在使用昂贵专用硬件的场景下。主要权衡在于冷启动时间增加,因为系统需要观察指标、调度 Pod 并启动应用程序。这种方法在任务可暂时保留在持久化队列中时最为有效。与 Pod 消失后不复存在的 CPU 或内存指标不同,对象指标和外部指标可独立持续存在。这使得 HorizontalPodAutoscaler 即使在没有任何工作 Pod 运行时,仍能继续监控队列长度等指标。要从零开始扩容,需要使用外部指标适配器(如 Prometheus Adapter)将指标(如队列消费者延迟)暴露给 Kubernetes。HorizontalPodAutoscaler 随后配置为最小副本数为零,并针对外部指标进行配置以决定扩容行为。一个特殊的 ScaledToZero 状态条件用于区分自动缩放到零与手动暂停,确保 HorizontalPodAutoscaler 能够恢复控制。该功能此前处于 Alpha 阶段,现已在 v1.37 中晋升为 Beta 级,并默认启用以提升资源效率。