全部產品
Search
文件中心

Container Service for Kubernetes:成本洞察資料模型介紹

更新時間:Jun 21, 2024

在ACK叢集中,Pod作為最小的可部署單元,是衡量叢集成本的關鍵因素。但不同Pod可能有不同的資源配置、調度策略和生命週期,導致其成本估算較為複雜。ACK提供一種通用性的成本資料模型定義和計算方法,幫您準確地衡量雲上ACK叢集的成本,並將成本分攤給不同維度(叢集、命名空間、應用等)的業務單元。

相關概念

下表為本文涉及的概念及解釋。

概念

說明

叢集總成本

運行一個ACK叢集所需的全部成本。

叢集資產成本

叢集下所有雲資源賬單的總和。

叢集間接成本

管理ACK叢集所需的額外費用或間接開銷,例如叢集管理費用。

叢集分配成本

叢集中已指派的空間按比例分攤叢集資產成本時,分攤的成本數額。

叢集閑置成本

叢集中未被分配的空間按比例分攤叢集資產成本,分攤的成本數額。

Pod分攤成本

一個Pod在特定周期內分攤叢集資產成本的數額。

一個ACK叢集的總成本包括叢集資產成本和叢集間接成本:叢集總成本 = 叢集資產成本 + 叢集間接成本

叢集資產成本可以進一步區分為叢集分配成本和叢集閑置成本:叢集資產成本 = 叢集分配成本 + 叢集閑置成本

叢集分配成本由Pod成本分攤確定,表示叢集內所有Pod分攤的成本總和,是叢集資產成本中已被分配的部分:叢集分配成本 = Σ (叢集下Pod分攤成本)

關係如下圖所示。

成本資料模型

叢集資產成本

一個ACK叢集通常包含節點、負載平衡、磁碟等基礎雲資源,以及Prometheus、NAT Gateway等可選雲資源。叢集資產成本是叢集關聯雲資源的賬單總和。

  • 叢集自動建立的雲資源:在ACK叢集中,可以通過叢集ID的唯一標籤(ack.aliyun.com:<叢集ID>)來拆分叢集關聯雲資源的全部賬單,在賬單累加後得到叢集的總資產成本。

  • 非叢集自動建立的雲資源:可以為這些雲資源手動添加叢集ID的資源標籤,使其納入叢集資產成本統計範圍。

Pod分攤成本

計算公式

Pod通常並不直接出賬,需要從叢集資產成本中按比例拆算Pod分攤的成本,從而準確彙總叢集不同維度業務賬單。因此,計算一個Pod的分攤成本時,核心是計算一個Pod在叢集中的成本佔比。

Pod分攤成本 = Pod成本佔比 * 叢集資產成本

Pod成本佔比是Pod類比成本在待分攤總成本的佔比。

Pod成本佔比 = Pod類比成本 / 待分攤總成本

Pod類比成本由Pod類比單價和時間長度決定。要計算一個Pod的類比單價,需要考慮Pod上各資源(例如CPU、記憶體、GPU)的分配量以及資源單價。

Pod類比成本 = Pod類比單價 * 時間長度

Pod類比單價 = Σ(資源單價 * 資源分派量 )


資源單價是決定Pod成本的核心因素,在不同情境可能存在多種單價定價方式。您可以直接從雲端服務商擷取(已知資源單價),也可以自訂資源單價(未知資源單價)進行內部成本會計。

樣本一:已知計算資源單價

例如,在常見的通過計算資源估算Pod成本的情境下,您可以參見以下公式完成Pod成本的分攤:

Pod成本佔比 = Pod類比成本 / Σ(叢集下Node成本)

Pod類比成本 = (CPU單價 * CPU分配量 + 記憶體單價 * 記憶體配置量 + GPU單價 * GPU分配量 )* 時間長度

樣本二:未知計算資源單價

對於未直接提供計算資源單價的情境(例如阿里雲ECS直接提供了節點總價格),需要使用權重分攤模型拆分計算。權重分攤的方式給模型自訂帶來更多靈活度。

Pod計算資源的單價 = 資源權重 * 節點單價 / 節點資源總量

Σ(資源權重) = 1

此時,資源權重是決定資源價值的核心因素。ACK預設使用資源調度水位來決定該資源在叢集中的“昂貴”程度,即根據資源調度水位的佔比確定資源的推薦權重。您也可以根據實際情況自訂權重數值。

命名空間、應用成本

參見前文完成Pod分攤成本的計算後,您可以通過彙總Pod分攤成本,進一步計算命名空間、應用(工作負載)的成本。

命名空間是一組具有相同欄位的Pod的彙總。

命名空間成本 = Σ(命名空間下Pod的分攤成本)

工作負載是命名空間下具有相同Label的Pod的彙總。

工作負載成本 = Σ(相同Label Pod的分攤成本)

相關文檔

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

  • 您可以基於叢集調度水位估算Pod成本,包括單資源(CPU、記憶體)估算和權重混合(CPU-記憶體混合)的資源估算,請參見成本估算策略介紹