除預設的成本分攤策略外,成本套件功能還支援自訂成本會計策略。如果您對雲上資源成本分攤的要求較高,需要定製分賬商務邏輯,您可以編寫設定檔自訂資源價格,從而更貼合您的分賬商務邏輯。
本功能目前處於灰階中。如需使用,請提交工單申請。
使用情境
自訂成本會計能夠協助您更精細化地進行企業IT成本治理。其典型使用情境如下。
企業內部營運團隊批量購買了底層計算資源,然後以轉售的形式分發給不同的業務團隊。
對於部分企業來說,同規格Pod調度到不同規格節點時將產生費用偏差,希望在業務維度屏蔽資源動態性帶來的成本差異。
對於企業的不同業務部門,將相同資源請求量的Pod按不同超賣比例部署於同一台計算節點,要實現部門間差異化的成本會計,需要在計算Pod單價時考慮資源Limit的因素。
為解決上述情境下企業成本會計時的資料定製需求,成本套件提供自訂價格模板功能,您可以通過編輯模板配置Pod的各資源單價,即可彙總出Pod的定價成本。
目前Pod定價成本僅支援以API的形式透出,開啟並完成定價配置後,您可以通過API響應的customCost欄位擷取Pod的定價成本。API的使用方式,請參見通過API擷取成本資料概述。
前提條件
步驟一:開啟cost-exporter自訂價格開關
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在頁面上方,切換命名空間為kube-system,在Deployment列表的操作列,單擊ack-cost-exporter對應的更多>查看Yaml,在
command
中增加'--enable-custom-price=true'
,開啟自訂價格功能,然後單擊更新。
步驟二:配置定價模板
操作步驟
使用以下範例程式碼,建立名為price-template.yaml的檔案。
重要模板中
spec
欄位下的欄位均為可選。如果spec
下已配置的所有欄位都符合Pod元資訊,則判定Pod與該模板匹配。spec
為空白的模板可以匹配所有Pod。匹配定價模板時為順序匹配,即當多個模板和Pod同時匹配時,系統會根據模板YAML自上而下地選定第一個匹配到的模板,用於給Pod定價。
apiVersion: v1 kind: ConfigMap metadata: name: price-template namespace: kube-system data: template.yaml: | - name: template-nginx spec: labelSelector: app: nginx namespaceSelector: - default - kube-system resource: cpu: 500m memory: 512Mi cpu-overcommit-ratio: 2 memory-overcommit-ratio: 2 price: cpu: 0.2 memory: 0.03 - name: template-default price: cpu: 0.1 memory: 0.02
此定價模板表示:
對於叢集中同時符合以下條件的Pod,使用名為template-nginx的模板進行定價:
標籤包含
app:nginx
命名空間為default或kube-system
CPU申請量為500 MB,限制量為1 Core
記憶體申請量為512 MiB,限制量為1 GiB
對於叢集中其他Pod,使用名為template-default的模板進行定價。
相關參數解釋如下表所示:
參數
說明
name
定價模板的名稱。
spec.labelSelector
待匹配的Pod標籤集合,Pod任一標籤存在該集合中即認為匹配。
spec.namespaceSelector
待匹配的Pod命名空間列表。
spec.resource.cpu
Pod的CPU申請量。
spec.resource.memory
Pod的記憶體申請量。
spec.resource.cpu-overcommit-ratio
Pod的CPU超賣比,即CPU限制量/CPU申請量。
spec.resource.memory-overcommit-ratio
Pod的記憶體超賣比,即記憶體限制量/記憶體申請量。
spec.price.cpu
Pod的CPU單價,單位為Core * Hour。
spec.price.memory
Pod的記憶體單價,單位為GiB * Hour。
執行以下命令,在kube-system命名空間下建立名為price-template的ConfigMap,以應用自訂的定價配置。
kubectl apply -f price-template.yaml -n kube-system
相關文檔
您可以基於叢集調度水位估算Pod成本,包括單資源(CPU、記憶體)估算和權重混合(CPU-記憶體混合)的資源估算,請參見成本估算策略介紹。
您可以通過HTTP API命令查看上報資料,便於您基於成本資料進行二次開發,請參見通過API擷取成本資料概述。