全部產品
Search
文件中心

Container Service for Kubernetes:叢集成本洞察

更新時間:Jun 19, 2024

本文介紹如何查看叢集成本洞察及叢集成本洞察的能力。

索引

前提條件

開啟成本洞察功能

步驟一:為成本洞察組件配置RAM許可權

通過onectl配置

  1. 在本地安裝配置onectl。具體操作,請參見通過onectl管理註冊叢集

  2. 執行以下命令,為成本洞察組件配置RAM許可權。

    onectl ram-user grant --addon ack-cost-exporter

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-ack-cost-exporter granted to ram user ack-one-user-ce313528c3 successfully.

通過控制台配置

  1. 建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 建立自訂權限原則。具體操作,請參見建立自訂權限原則ack-cost-exporter組件所需的權限原則內容如下。

    展開查看ack-cost-exporter組件所需的自訂權限原則

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "bssapi:QueryInstanceBill",
                    "bssapi:DescribeInstanceBill"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ecs:DescribeDisks",
                    "ecs:DescribeSpotPriceHistory",
                    "ecs:DescribeInstances",
                    "ecs:DescribePrice"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": "eci: DescribeContainerGroupPrice",
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. 為RAM使用者添加許可權。具體操作,請參見為RAM使用者授權

  4. 為RAM使用者建立AccessKey。具體操作,請參見建立AccessKey

  5. 使用AccessKey在註冊叢集中建立名為alibaba-addon-secret的Secret資源。執行以下命令,建立ack-cost-exporter組件使用的Secret。

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'

步驟二:安裝ack-cost-exporter組件

通過onectl安裝

執行以下命令,安裝ack-cost-exporter組件。

onectl addon install ack-cost-exporter

預期輸出:

Addon ack-cost-exporter, version **** installed.

通過控制台安裝

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇應用 > Helm

    若Helm頁面存在ack-cost-exporter安裝記錄,請刪除對應的安裝記錄後,再按照後續操作重新接入。

  3. 在叢集管理頁左側導覽列,選擇營運管理 > 組件管理

  4. 組件管理頁面,單擊日誌與監控頁簽,找到ack-cost-exporter組件,單擊右下角的安裝。然後單擊確定

注意事項

  • 在開啟成本洞察功能後第二天08: 00自動顯示賬單資料。

  • 選擇右上方下拉式功能表,可查看不同時間範圍的叢集成本可視化大盤資料。

叢集維度成本分析

篩選維度

image.png

功能

序號

描述

叢集成本統計選項

叢集成本統計指標選項,包含優惠後實際賬單成本和原價賬單成本統計:

  • 優惠後實際賬單成本:大盤預設選項。成本統計時,統計叢集中所有雲資源的應付金額。

  • 原價賬單成本統計:成本統計時,統計叢集中所有雲資源的官網價。

關於應付金額和官網價的詳細介紹,請參見明細賬單

說明

叢集中應用部分成本統計只會按原價賬單成本進行統計,包括Namespace、Pod等應用維度成本統計。

成本分攤模型選項

成本分攤模型選項,包含單資源模型和權重混合資源模型,具體分為如下幾類。

  • CPU模型:大盤預設選項。使用CPU資源請求量估算Pod成本

  • 記憶體模型:使用記憶體資源請求量估算Pod成本。

  • CPU-記憶體混合模型(推薦權重):對CPU指標和記憶體指標加權估算Pod成本,使用系統推薦權重。

  • CPU-記憶體混合模型(自訂權重):對CPU指標和記憶體指標加權估算Pod成本。使用此分攤模型,您需要先選擇分攤模型為CPU-記憶體混合模型(自訂權重),再編輯CPU權重設定

關於成本分攤模型選擇的詳細介紹,請參見成本分攤模型概述

時間範圍

選擇大盤時間範圍,預設為最近7天。您可以設定該項查看不同時間範圍的成本、資源趨勢。

費用概覽

image.png

功能

序號

描述

