HPA 的背景資訊
Horizontal Pod Autoscaler(HPA)是 Kubernetes 的一項功能,允許您配置叢集以自動擴展或縮減其運行的服務。本節說明 HPA 如何與 Kubernetes 配合使用。
為什麼使用 Horizontal Pod Autoscaler?
使用 HPA,您可以自動擴展或縮減複製控制器、部署或副本集中運行的 Pod 數量。HPA 會自動擴展運行的 Pod 數量以實現最大效率。影響 Pod 數量的因素包括:
- 使用者定義的允許運行的最小和最大 Pod 數量。
- 資源指標中報告的觀察到的 CPU/記憶體使用情況。
- 由第三方指標應用程式(如 Prometheus、Datadog 等)提供的自訂指標。
HPA 透過以下方式改善您的服務:
- 釋放過多 Pod 所浪費的硬體資源。
- 根據需要增 加/減少效能以實現服務等級協議。
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 文件。
Horizontal Pod Autoscaler API 物件
HPA 是 Kubernetes autoscaling API 群組中的 API 資源。目前的穩定版本是 autoscaling/v1,僅包含對 CPU 自動擴展的支援。要獲得基於記憶體和自訂指標的擴展的額外支援,請改用測試版:autoscaling/v2beta1。
有關 HPA API 物件的更多資訊,請參閱 HPA GitHub Readme。