為快速識別ACK集群工作負載的穩定性、性能或成本風險,您可以通過為集群開啟成本洞察功能來實現。成本洞察不僅提供集群所有資源的使用率,而且還專門為QoS類別為Burstable和BestEffort的Pod提供詳細的數據視圖以監控資源配置。本文介紹如何使用成本洞察功能分析集群資源的風險性。
前提條件
已開啟成本洞察功能。具體操作,請參見啟用成本洞察功能。
已開啟阿里云Prometheus監控。具體操作,請參見使用阿里云Prometheus監控。
資源配置不合理有哪些風險?
Kubernetes基于Pod的資源配置定義了以下三種QoS(Quality of Service)類,用于代表服務質量和穩定性的不同級別。當節點遇到資源壓力時,Kubernetes會基于QoS類確定優先驅逐哪些Pod。
Guaranteed:這類Pod中每個容器都指定了Resource Request和Resource Limit,并且這兩個值相等。Guaranteed Pod有最嚴格的資源限制,最不容易面臨驅逐,確保服務的頂級穩定性和性能表現。
Burstable:這類Pod配置了Resource Request,未配置Resource Limit,可以使用整個節點的資源。當節點資源耗盡時,Kubernetes會優先驅逐BestEffort,然后再考慮驅逐Burstable Pod,確保靈活性與穩定性之間的平衡。
BestEffort:這類Pod既沒有配置Resource Request,也沒有配置Resource Limit。它們只在節點有剩余資源時才能運行,并且在資源緊缺時最先被驅逐,以保護那些有明確資源需求的服務。
因此,合理配置資源對于工作負載的穩定性、性能和成本有重要影響。資源的Request和Limit未配置或配置不足可能影響工作負載穩定性或性能,過度配置又可能造成成本浪費。
資源配置狀態 | 資源類型 | 風險 |
未配置 | CPU | 穩定性和性能受影響,工作負載可能無法獲得CPU資源,從而導致無響應。 |
內存 | 穩定性受影響,工作負載可能隨時因內存不足被中止。 | |
配置不足 | CPU | 性能受影響,工作負載可能運行緩慢或無響應。 |
內存 | 穩定性受影響,工作負載可能因OOM中止退出。 | |
過度配置 | CPU | 資源利用率低,會產生成本浪費。 |
內存 | 資源利用率低,會產生成本浪費。 |
為了快速識別集群工作負載的穩定性、性能或成本風險,您可以通過為集群開啟成本洞察功能來查看集群工作負載的資源水位、查看集群Burstable Pod的資源配置情況,以及查看集群存在風險的BestEffort Pod,從而實現工作負載的穩定性和性能分析。以下介紹該功能的常見使用場景和用法。
識別集群資源風險
穩定性&效率分析是成本洞察中的一個模塊,以下介紹如何使用該模塊,從而達到分析集群資源是否存在風險。
功能入口
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在集群維度頁簽下,根據穩定性&效率分析頁面的數據,分析集群資源是否存在風險。
如下圖所示,該頁面不僅展示集群中各種QoS的Pod數量以及總資源用量,還支持查看詳細的資源使用量分析。具體資源用量分析,請見下文。
查看集群Pod資源使用率
集群Pod資源使用率分析列表會默認為您提供集群所有Pod的基礎信息和資源使用率(Usage/Request),同時支持過濾和排序。您可以通過該功能批量查看集群中資源水位最高或最低的工作負載。
資源使用率過低意味著資源配置過度,您的工作負載可能存在成本節省的空間。
資源使用率過高意味著資源配置不足,視CPU或內存配置情況,您的工作負載可能正在面臨性能或穩定性風險。
如果您的資源使用率超過100%,這意味著資源使用量(Usage)超出資源請求量(Request),工作負載的穩定性可能面臨風險。
示例
如下圖所示,將Pod的內存使用情況按從高至低排序后,顯示所展示的Pod內存利用率均超過了100%。接下來,需要根據實際情況進一步分析是否需要調整配置以降低風險。
查看集群Burstable Pod的資源配置情況
Burstable Pod - 資源用量分析列表用于查看QoS類為Burstable Pod的資源配置情況,同時支持過濾和排序。您可以通過該功能查看每個Burstable Pod的CPU、內存等資源的請求(Request)和限制(Limit)情況,便于您了解Pod所消耗的集群資源并識別潛在的資源瓶頸。
CPU Limit未配置:集群穩定性和性能受影響,工作負載可能無法獲得CPU資源,從而導致無響應。
內存 Limit未配置:集群穩定性受影響,工作負載可能隨時因內存不足被中止。
示例
如下圖所示,下方Pod未設置CPU Limit,可能會因資源競爭而導致集群性能下降或Pod被驅逐。
查看集群中BestEffort Pod的資源使用量
在Best Effort Pod - 資源用量分析列表用于查看QoS類為BestEffort Pod的資源配置情況,這類Pod一般具有較高穩定性風險,您可以通過過濾和排序列表,來檢查是否有預期外的BestEffort Pod,以便及時處理來規避風險。
示例
如下圖所示,如果某些承載關鍵業務服務的Pod的QoS類為BestEffort,需要根據實際情況進行QoS類調整,以確保業務穩定運行。