通過昨日、本周、本月花費統計對叢集成本概要分析

成本費用統計,其中昨日叢集花費、花費日環比、本周累計花費和本月累計花費為本叢集的雲資源的賬單成本統計。

本周累計、本月累計花費分別為自然周、自然月的賬單花費統計。由於賬單出賬周期存在T+1延遲,周一將不顯示本周累計花費資料,每月第一日也將不顯示本月累計花費的統計值。

花費日環比為昨日叢集成本與前一天之間的環比:

  • 當相對昨日費用的變化比率的字型顏色為綠色時,表示相比前一日成本有所降低。

  • 當相對昨日費用的變化比率的字型顏色為紅色時,表示相比前一日成本有所增長。

通過成本趨勢判斷叢集成本、資源浪費概要情況

叢集花費和叢集容量趨勢圖,黃色曲線表示成本消費,藍色曲線表示實際的叢集容量。通常情況下,兩條曲線會存在一定的相關性。

對比兩者相關性,如果發現兩者呈現趨勢不一致,表明叢集的單位核成本異常。請檢查是否有資源花費過高。

成本詳情及趨勢

image.png

功能

序號

描述

以命名空間維度查看即時成本估算、費用分攤和即時成本估算趨勢

①②⑦

①為叢集內各命名空間的即時估算成本,命名空間成本是其中所有Pod估算成本之和,②為各命名空間的費用分攤值,是命名空間按估算比例對叢集實際費用的分攤,⑦為叢集中各命名空間的即時估算成本趨勢圖。

說明
  • 命名空間的成本統計按原價賬單成本計算。

  • 命名空間下的Pod若未配置Resource Request (CPU),則視為未申明叢集資源需求量,不參與命名空間成本統計計算。

在一個叢集中,可能存在各種不同規格、不同付費方式的節點類型。當您通過命名空間進行分賬時,不能僅通過每個命名空間的資源申請值進行判斷,還需要考慮命名空間下Pod所在節點的情況。

成本洞察將每個節點的即時費用進行了轉換。在統計命名空間維度費用時,轉換為:

Σ(Pod資源申請/節點容量)*節點單價

這種方式可以精確估算命名空間的成本費用。使用者折扣、代金券抵扣、訂用帳戶等各種延遲計費策略可能會導致命名空間的成本費用和叢集的實際賬單費用不一致。但您可以通過命名空間的成本佔比乘以叢集總費用的方式獲得命名空間層級的分賬。

通過雲產品費用趨勢與比例分析雲產品成本

③④

③為叢集中各雲產品的成本花費佔比統計,④為叢集中各雲產品的成本花費趨勢統計。

一個叢集中會包含多種雲產品,不同雲產品的使用方式、計費模型不同,會導致雲產品產生的費用存在差異。您可以通過成本趨勢和組合查看不同的雲產品消費情況,從而進行成本決策。

通過叢集總成本趨勢分析叢集成本

每日叢集的總費用成本趨勢統計。

通過節點池成本費用趨勢分析叢集成本

叢集中各節點池或虛擬節點(Virtual Node)的節點賬單成本分析。

叢集的計算資源請求、使用率趨勢

使用情境:

  • 用於分析叢集中的水位、容量是否存在資源浪費的情況。

  • 當出現彈性等情境時,叢集水位會產生周期性波動,此圖表可供您規劃資源容量。

趨勢圖含義:

  • Y軸:整體叢集的計算資源總容量(Capacity),代表整體叢集能承載的應用資源數。

  • 綠色柱狀圖:當前小時叢集中所有被分配(Request)的計算資源需求數。

  • 黃色柱狀圖:當前小時叢集中真實Pod容器中進程使用的計算資源(Usage),即應用真實使用資源。

應用已指派且未使用資源=綠色柱狀圖-黃色柱狀圖

叢集剩餘資源可分配量=Y軸-綠色柱狀圖

