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

使用 Kubecost 进行成本治理

成本治理是持续实现策略以控制成本的过程。 在 Kubernetes 上下文中,组织可通过多种方式控制和优化成本。 其中包括原生 Kubernetes 工具,该工具用于管理和治理资源使用情况和消耗情况,并主动监视和优化底层基础结构。

本部分演示如何使用 Kubecost 来治理 Azure Kubernetes 服务 (AKS) 群集成本。 可以将成本分配范围限定为部署、服务、标签、Pod 或命名空间,这为向群集用户收费或显示群集用户提供了灵活性。

安装 Kubecost

有几个选项可供安装 Kubecost。 有关详细信息,请参阅安装 Kubecost

建议的安装方法是 Helm 3 图表。 若要使用 Helm 3 安装 Kubecost 的基本配置,请使用以下命令:

helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace

几分钟后,检查以确保 Kubecost 已启动并运行:

kubectl get pods -n kubecost

# Connect to the Kubecost dashboard UI

kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090

现在可以打开浏览器并指向 http://127.0.0.1:9090 以打开 Kubecost UI。 在 Kubecost UI 中,选择群集以查看成本分配信息。

为 Azure 云集成配置 Kubecost

若要完成 Kubecost 安装,应配置 Azure 云集成Azure 费率卡配置

使用 Microsoft 成本导出,可以创建一个定期任务,该任务每天自动将成本管理数据导出到 Azure 存储帐户。 Kubecost 配置为访问此存储帐户中的数据,从而允许它在 仪表板 中显示 Azure 资源的总成本,而不仅仅是来自 AKS 群集的数据。 为了确保 Kubecost 生成准确的仪表板,应按照 Kubecost 文档中所述标记 Azure 资源,以便标记 Azure 资源。 某些 Azure 资源由 AKS 群集创建,这是创建类型或服务PersistentVolumeLoadBalancer的情况。 若要正确跟踪这些资源的成本,可以使用 Kubernetes 资源中的注释添加适当的 Azure 标记,如文章“在 Azure Kubernetes 服务 中使用 Azure 标记”一文中的示例。

需要 Azure 费率卡配置才能在仪表板中报告准确的定价。 需要 创建具有自定义角色的服务主体,如文档页 中所述,并将 Kubecost 配置为使用服务主体查询 Azure 计费费率卡 API。

Kubecost 将资源细分为以下类别:

  • 每月群集成本
  • 命名空间成本
  • 部署资源成本
  • 成本效益

选择群集以查看概述,如以下仪表板所示:

显示 Kubecost 仪表板的屏幕截图。

选择左侧的“分配”,深入了解资源的命名空间成本。 “分配”显示 CPU、内存、永久性卷和网络的成本。 Kubecost 从 Azure 定价获取数据,但你也可以为资源设置自定义成本。

显示 Kubecost 分配屏幕的屏幕截图。

选择左侧的“节省”,深入了解未充分利用的资源的成本节省情况。 “节省”可提供有关未充分利用的节点、Pod 和弃用资源的信息,并确定群集中预配过度的资源请求。 以下屏幕截图显示了一个示例“节省”概述

显示 Kubecost Savings 屏幕的屏幕截图。

请花一些时间浏览 Kubecost 提供的不同视图和功能。