全部產品
Search
文件中心

Container Service for Kubernetes:如何使用註冊叢集的成本洞察功能

更新時間:Jul 08, 2025

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

前提條件

開啟成本洞察功能

開啟成本洞察

步驟一:為成本洞察組件配置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使用者

  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使用者授權

  4. 為RAM使用者建立AccessKey

    警告

    建議您參見AccessKey網路訪問限制策略配置網路原則,將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組件,單擊右下角的安裝。然後單擊確認

跨帳號開啟成本洞察

在使用帳號A的ACK註冊叢集納管帳號B下的ACK叢集時,需要在帳號B的ACK叢集中授權成本洞察功能,以便該功能可以訪問帳號B的賬單資料。

步驟一:為帳號B配置RAM許可權並安裝組件

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

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

  3. 授予訪問ACK叢集賬單資料的許可權。

    • ACK託管叢集:系統會自動授予相關許可權。完成授權後,系統會建立AliyunCSManagedCostRole角色,阿里雲Prometheus使用該角色訪問您在費用與成本的賬單資料並進行成本洞察。

      您也可以單擊存取控制快速授權連結,在存取控制快速授權頁面,單擊確認授權

    • ACK專有叢集

      展開查看授權步驟

      1. 成本洞察頁面,單擊KubernetesWorkerRole-***

      2. 在RAM角色頁面的許可權管理頁簽,單擊權限原則列下的k8sWorkerRole****

      3. 在權限原則詳情頁面的策略內容頁簽下,單擊修改策略內容

      4. 在指令碼編輯框中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"
                }
        說明

        多個策略內容需要用英文半形逗號(,)分隔。

    說明

    帳號B中ack叢集無需安裝Prometheus,若您已安裝,請先卸載ack-arms-prometheus組件。具體操作,請參見管理組件

步驟二:為帳號A安裝組件

  1. 在註冊叢集所在帳號A中安裝Prometheus。具體操作,請參見將阿里雲Prometheus接入註冊叢集

  2. 在註冊叢集所在的帳號A中,配置ack-cost-exporter組件參數AckRegisteredClusterId為帳號B中ACK叢集的clusterId

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

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

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

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

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

    5. 安裝組件 ack-cost-exporter頁面中,配置registeredAckClusterId為帳號B中叢集的clusterId,然後單擊確定

注意事項

開啟成本洞察功能後,賬單資料將在次日08:00自動顯示。選擇右上方下拉式功能表,可查看不同時間範圍的叢集成本資料。

叢集維度成本分析

篩選維度

image.png

功能

序號

描述

叢集成本統計選項

叢集成本統計指標選項。

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

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

更多資訊,請參見賬單詳情
說明

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

成本分攤模型選項

成本分攤模型選項,包含單資源模型和權重混合資源模型,詳情請參見成本估算策略介紹

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

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

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

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

時間範圍

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

叢集成本概覽

image

功能

序號

描述

查看成本分攤模型

此資料結果與選擇的成本分攤模型選項有關。大盤預設CPU模型選項,使用CPU資源請求量估算Pod成本。

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

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

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

花費日環比為昨日叢集成本與前一天之間的環比。綠色表示降低,紅色表示增長。

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

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

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

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

④⑤

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

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

  • 未配置Resource Request(CPU)的Pod不參與命名空間成本統計。

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

成本洞察將每個節點的即時費用進行了轉換。在統計命名空間維度費用時,轉換為Σ(Pod資源申請/節點容量)*節點單價這種方式可以精確估算命名空間的成本費用。

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

穩定性&效率分析

image

功能

序號

描述

查看叢集總資源用量

叢集中各種QoS的Pod數量以及總資源用量。

查看叢集Pod資源使用率

叢集所有Pod的基礎資訊和資源使用率(Usage/Request),支援過濾和排序。可通過該功能批量查看叢集中資源水位最高或最低的工作負載。

查看叢集Burstable Pod的資源配置情況

QoS類為Burstable Pod的資源配置情況,支援過濾和排序。可通過該功能查看每個Burstable Pod的CPU、記憶體等資源的請求(Request)和限制(Limit)情況,便於瞭解Pod所消耗的叢集資源並識別潛在的資源瓶頸。

查看叢集中BestEffort Pod的資源使用量

QoS類為BestEffort Pod的資源配置情況,這類Pod一般具有較高穩定性風險。可通過過濾和排序列表檢查是否有預期外的BestEffort Pod,以規避風險。

關於穩定性&效率分析功能的更多資訊,請參見使用成本洞察識別叢集資源風險

叢集費用分析

image

功能

序號

描述

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

①②

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

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

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

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

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

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

以命名空間維度查看即時成本估算趨勢

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

成本洞察將每個節點的即時費用進行了轉換。在統計命名空間維度費用時,轉換為Σ(Pod資源申請/節點容量)*節點單價這種方式可以精確估算命名空間的成本費用。

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

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

使用情境:

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

  • 彈性等情境下,叢集水位會產生周期性波動,可供您規劃資源容量。

趨勢圖含義:

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

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

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

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

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

分析流程:

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

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

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

叢集計費詳細資料

⑦⑧

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

使用成本洞察分析雲下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。 成本分析需要叢集的監控資料和費用資料,監控資料在開啟後3分鐘內開始採集,費用資料將在叢集開啟成本分析後的第二天08: 00顯示。

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

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

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

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

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

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

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

成本分析只統計本叢集獨享的雲產品。多叢集共用的雲產品不在成本分析的賬單統計範圍內。

成本洞察功能依賴費用與成本控制台的費用標籤功能,即依賴於雲產品標籤中的特定標識(key:value=ack.aliyun.com:{{叢集ClusterId}})來實現叢集成本的追蹤與統計。如果您在費用標籤頁面關閉了此標籤,那麼叢集層級的成本統計將會失效。為瞭解決成本統計失效問題,請重新在費用標籤管理頁面啟用ack.aliyun.comack.alibabacloud.com/nodepool-id標籤。

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

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