Azure Kubernetes Service 成本分析

Azure Kubernetes Service (AKS) 叢集依賴 Azure 資源,例如虛擬機器、虛擬磁碟、負載平衡器和公用 IP 位址。 多個應用程式可以使用這些資源,而這些資源可由組織內數個不同的小組維護。 這些應用程式的資源耗用量模式通常為變數,因此其對叢集資源總成本的貢獻通常不會一致。 某些應用程式也可以有跨多個叢集的磁碟使用量,這在執行成本屬性和成本管理時可能會造成挑戰。

從前, Microsoft 成本管理 (MCM) 彙總叢集資源群組下的叢集資源使用量。 您可以使用 MCM 來分析成本,但是有數個挑戰:

  • 沒有 Azure 原生功能可以顯示比叢集等級更精細的叢集資源使用量。 沒有分別類別明細,例如運算 (包括 CPU 核心數和記憶體)、儲存體和網路。

  • 沒有 Azure 原生功能可區分成本類型,例如個別應用程式成本和共用成本。 MCM 已報告資源的成本,但沒有深入解析可用來執行個別應用程式的資源成本有多少、為叢集所需的系統流程保留了多少成本,或與叢集相關聯的閒置成本有多少。

  • 沒有 Azure 原生機制可以分析相同訂用帳戶範圍中多個叢集的成本。

因此,您可能已使用第三方解決方案按 Kubernetes 特定的細微性等級 (例如依命名空間或 Pod) 收集和分析資源耗用量和成本。 不過,第三方解決方案需要為每個 AKS 叢集投入部署、微調及維護。 某些情況下,您甚至需要支付進階功能的費用,進而增加叢集的擁有權總成本。

為了解決這項挑戰,AKS 已與 MCM 整合,除了 Azure 計算、網路和儲存體類別之外,還提供針對 Kubernetes 建構 (例如叢集和命名空間) 的詳細成本深入分析。

AKS 成本分析附加元件建置在 OpenCost 之上,這是用於使用方式資料收集的開放原始碼雲端原生計算基礎沙箱專案。 成本分析會與您的 Azure 發票資料協調。 可以從 MCM 成本分析入口網站體驗中直接看到處理後的資料。

先決條件與限制

  • 您的叢集必須是 StandardPremium 階層,而不是 Free 階層。

  • 若要檢視成本分析資訊,您必須在叢集主機的訂用帳戶上擁有下列其中一個角色:擁有者、參與者、讀者、成本管理參與者或成本管理讀者。

  • 啟用成本分析之後,如果沒有先停用成本分析,您將無法將叢集降級至 Free 層。

  • 您的叢集必須部署 Microsoft Entra 工作負載識別碼設定。

  • Kubernetes 成本檢視僅適用於下列 Microsoft Azure 供應項目類型。 如需供應項目類型的詳細資訊,請參閱 支援的 Microsoft Azure 供應項目

    • Enterprise 合約
    • Microsoft 客戶合約
  • 存取 Azure API,包括 Azure Resource Manager (ARM) API。 如需所需的完整網域名稱 (FQDN) 清單,請參閱 AKS 成本分析需要 FQDN

  • 目前不支援虛擬節點。

  • 目前不支援 AKS 自動。

  • 如果使用 Azure CLI,您必須安裝版本 2.61.0 或更新版本。

在您的 AKS 叢集上啟用成本分析

您可以在下列其中一項作業期間,使用 --enable-cost-analysis 旗標來啟用成本分析:

  • 建立 StandardPremium 階層 AKS 叢集。

  • 更新已在 StandardPremium 階層中的 AKS 叢集。

  • Free 叢集升級為 StandardPremium

  • Standard 叢集升級為 Premium

  • Premium 叢集降級為 Standard 階層。

下列範例會在已啟用成本分析的 Standard 階層中建立新的 AKS 叢集:

az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

下列範例會更新 Standard 階層中現有的 AKS 叢集,以啟用成本分析:

az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis

警告

AKS 成本分析附加元件記憶體使用量取決於部署的容器數目。 每個容器的記憶體耗用量大約估計是 200MB + 0.5MB。 目前的記憶體限制設定為 4 GB,每個叢集支援大約 7000 個容器。 根據各種因素,這些估計值可能或多或少,且可能會有所變更。

如果您遇到附加元件 Pod 處於 OOMKilled 或停滯於 Pending 狀態的問題,請參閱 AKS 成本分析附加元件問題疑難排解指南。

停用成本分析

您可以隨時使用 az aks update 停用成本分析。

az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis

注意

如果您想要在啟用成本分析時,將叢集從 StandardPremium 階層降級至 Free 階層,您必須先明確停用成本分析。

檢視成本資料

您可以在 Azure 入口網站中檢視成本配置資料。 若要深入瞭解如何瀏覽成本分析 UI 檢視,請參閱 成本管理文件

成本定義

在 Kubernetes 命名空間和資產檢視中,您會看到下列費用:

  • 閑置費用:代表任何工作負載未使用之可用資源容量的成本。
  • 服務費用:代表與運行時間 SLA、適用於容器的 Microsoft Defender 等服務相關聯的費用。
  • 系統費用:代表 AKS 在每個節點上保留的容量成本,以執行叢集所需的系統流程,包括 kubelet 和容器運行時間。 深入了解
  • 未配置的費用:代表無法配置給命名空間的資源成本。

注意

最多可能需要一天的時間才能完成資料。 24小時之後,前一天的任何成本波動都將穩定下來。

疑難排解

請參閱下列指南,以針對 AKS 成本分析附加元件問題進行疑難排解

深入了解

可見度是成本管理的一個元素。 如需如何控制 Kubernetes 成本的其他最佳做法,請參閱 將 Azure Kubernetes Service (AKS) 中最佳化成本