你当前正在访问 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 使用情况和成本中的信息来帮助了解数据。
先决条件
- 群集必须使用
Standard
或Premium
层,而不是Free
层。 - 若要查看成本分析信息,必须在托管群集的订阅中具有以下角色之一:
Owner
、Contributor
、Reader
、Cost Management Contributor
或Cost 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 群集。 - 更新现有
Standard
或Premium
层 AKS 群集。 - 将
Free
群集升级到Standard
或Premium
。 - 将
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
注意
如果要在启用成本分析时将群集从 Standard
或 Premium
层降级到 Free
层,必须先禁用成本分析。
查看成本数据
可以在 Azure 门户中查看成本分配数据。 有关详细信息,请参阅在 Microsoft 成本管理中查看 AKS 成本。
成本定义
在 Kubernetes 命名空间和资产视图中,可能会看到以下任何费用:
- “空闲费用”表示未由任何工作负载使用的可用资源容量的成本。
- “服务费用”表示与运行时间 SLA、Microsoft Defender for Containers 等服务相关的费用。
- “系统费用”表示 AKS 在每个节点上为运行群集所需的系统进程(包括 kubelet 和容器运行时)预留的容量成本。 了解详细信息。
- “未分配的费用”表示无法分配给命名空间的资源的成本。
注意
完成数据可能需要一天时间。 24 小时后,前一天的成本波动将趋于稳定。
故障排除
如果遇到问题(例如 cost-agent
Pod OOMKilled
或停滞在 Pending
状态),请参阅排查 AKS 成本分析加载项问题。
后续步骤
有关 AKS 中的成本的详细信息,请参阅了解 Azure Kubernetes 服务 (AKS) 使用情况和成本。