全部產品
Search
文件中心

Container Service for Kubernetes:使用成本洞察識別叢集資源風險

更新時間:Sep 13, 2024

為快速識別ACK叢集工作負載的穩定性、效能或成本風險,您可以通過為叢集開啟成本洞察功能來實現。成本洞察不僅提供叢集所有資源的使用率,而且還專門為QoS類別為Burstable和BestEffort的Pod提供詳細的資料檢視以監控資源配置。本文介紹如何使用成本洞察功能分析叢集資源的風險性。

前提條件

資源配置不合理有哪些風險?

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,從而實現工作負載的穩定性和效能分析。以下介紹該功能的常見使用情境和用法。

識別叢集資源風險

穩定性&效率分析是成本洞察中的一個模組,以下介紹如何使用該模組,從而達到分析叢集資源是否存在風險。

功能入口

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇成本套件 > 成本洞察

  3. 叢集維度頁簽下,根據穩定性&效率分析頁面的資料,分析叢集資源是否存在風險。

    如下圖所示,該頁面不僅展示叢集中各種QoS的Pod數量以及總資源用量,還支援查看詳細的資源使用量分析。具體資源用量分析,請見下文。

    image

查看叢集Pod資源使用率

叢集Pod資源使用率分析列表會預設為您提供叢集所有Pod的基礎資訊和資源使用率(Usage/Request),同時支援過濾和排序。您可以通過該功能批量查看叢集中資源水位最高或最低的工作負載。

  • 資源使用率過低意味著資源配置過度,您的工作負載可能存在成本節省的空間。

  • 資源使用率過高意味著資源配置不足,視CPU或記憶體配置情況,您的工作負載可能正在面臨效能或穩定性風險。

  • 如果您的資源使用率超過100%,這意味著資源使用量(Usage)超出資源請求量(Request),工作負載的穩定性可能面臨風險。

樣本

如下圖所示,將Pod的記憶體使用量情況按從高至低排序後,顯示所展示的Pod記憶體利用率均超過了100%。接下來,需要根據實際情況進一步分析是否需要調整配置以降低風險。

image

查看叢集Burstable Pod的資源配置情況

Burstable Pod - 資源用量分析列表用於查看QoS類為Burstable Pod的資源配置情況,同時支援過濾和排序。您可以通過該功能查看每個Burstable Pod的CPU、記憶體等資源的請求(Request)和限制(Limit)情況,便於您瞭解Pod所消耗的叢集資源並識別潛在的資源瓶頸。

  • CPU Limit未配置:叢集穩定性和效能受影響,工作負載可能無法獲得CPU資源,從而導致無響應。

  • 記憶體 Limit未配置:叢集穩定性受影響,工作負載可能隨時因記憶體不足被中止。

樣本

如下圖所示,下方Pod未設定CPU Limit,可能會因資源競爭而導致叢集效能下降或Pod被驅逐。

image

查看叢集中BestEffort Pod的資源使用量

Best Effort Pod - 資源用量分析列表用於查看QoS類為BestEffort Pod的資源配置情況,這類Pod一般具有較高穩定性風險,您可以通過過濾和排序列表,來檢查是否有預期外的BestEffort Pod,以便及時處理來規避風險。

樣本

如下圖所示,如果某些承載關鍵商務服務的Pod的QoS類為BestEffort,需要根據實際情況進行QoS類調整,以確保業務穩定運行。

image

後續操作:最佳化資源配置

  • 如果通過成本洞察功能識別到ACK叢集中工作負載存在有潛在穩定性問題、效能瓶頸及成本超支風險,您可以使用ACK提供的資源畫像功能,基於資源使用量的歷史資料獲得容器粒度的資源規格推薦,簡化為容器配置Request和Limit的複雜度。更多資訊,請參見資源畫像

  • 利用成本洞察提供的資料和分析,您可以合理運用動態資源超賣進一步最佳化資源的成本效益。更多資訊,請參見啟用動態資源超賣