簡體   English   中英

Kubernetes HPA - 如何避免因 CPU 利用率飆升而擴大規模

[英]Kubernetes HPA - How to avoid scaling-up for CPU utilisation spike

HPA - 如何避免因 CPU 使用率峰值而向上擴展(不是在啟動時)當為不同國家/地區加載業務配置時,CPU 負載增加 1 分鍾,但我們希望避免擴展那 1 分鍾。

在圖片下方,CurrentMetricValue 只是矩陣的當前值或從上次輪詢到當前輪詢持續時間的平均值 --horizo​​ntal.-pod-autoscaler-sync-period

在此處輸入圖片說明

默認的 HPA 檢查間隔為 30 秒。 這可以通過更改控制器管理器的標志--horizontal-pod-autoscaler-sync-period的值來配置。

Horizo​​ntal Pod Autoscaler 實現為一個控制循環,其周期由控制器管理器的 --horizo​​ntal-pod-autoscaler-sync-period 標志控制。

在每個時間段內,控制器管理器根據每個 Horizo​​ntalPodAutoscaler 定義中指定的指標查詢資源利用率。 控制器管理器從資源指標 API(對於每個 Pod 資源指標)或自定義指標 API(對於所有其他指標)獲取指標。

為了在 kube-controller-manager 中更改/添加標志 - 您應該可以訪問主節點上的/etc/kubernetes/manifests/目錄,並且能夠修改/etc/kubernetes/manifests/kube-controller-manager.yam

注意:您無法在 GKE、EKS 和其他托管集群上執行此操作。

更重要的是,我建議增加--horizontal-pod-autoscaler-downscale-stabilization (替代--horizontal-pod-autoscaler-upscale-delay )。

如果您擔心長時間中斷,我建議您設置一個自定義指標(如果網絡在最后${duration}關閉, ${duration} ,否則為 0)並將指標的目標值設置為 1(除了基於 CPU 的自動縮放)。 這邊走:

如果網絡在最后${duration}中出現故障,基於自定義指標的建議將等於您部署的當前大小。 此建議的最大值和非常低的 CPU 建議將等於部署的當前大小。 在連接恢復之前不會有縮小(由於縮小穩定窗口,幾分鍾后)。

如果網絡可用,則基於該指標的推薦將是 0。如果 CPU 推薦達到最大值,它將等於 CPU 推薦,並且自動縮放器將正常運行。 我認為這比限制自動縮放步驟的大小更能解決您的問題。 限制自動縮放步驟的大小只會減慢 pod 數量減少的速度,因此更長的網絡中斷仍會導致您的部署縮小到允許的最小大小。

您還可以使用基於內存的縮放

由於無法在 Kubernetes 中創建基於內存的 hpa,因此編寫了一個腳本來實現相同的功能。 您可以通過單擊此鏈接在此處找到我們的腳本:

https://github.com/powerupcloud/kubernetes-1/blob/master/memory-based-autoscaling.sh

克隆存儲庫:

https://github.com/powerupcloud/kubernetes-1.git

然后進入 Kubernetes 目錄。 執行help命令獲取說明:

./memory-based-autoscaling.sh --help

在此處閱讀更多信息: 基於內存的自動縮放

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM