你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Kubernetes 服务 (AKS) 成本分析

本文介绍如何在 Azure Kubernetes 服务 (AKS) 上启用成本分析,以查看群集资源的详细成本数据。

关于成本分析

AKS 群集依赖于 Azure 资源,例如虚拟机 (VM)、虚拟磁盘、负载均衡器和公共 IP 地址。 多个应用程序可以使用这些资源。 每个应用程序的资源消耗模式通常不同,因此它们对群集资源总成本的贡献也可能有所不同。 某些应用程序可能跨多个群集占用空间,这在执行成本归因和成本管理时可能会带来挑战。

在 AKS 群集上启用成本分析时,可以查看范围为 Kubernetes 构造(例如群集和命名空间)以及 Azure 计算、网络和存储资源的详细成本分配。 该加载项基于 OpenCost(一个开放源代码云原生计算基金会 Incubating 项目)构建,用于收集使用情况数据。 使用情况数据与 Azure 发票数据进行协调,以便直接在 Azure 门户成本管理视图中提供 AKS 群集成本的综合视图。

有关 Microsoft 成本管理的详细信息,请参阅开始分析 Azure 中的成本

启用成本分析加载项并留出时间收集数据后,可以使用 了解 AKS 使用情况和成本中的信息来帮助了解数据。

先决条件

  • 群集必须使用 StandardPremium 层,而不是 Free 层。
  • 若要查看成本分析信息,必须在托管群集的订阅中具有以下角色之一:OwnerContributorReaderCost Management ContributorCost Management Reader
  • 群集上配置的 Microsoft Entra Workload ID
  • 如果使用 Azure CLI,则需要安装版本 2.61.0 或更高版本。
  • 启用成本分析后,如果不首先禁用成本分析,就无法将群集降级到 Free 层。
  • 访问 Azure API,包括 Azure 资源管理器 (ARM) API。 有关所需的完全限定域名 (FQDN) 的列表,请参阅 AKS 成本分析所需的 FQDN

限制

  • Kubernetes 成本视图仅适用于“企业协议”和“Microsoft 客户协议”Microsoft Azure 产品/服务类型。 有关详细信息,请参阅支持的 Microsoft Azure 产品/服务
  • 目前不支持虚拟节点。

在 AKS 群集上启用成本分析

可以在以下操作之一中使用 --enable-cost-analysis 标志启用成本分析:

  • 创建 Standard 层或 Premium 层 AKS 群集。
  • 更新现有 StandardPremium 层 AKS 群集。
  • Free 群集升级到 StandardPremium
  • Standard 群集升级到 Premium
  • Premium 群集降级到 Standard 层。

在新群集上启用成本分析

使用带有 --enable-cost-analysis 标志的 az aks create 命令对新群集启用成本分析。 以下命令将在启用成本分析时在 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

在现有群集上启用成本分析

使用带有 --enable-cost-analysis 标志的 az aks update 命令对现有群集启用成本分析。 以下示例将更新 Standard 层中的现有 AKS 群集以启用成本分析:

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

注意

启用加载项时,代理将部署到群集。 代理消耗少量 CPU 和内存资源。

警告

AKS 成本分析加载项内存使用量取决于部署的容器数。 可以粗略地使用每个容器 200 MB + 0.5 MB 来估算内存消耗。 当前内存限制设置为 4 GB,其支持每个群集大约 7000 个容器。 这些预估值可能会发生更改。

在 AKS 群集上禁用成本分析

使用带有 --disable-cost-analysis 标志的 az aks update 命令禁用成本分析。

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

注意

如果要在启用成本分析时将群集从 StandardPremium 层降级到 Free 层,必须先禁用成本分析。

查看成本数据

可以在 Azure 门户中查看成本分配数据。 有关详细信息,请参阅在 Microsoft 成本管理中查看 AKS 成本

成本定义

在 Kubernetes 命名空间和资产视图中,可能会看到以下任何费用:

  • “空闲费用”表示未由任何工作负载使用的可用资源容量的成本。
  • “服务费用”表示与运行时间 SLA、Microsoft Defender for Containers 等服务相关的费用。
  • “系统费用”表示 AKS 在每个节点上为运行群集所需的系统进程(包括 kubelet 和容器运行时)预留的容量成本。 了解详细信息
  • “未分配的费用”表示无法分配给命名空间的资源的成本。

注意

完成数据可能需要一天时间。 24 小时后,前一天的成本波动将趋于稳定。

故障排除

如果遇到问题(例如 cost-agent Pod OOMKilled 或停滞在 Pending 状态),请参阅排查 AKS 成本分析加载项问题

后续步骤

有关 AKS 中的成本的详细信息,请参阅了解 Azure Kubernetes 服务 (AKS) 使用情况和成本