跳至主要内容

HPA 的背景資訊

Horizontal Pod Autoscaler(HPA)是 Kubernetes 的一項功能,允許您配置叢集以自動擴展或縮減其運行的服務。本節說明 HPA 如何與 Kubernetes 配合使用。

為什麼使用 Horizontal Pod Autoscaler?​

使用 HPA,您可以自動擴展或縮減複製控制器、部署或副本集中運行的 Pod 數量。HPA 會自動擴展運行的 Pod 數量以實現最大效率。影響 Pod 數量的因素包括:

  • 使用者定義的允許運行的最小和最大 Pod 數量。
  • 資源指標中報告的觀察到的 CPU/記憶體使用情況。
  • 由第三方指標應用程式(如 Prometheus、Datadog 等)提供的自訂指標。

HPA 透過以下方式改善您的服務:

  • 釋放過多 Pod 所浪費的硬體資源。
  • 根據需要增加/減少效能以實現服務等級協議。

HPA 如何運作​

HPA 架構

HPA 實作為控制迴圈,其週期由以下 kube-controller-manager 旗標控制:

旗標預設值說明
--horizontal-pod-autoscaler-sync-period30sHPA 在部署中稽核資源/自訂指標的頻率。
--horizontal-pod-autoscaler-downscale-delay5m0s完成縮減操作後,HPA 必須等待多久才能啟動另一個縮減操作。
--horizontal-pod-autoscaler-upscale-delay3m0s完成擴展操作後,HPA 必須等待多久才能啟動另一個擴展操作。

有關 HPA 的完整文件,請參閱 Kubernetes 文件。

Horizontal Pod Autoscaler API 物件​

HPA 是 Kubernetes autoscaling API 群組中的 API 資源。目前的穩定版本是 autoscaling/v1,僅包含對 CPU 自動擴展的支援。要獲得基於記憶體和自訂指標的擴展的額外支援,請改用測試版:autoscaling/v2beta1。

有關 HPA API 物件的更多資訊,請參閱 HPA GitHub Readme。