全部產品
Search
文件中心

Container Service for Kubernetes:使用ACK成本洞察實現成本管理及最佳化

更新時間:Jun 26, 2024

本文結合企業實際情況進行成本洞察,示範雲原生架構下如何更準確地計算業務成本分攤,從而實現讓企業在享受雲原生帶來的靈活性和效率的同時,也能有效地管理和控製成本。

前提條件

背景資訊

在傳統的IT治理情境中,業務往往獨享一套雲資源,例如節點、負載平衡、儲存資源等。這些雲資源獨立計費,成本追蹤相對直接且簡單。

進入雲原生時代,資源的使用模式發生了變化。一個節點可能同時運行來自不同業務的容器,網路、儲存資源也可能被多個應用共用。這種資源共用的模式增大了成本分攤的複雜性,即成本難以被明確分攤到各個業務單元,導致成本洞察和管理更為複雜。

為此,ACK提供一種通用性的成本資料模型,以更準確計算業務成本分攤。具體實現如下所示:

  1. 首先,分析每個Pod使用的資源(如CPU、記憶體、儲存等),計算出Pod的類比成本。

  2. 其次,根據Pod的類比成本,按比例將整個叢集的總賬單(包括所有資源的費用)分配給各個Pod。按比例拆分叢集總賬單,即可獲得Pod分攤叢集總賬單的費用。

  3. 最後,通過匯總一個周期內所有關聯到特定業務的Pod分攤的成本,即可得出該業務單元的總成本。

情境樣本

如下圖所示,某企業將所有業務部署在一個ACK叢集上,組織架構包括四個業務部門:部門A負責應用A,部門B和部門C共同負責應用B,部門D負責應用C和應用D。

其中,應用A和應用B是Web服務,需要穩定的業務負載,調度到訂用帳戶的ECS節點;應用C和應用D負責資料處理和資料分析業務,有資源彈性的需求,調度到隨用隨付的ECS節點。

使用成本洞察實現成本管理及最佳化

以下示範如何通過可視化的成本洞察大盤,查看部門和應用的成本。

說明

您也可以通過HTTP API查看部門和應用的成本。詳情請參見通過Allocation API擷取

步驟一:確定成本治理周期

  • 叢集費用查看周期

    ECS執行個體有兩種出賬周期,訂用帳戶的執行個體以月或周為出賬周期;隨用隨付的執行個體以小時為出賬周期。由於本情境叢集同時包含兩種付費類型的執行個體,在查看叢集總費用時,周期需設定在月維度。為便於直接對比和分析賬單資料,一般可將ECS出賬日作為成本治理起始和結束日期。

  • 部門、應用費用查看周期

    • 部門A、B、C的業務都運行在訂用帳戶的節點上,所以成本治理周期以月為維度。

    • 部門D的業務都運行在隨用隨付的節點上,所以成本治理周期以天為維度。

    • 應用費用查看周期可根據所屬部門確定。

步驟二:根據業務類型確定成本分攤策略

在計算業務成本分攤時,會涉及到估算業務關聯Pod的成本,ACK提供單資源估算策略和權重混合資源估算策略。

估算策略

細分策略

使用情境

單資源估算策略

CPU和記憶體資源的單資源策略

叢集中一種資源的調度水位明顯高於另一種資源,或者叢集中的業務資源申請類型比較集中的情境。

權重混合資源估算策略

CPU-記憶體混合策略(推薦權重)和CPU-記憶體混合策略(自訂權重)。

叢集中混合部署了CPU型和記憶體型的應用,或者叢集CPU和記憶體水位持平的情境。

預設情況下,對於叢集中的業務資源申請類型比較集中的情境,推薦您使用單資源估算策略。比如叢集業務都是CPU密集型,可以直接選擇CPU單資源策略。

更多情境選型及策略分析,請參見成本估算策略介紹

步驟三:查看叢集費用

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

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

  3. 成本洞察頁面的叢集維度頁簽,設定如下篩選項,然後查看花費結果。

    1. 實際/原價賬單:選擇叢集成本統計選項,本樣本設定為優惠後實際賬單成本

    2. 時間範圍:本樣本設定為2024-05-01 00:00:00 to 2024-05-31 23:59:59

    本月累計花費-優惠後實際賬單成本地區,查看叢集在2024年05月的總費用。查看

步驟四:查看部門成本

  1. 成本洞察頁面,單擊命名空間維度頁簽,設定如下篩選項,然後查看成本估算結果。

    • 命名空間(Namespace):選擇部門對應的命名空間,本樣本設定為預設命名空間default

    • 實際/原價賬單:選擇命名空間成本統計選項,本樣本設定為優惠後實際賬單成本

    • 時間範圍:本樣本設定為2024-05-31 00:00:00 to 2024-05-31 23:59:59

      在本樣本中,部門D負責的業務對資源需求有波動性,您也可以將時間調整到具體某天,例如2024-05-31,查看部門D每天的成本。

    然後,在命名空間費用分攤地區,查看該部門的分攤費用。

    image.png

步驟五:查看應用成本

  1. 成本洞察頁面,單擊應用維度頁簽,設定如下篩選項,然後查看應用花費。

    • 命名空間(Namespace):選擇應用所在的命名空間,本樣本設定為預設命名空間default

    • 標籤對篩選(LableSelector):應用對應的標籤。

    • 時間範圍。本樣本設定為2024-05-31 10:00至2024-05-31 16:59。

      在本樣本中,由於應用C和應用D的業務特性,導致每天的成本可能存在波動,因此將時間範圍調整到某天的具體時間段,例如10:00至16:59,查看應用具體時間段的成本。

    然後,在應用花費地區,查看結果。

    image.png

常見問題

開通成本洞察後,查看上月或者上周花費時,為什麼沒有資料?

成本洞察功能從您開通後開始記錄資料,如果所選時間範圍內還未開通,將不會展示資料。

查看歷史花費時,為什麼展示的資料低於實際花費?

ARMS Prometheus的預設儲存時間長度為15天,請確保您所選的時間範圍在Prometheus的儲存時間內。如果有更長成本洞察周期的需求,請參見如何調整指標的儲存時間長度?

相關文檔

  • 除了可視化的成本洞察大盤,您也可以通過HTTP API查看部門和應用分攤叢集賬單的成本。ACK提供Allocation API協助您按Namespace、Controller、Label、Pod等維度彙總業務成本,詳情請參見通過Allocation API擷取

  • 關於成本洞察指標的詳細說明,請參見叢集維度成本分析命名空間維度成本分析節點池維度成本分析應用維度成本分析

  • 如有降低容器配置Request和Limit複雜性的需求,可以通過資源畫像功能實現容器粒度的資源規格推薦,協助您調整應用規格配置。詳細資料,請參見資源畫像

  • 對於多雲和混合雲情境,資源可能來自不同雲廠商甚至線下環境,使統一視圖的資源監控和成本管理變得更具挑戰性。關於如何通過ACK One實現混合雲成本管理,請參見叢集成本洞察