您可以通过Allocation API查询业务分摊到的集群账单费用,用于财务治理周期内的业务对账。
前提条件
已参见通过API获取成本数据概述的前提条件章节完成准备工作。
请求与返回参数
请求语法
GET /v2/allocation
请求参数
字段 | 类型 | 是否必选 | 描述 |
window | string | 是 | 查询的持续时间。由于成本数据需要结合云产品账单数据来输出,所以最小持续时间为24h。接受以下几种格式的输入:
|
filter | string | 否 | 对指定资源类别进行过滤。支持的类别包括:
同一个类别支持指定多个过滤项,使用英文半角逗号(,)分隔,例如 同时,支持多字段组合过滤,使用 |
step | string | 否 | 对返回结果按时间段切分为多个成本集,step描述单个成本集的持续时间,例如“1d”、“1w”。如果未指定,默认为 说明 成本集指一个时间段内Kubernetes对象成本的集合,例如一个Pod在持续时间内的成本集合。 |
aggregate | string | 否 | 对返回结果按照不同维度进行聚合。支持的类别包括:
|
format | string | 否 | 成本导出格式。支持的类别包括:
|
返回参数
名称 | 类型 | 描述 |
properties | object | 描述关联Kubernetes对象的属性。 |
pod | string | Pod名称。 |
namespace | string | 命名空间。 |
controllerKind | string | 控制器类型。 |
controller | string | 控制器名称。 |
start | string | 成本集的开始时间。 |
end | string | 成本集的结束时间。 |
cpuCoreRequestAverage | float | 请求的平均CPU核心数。 |
cpuCoreUsageAverage | float | 使用的平均CPU核心数。 |
ramByteRequestAverage | float | 请求的平均内存量。 |
ramByteUsageAverage | float | 使用的平均内存量。 |
cost | float | 分摊集群总账单的成本。 |
costRatio | float | 成本占比。描述当前成本占集群总成本的比例。 |
customCost | float | 自定义成本。 |
获取成本数据
本小节使用curl命令访问Kubernetes API。具体操作,请参见使用Kubernetes API。
示例:获取某个DsaemonSet昨天分摊集群账单的费用
获取命令
curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=yesterday' \
-d 'filter=namespace:"kube-system"+controllerKind:"DaemonSet"+label[app]:"terway-eniip"' \
"$APISERVER/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/v2/allocation" | jq .