成本管理
实现多集群的成本和资源成本可视化,管理员可以直观的了解不同集群中成本分布与资源使用情况,并且将平台成本按照不同的业务团队进行划分,使各个业务团队可以清楚的知道各自团队成本分配情况,有助于平台管理员了解平台整体成本结构,采取相应措施优化资源配置和控制成本。
名词解释
| 名词 | 解释 |
|---|---|
| Usage | 容器组实际的 CPU、内存使用量。 |
| Request | 容器组对 CPU 和内存的期望请求量,是容器组希望系统为其保留的资源数量。 |
| __Idle__ | 未分配给任何工作负载使用的 CPU、内存资源的闲置成本。 |
| 已分配 | 已分配给工作负载使用的资源成本。 |
| 总计 | 在指定时间范围中,已分配成本与 __ Idle __ 成本每天或每小时的总和。 |
| __Unmounted__ | 统计预先创建的、未分配给任何容器组使用的持久卷 (PV) 所占用的存储资源成本。 |
| __Total__ | CPU、内存及存储资源总量的累计成本。 |
| __Other__ | 不属于任何项目的命名空间集合。 |
| CPU/内存/存储成本 | 是 CPU/内存/存储 已分配 成本与对应 __Idle__ 的总和。 |
前提条件
-
配置平台及 Kubecost 中的货币单位,具体方案有如下三种。
使用场景 方案说明 默认方案 平台及 Kubecost 中的成本数据均 使用美元 进行统计显示。 平台与 Kubecost 中的货币单位默认使用美元,无需进行任何货币单位替换及汇率换算操作。 推荐方案 平台及 Kubecost 中的成本数据均 使用人民币 进行统计显示。 在平台指定命名空间中,通过增加配置字典(ConfigMap)来设置平台的货币单位为人民币,并在 Kubesost 中设置货币单位为人民币,即可实现平台与 Kubecost 中的货币统一,具体请参考 配置平台与 Kubecost 中的货币单位 。 其他方案 平台与 Kubecost 中的成本数据 使用不同的货币单位 进行统计显示。 在平台指定命名空间中,通过增加配置字典(ConfigMap)来设置平台使用的货币单位及汇率,并在 Kubesost 中设置货币单位,具体请参考 配置平台与 Kubecost 中的货币单位 。 -
请自定义配置 CPU、内存及存储的每小时单价。登录 Kubecost,在 Settings > PRICING 页面中,若未启用 Enable Custom Pricing,则会使用默认值;若启用此项,请按照实际申购或使用情况填写 CPU、内存及存储单价。
-
请在 global 集群 部署 CostManager 插件。
-
需要在展示成本数据的每个集群均部署 Kubecost 插件。Kubecost 插件的部署和使用依赖于 Prometheus 插件,请先 部署 Prometheus 插件 后再 部署 Kubecost 插件 。
通用参数
平台 或 集群 成本管理中,仅统计已经部署了 Kubecost 插件的集群成本信息;项目 成本管理中,仅统计与项目关联的、且已成功部署 Kubecost 插件的所有集群的成本信息。
| 参数 | 说明 | 计算公式 |
|---|---|---|
| 成本总额 | 在给定时间范围内,所有集群中 CPU、内存及存储资源总量的累计费用。 | 成本总额 = CPU 成本 + 内存成本 + 存储成本(不包含磁盘成本)
|
| CPU 使用效率 | 在给定时间范围内,所有集群下容器组 CPU 的 Usage / Request。 | CPU 使用效率 = 已经成功部署 Kubecost 插件的所有集群中所有容器组 CPU 的 Usage 总和 / Request 总和。 |
| 内存使用效率 | 在给定时间范围内,所有集群下容器组内存的 Usage / Request。 | 内存使用率 = 已经成功部署 Kubecost 插件的所有集群中所有容器组内存的 Usage 总和 / Request 总和。 |
| 成本效率 | 在给定时间范围内,所有集群下容器组 CPU 及内存的 Usage 累计费用占分配总额的累计费用的百分比。 | 成本效率 = ((CPU 使用效率 * CPU 已分配成本) + (内存使用效率 * 内存已分配成本)) / (CPU 已分配成本 + 内存已分配成本)
|
| 成本明细 | 将平台内当前已成功部署了 Kubecost 集群的成本总额按照资源维度进行拆分展示,资源维度主要有:CPU、内存、存储。 | - |
| 成本趋势 | 按照所选时间范围展示总计、__Idle__ 及已分配的成本信息。 | - |
平台成本管理
按照给定时间范围展示平台成本信息,仅统计已经部署了 Kubecost 插件的集群成本信息。若当前平台中所有集群均未部署 Kubecost 插件,则页面所有参数显示为 - 或 无数据。
成本分布折线图及列表
| 参数 | 集群维度 | 项目维度 | 计算公式 |
|---|---|---|---|
| 成本分布折线图 | 按照所选时间范围展示已成功部署 Kubecost 插件的集群成本信息。
|
按照所选时间范围展示 Kubecost 中可统计的项目成本信息。
|
- |
| 成本分布列表 | 按照所选时间范围展示 __Total__、__Idle__ 及所有已部署或未部署 Kubecost 插件的集群,展示的信息包括 CPU、内存、存储、成本效率及总成本。 提示:若集群已部署 Kubecost 插件,则可通过单击对应集群名称进入对应集群成本页面查看详细信息。 |
按照所选时间范围展示 __Total__、__Idle__、__Other__ 及 Kubecost 中可统计的项目成本信息,展示的信息包括:关联集群、CPU、内存、存储、成本效率及总成本。 说明:
|
|
集群成本管理
成本分布折线图及列表
| 参数 | 命名空间维度 | 项目维度 | 计算公式 |
|---|---|---|---|
| 成本分布折线图 | 按照所选时间范围展示当前集群下命名空间的成本信息。 注意:当集群下命名空间数量超过 5 个,则仅展示成本总额为 Top5 的命名空间,可通过单击右侧 图例 查看各个命名空间的成本使用信息。 |
按照所选时间范围展示当前集群所属且 Kubecost 中可统计的项目成本信息。 |
- |
| 成本分布列表 | 按照所选时间范围展示 __Total__、__Idle__、__Unmounted__ 及该集群下的所有命名空间的成本信息,展示的信息包括 CPU、内存、存储、成本效率及总成本。 提示:可通过单击对应命名空间名称进入 Kubecost 并查看该命名空间的详细成本信息。 |
按照所选时间范围展示 __Total__、__Idle__、__Other__ 及集群所属且 Kubecost 中可统计的项目成本信息,展示的信息包括:CPU、内存、存储、成本效率及总成本。 |
|
项目成本管理
成本分布折线图及列表
| 参数 | 命名空间维度 | 计算公式 |
|---|---|---|
| 成本分布折线图 | 按照所选时间范围展示当前项目下所有命名空间的成本信息。 注意:当项目下命名空间数量超过 5 个,则仅展示成本总额为 Top5 的命名空间,可通过单击右侧 图例 查看各个命名空间的成本使用信息。 |
- |
| 成本分布列表 | 按照所选时间范围展示 __Total__、__Idle__ 及项目下所有命名空间的成本信息,展示的信息包括:所属集群、CPU、内存、存储、成本效率及总成本。 说明:
|
|
相关操作
配置平台中的货币单位
-
在左侧导航中,单击 集群管理 > 资源管理。
-
切换至 global 集群。
-
单击 创建资源对象,新增 YAML 配置文件,示例如下。
apiVersion: v1 kind: ConfigMap metadata: name: costmanager-currency namespace: finops-system data: rate: '1' unit: '¥'字段说明:
字段 说明 metadata.name 该字段必须指定为 costmanager-currency,不可修改。metadata.namespace 该字段必须指定为 finops-system,不可修改。data.rate 平台中使用的汇率,若不指定该字段则默认为 1。
说明:若平台与 Kubecost 中的货币单位不同,则需按照实时汇率进行换算。例如:平台使用人民币,而 Kubecost 中使用美元,根据现在的汇率该字段需填写为 7.1409。data.unit 平台中使用的货币单位。其中,¥ 表示平台使用人民币作为货币单位,$ 表示平台使用美元作为货币单位。 -
单击 创建 并重新加载页面。
配置 Kubecost 中的货币单位
-
登录 Kubecost。
-
单击页面左下角 Settings。
-
单击 GENERAL > Cloud Cost Settings > Currency 区域的下拉选择框,选择 CNY。
说明:CNY 表示使用人民币作为 Kubecost 的货币单位,USD 表示使用美元作为 Kubecost 的货币单位。
-
单击页面最下方的 SAVE 保存配置并重新加载页面。