Share via


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 之上,這是一個開放原始碼 Cloud Native Computing Foundation 沙盒專案,用於使用數據收集。 成本分析會與您的 Azure 發票數據協調。 可以從 MCM 成本分析入口網站體驗中直接看到處理後的資料。

先決條件與限制

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

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

  • 啟用成本分析之後,您就無法將叢集降級至 Free 階層,而不需要先停用成本分析。

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

  • 如果使用 Azure CLI,您必須安裝版本 2.44.0 或更新版本,並安裝 aks-preview Azure CLI 延伸模組版本 0.5.155 或更新版本。

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

    • Enterprise 合約
    • Microsoft 客戶合約
  • 目前不支援虛擬節點。

安裝或更新 aks-preview Azure CLI 延伸模組

使用 az extension add 命令來安裝 aks-preview Azure CLI 延伸模組。

az extension add --name aks-preview

如果您需要更新延伸模組版本,則可以使用 az extension update 命令來執行此動作。

az extension update --name aks-preview

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

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

  • 建立或 Premium 階層 Standard 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。 目前的記憶體限制設定為 4GB,每個叢集大約支援 7000 個容器,但可能根據各種因素而定。 這些估計值可能會有所變更。

停用成本分析

您可以隨時使用 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 中的 成本優化。