您可以通过ACK成本分析功能查看集群、命名空间、节点池和应用等成本可视化大盘。本文介绍如何开启或关闭成本分析功能。

前提条件

  • Kubernetes集群的版本为1.18.8及以上,否则请升级集群。具体操作,请参见升级ACK集群K8s版本
  • Kubernetes集群已开启ARMS Prometheus监控。具体操作,请参见开启ARMS Prometheus监控
  • Kubernetes集群已安装ack-cost-exporter组件。

开启成本分析功能

  1. 登录容器服务管理控制台,在左侧导航栏中选择集群
  2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择运维管理 > 成本分析
  3. 成本分析页面,单击集群的KubernetesWorkerRole-***,在RAM控制台完成RAM授权策略。
    1. 在RAM角色基本信息的权限管理页签,单击权限策略名称列下的k8sWorkerRole****
    2. 权限策略管理页面的策略内容页签下,单击修改策略内容
    3. 在脚本编辑框中修改权限策略内容,增加以下授权规则,修改完成后单击下一步:编辑基本信息,然后单击确定
              {
                  "Action": [
                      "bssapi:QueryInstanceBill",
                    	"bssapi:DescribeInstanceBill"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "ecs:DescribeDisks",
                      "ecs:DescribeSpotPriceHistory",
                      "ecs:DescribeInstances",
                      "ecs:DescribePrice"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
      说明 多个策略内容需要用半角逗号(,)分隔。
  4. 返回成本分析页面,单击开始安装完成组件安装。然后单击开始升级
    升级完成后,即可进入成本分析页面。

关闭成本分析功能

集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择运维管理 > 组件管理,在组件管理页面卸载ack-cost-exporter组件即可。

常见问题

ack-cost-exporter组件安装或卸载失败后如何处理?

  • 当安装ack-cost-exporter组件失败时,请先通过以下命令手动删除ack-cost-exporter组件,然后在运维管理 > 组件管理中重新安装ack-cost-exporter组件即可。
  • 当卸载ack-cost-exporter组件失败时,直接通过以下命令手动删除ack-cost-exporter组件即可。
kubectl delete deployment ack-cost-exporter -n kube-system
kubectl delete service alibaba-cloud-price-exporter -n kube-system
kubectl delete service alibaba-cloud-billing-exporter -n kube-system

kubectl delete ServiceMonitor alibaba-cloud-price-exporter -n kube-system
kubectl delete ServiceMonitor alibaba-cloud-billing-exporter -n kube-system

kubectl delete ClusterRoleBinding ack-cost-exporter-cluster-role-binding
kubectl delete ClusterRoleBinding ack-cost-exporter-cluster-role-binding-v1

kubectl delete ServiceAccount ack-cost-exporter -n kube-system
kubectl delete ClusterRole ack-cost-exporter-cluster-role