分析流程:

  • 未分配資源浪費:您可以參考叢集剩餘資源可分配量,使用叢集中未被分配使用的浪費資源。通過調整叢集中Pod的資源需求量(Request),或適當降配。推薦保持剩餘資源可分配量為總叢集資源的20%左右。

  • 已指派未使用資源浪費:您可以參考叢集已指派未使用部分資源量,配合命名空間大盤中浪費應用、Pod的排名,找到分配資源量過大但實際使用資源量較小的應用,對資源分派量(Request)進行降配。

  • 彈性擴縮情境:業務呈現周期波動等常見情境下,可參考柱狀圖的波動水位進行資源容量規劃,並配置合適的彈性策略。

叢集計費詳細資料

雲產品維度、雲產品執行個體維度叢集每日賬單列表。

image.png

使用成本洞察分析雲下IDC節點及應用的成本

成本洞察支援註冊叢集中IDC節點、以及節點上應用的成本洞察分析能力。成本洞察預設以0.2元/Core*Hour的單價計算註冊叢集中IDC節點、以及節點上應用的成本。您可以通過以下方式配置自訂IDC節點的單價。

  • 為所有IDC節點配置統一的價格

    在kube-system命名空間下,通過為ack-cost-exporter的Deployment中配置env環境變數參數DefaultIDCPricePerCPUCoreHour,配置所有IDC節點的統一價格。

    說明

    此處價格為每單位CPU核時(元/Core*Hour)的價格。

    env:
    # 配置每台IDC節點每單位CPU核時價格為0.3元。
    - name: DefaultIDCPricePerCPUCoreHour
      value: "0.3"
  • 為某個節點配置單獨的價格

    在對應節點Node中增加label"node.kubernetes.io/price-per-day”,為該節點單獨配置節點價格。

    說明

    此處價格為此節點一天的總價。

    執行以下命令,為某個節點配置定義每天該節點總價為100元。

    kubectl label nodes <node-name> node.kubernetes.io/price-per-day="100"

常見問題

為什麼開啟成本可視化後沒有資料顯示?

  • 檢查RAM角色授權操作已完成。具體操作,請參見開啟成本分析功能的步驟3。 成本分析需要叢集的監控資料和費用資料,監控資料在開啟後3min內即可開始採集,費用相關的資料需要從叢集開啟成本分析後的第二天08: 00才有資料顯示。

  • 檢查叢集是否配置NAT Gateway。由於部分地區不支援通過內網endpoint查詢賬單,請確認您的叢集具備訪問公網能力。

  • 花費日環比明日預測花費需要連續採集兩天的費用資料後才顯示。

為什麼命名空間的費用相加與實際的費用賬單不相等?

命名空間的費用是通過成本估算來進行核算的,並非直接通過賬單分析得出。因此,在做費用估算的時候,是通過目錄價進行計算的,當叢集的花費包含代金券、折扣、節約計劃等抵扣策略的時候,會出現一定的資料偏差。但是,可以通過命名空間的比例乘以叢集的總費用進行費用的分賬。

為什麼有些節點上的Pod資料無法擷取成本資料?

檢查RAM角色授權操作已完成,並確認授權策略中包含"ecs:DescribeDisks"許可權。具體操作,請參見開啟成本分析功能的步驟3

為什麼賬單中展示的雲產品沒有包括叢集使用的所有雲產品?

成本分析只統計本叢集獨享的雲產品,對於多叢集共用的雲產品,不在成本分析的賬單統計範圍內。成本洞察功能依賴阿里雲使用者中心標籤統計功能,依賴雲產品key:ack.aliyun.com value:{{叢集ClusterId}}標。如您在阿里雲使用者中心費用標籤頁面關閉此標籤,叢集成本統計將會失效。此時,您需要在阿里雲使用者中心費用標籤頁面按照頁面提示開啟ack.aliyun.com標籤和ack.alibabacloud.com/nodepool-id標籤的分析統計功能。

為什麼本月/本周累計花費比實際低?

叢集從成本洞察組件成功開通後才開始統計產生的費用,不會統計組件開通前的資料。