全部產品
Search
文件中心

Container Service for Kubernetes:成本估算的策略介紹

更新時間:Jun 19, 2024

在ACK叢集中,Pod和雲資源不存在一對一關聯性,生命週期也短於雲資源。因此,企業分攤部門、應用等維度資源成本時,如何估算Pod的成本成為關鍵。估算一個Pod分攤的成本時,還需同時考慮該Pod關聯資源的成本。為了更好地貼合您的業務情境,ACK成本套件功能提供基於調度水位衡量資源成本的估算策略。

估算策略介紹

估算策略

細分策略

使用情境

單資源估算策略

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

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

權重混合資源估算策略

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

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

單資源估算策略

單資源估算策略是預設的成本估算策略。如果您期望貼合資源調度的水位來計算叢集成本,推薦您使用此策略。

使用情境

調度水位是指資源申請量佔資源總量的比例,大部分情境下,叢集的調度水位由申請最多的資源類型決定。因此,單資源估算策略更適合叢集中一種資源的調度水位明顯高於另一種資源,並且叢集中的業務資源申請類型比較集中的情境。

以Java為代表的記憶體型應用為例,應用Pod會向叢集申請大量記憶體資源(Memory Request),導致記憶體的調度水位升高,記憶體變成決定叢集是否可調度的“昂貴”資源,而CPU則變成了“便宜”的資源。此情境下,使用單一資源估算策略進行成本計算較為合理:當記憶體佔據叢集90%調度水位時,計算的成本也可以達到叢集總成本的90%,做到100%的擬合。

功能原理

在單資源策略中,Pod成本通過CPU或記憶體指標計算。

單Pod成本計算

Pod成本計算公式如下所示(資源套件括記憶體資源和CPU資源):

image..png

命名空間層級的成本計算

命名空間是一組具有相同欄位的Pod的彙總。準確估算Pod的成本佔比後,通過計算命名空間下所有Pod相對於叢集中所有Pod的費用比例,乘以叢集的費用賬單,可以實現命名空間層級的費用計算。

  • 命名空間成本計算公式如下所示:

    image..png

  • 命名空間成本比例計算公式如下所示:

    圖片 1

權重混合資源估算策略

使用情境

如果叢集中混合部署了CPU型和記憶體型的應用,或者叢集CPU和記憶體水位持平,推薦您使用混合資源估算策略。此時,CPU和記憶體的“價值”相近,可以利用調度水位比例來進一步衡量兩種資源的價值。

功能原理

在權重混合資源估算策略中,Pod通過CPU和記憶體指標混合加權計算。混合資源估算策略的權重由叢集CPU、記憶體調度水位的比例決定。

單Pod成本估算

與單資源策略不同,混合資源策略的Pod成本通過CPU和記憶體混合的估算策略來計算。Pod成本的計算公式如下所示:

image..png

權重值依據叢集的調度水位確定,叢集中CPU調度水位和記憶體調度水位的比例、權重的計算方式如下所示:

  • CPU調度水位:

    image..png

  • 記憶體調度水位:

    image..png

  • CPU權重:

    image..png

  • 記憶體權重:

    image..png

使用樣本

通過以下兩種樣本,展示如何選擇成本估算策略。

樣本1:叢集中的業務資源申請類型比較集中

如下圖所示,叢集中同時部署兩類對記憶體需求較高的應用,分別申請了1核2G和1核4G的資源,使記憶體調度水位達到90%,而CPU水位為20%。假設叢集每天的總花費為200美元

  • 使用單資源估算策略:

    • 如果使用記憶體單資源估算,計算成本為200*90%=180美元,符合叢集調度情況。

    • 如果使用CPU單資源估算,計算成本為200*20%=40美元,而此時叢集只剩10%的記憶體可供繼續調度,還會產生大量的閑置成本無法得到分配。

  • 使用權重混合資源估算策略:

    如果對兩種資源加權計算成本,依據調度水位,我們假設設定記憶體和CPU的權重分別為80%和20%,計算的成本為180*0.8+40*0.2=152美元,相比於直接使用記憶體分賬,還有28美元沒有得到分配。

綜上所述,可以發現使用單資源估算策略中的記憶體單資源估算策略,可以使分配的成本達到總成本的90%,因此對於叢集中的業務資源申請類型比較集中的情境,推薦您使用單資源估算策略。

樣本2:叢集中的業務資源申請類型比較平均

如下圖所示,叢集混合部署了兩種業務,分別申請了1核4G和4核1G的資源,CPU調度水位為40%,記憶體調度水位為50%。假設叢集總花費是每天200美元

  • 使用單資源估算策略:

    • 如果使用記憶體單資源估算,計算成本為200*50%=100美元

    • 如果使用CPU單資源估算,計算成本為200*40%=80美元

  • 使用權重混合資源估算策略:

    如果對兩種資源加權計算成本,依據調度水位,我們假設設定記憶體和CPU的權重分別為56%和44%,計算的成本為100*0.56+80*0.44=91.2美元。相比於直接使用記憶體分賬,僅只有8.8美元沒有得到分配。

綜上所述,雖然本樣本的記憶體單資源估算成本>權重混合資源估算成本,但是CPU調度水位和記憶體調度水位相差不大(兩者資源的請求量相近),即兩種資源的價值相近,且成本相差不大,因此根據綜合考慮需要選擇使用權重混合資源估算策略。

常見問題

如何解決混合資源估算策略可能產生空閑成本的問題?

產生原因:對叢集使用混合資源策略可能會增加空閑成本,這是因為業務的關鍵資源的水位往往大於非關鍵資源的水位。當關鍵資源到達瓶頸時,非關鍵資源總會存在空閑,即當兩種資源的水位相差較大時,水位較低的資源便會產生空閑成本。在單資源策略中,這部分空閑資源的成本能夠得到分配;而如果使用混合資源策略,則可能會增加空閑成本。

解決方案:為解決混合資源估算策略可能產生空閑成本的問題,您可以根據業務資源需求選擇更合適的機型,保證CPU和記憶體水位持平,也可以選擇使用單資源估算策略。

相關文檔

  • 如果您對雲上資源成本分攤的要求較高,需要定製分賬商務邏輯,您可以通過自訂核算策略來進行成本會計,請參見自訂成本會計的策略

  • 您可以通過HTTP API命令查看上報資料,便於您基於成本資料進行二次開發,請參見通過API擷取成本資料概述