本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

关于HPA的背景信息

水平Pod自动扩缩器(HPA)是Kubernetes的一项功能,允许您配置集群以自动扩展正在运行的服务。本节提供有关HPA如何与Kubernetes协同工作的解释。

为什么使用水平Pod自动扩缩器?

使用HPA,您可以对复制控制器、部署或副本集中的Pod数量进行自动扩缩。HPA会自动扩缩运行中的Pod数量,以实现最高效率。影响Pod数量的因素包括:

  • 用户定义的允许运行的最小和最大Pod数量。

  • 资源指标中报告的CPU和内存使用情况。

  • 第三方指标应用程序提供的自定义指标,如Prometheus、Datadog等。

HPA通过以下方式改善您的服务:

  • 释放本来会因过多Pod而浪费的硬件资源。

  • 根据需要提高或降低性能,以满足服务等级协议。

HPA的工作原理

HPA架构

HPA以控制循环的形式实现,其周期由下面的`kube-controller-manager`标志控制:

标志 默认值 说明

--horizontal-pod-autoscaler-sync-period

30s

HPA在部署中审核资源/自定义指标的频率。

--horizontal-pod-autoscaler-downscale-delay

5m0s

在完成缩减操作后,HPA必须等待多长时间才能启动另一个缩减操作。

--horizontal-pod-autoscaler-upscale-delay

3m0s

在完成扩展操作后,HPA必须等待多长时间才能启动另一个扩展操作。

有关HPA的完整文档,请参阅 Kubernetes文档

水平Pod自动扩缩器 API 对象

HPA 是 Kubernetes autoscaling API 组中的一个 API 资源。当前稳定版本是 autoscaling/v1,仅支持 CPU 自动扩缩。要获得基于内存和自定义指标的扩缩支持,请使用测试版:autoscaling/v2beta1

有关 HPA API 对象的更多信息,请参见 HPA GitHub 说明文档