首页 / 平台管理 / 运营统计 / 成本管理

成本管理

实现多集群的成本和资源成本可视化,管理员可以直观的了解不同集群中成本分布与资源使用情况,并且将平台成本按照不同的业务团队进行划分,使各个业务团队可以清楚的知道各自团队成本分配情况,有助于平台管理员了解平台整体成本结构,采取相应措施优化资源配置和控制成本。

名词解释

名词 解释
Usage 容器组实际的 CPU、内存使用量。
Request 容器组对 CPU 和内存的期望请求量,是容器组希望系统为其保留的资源数量。
__Idle__ 未分配给任何工作负载使用的 CPU、内存资源的闲置成本。
已分配 已分配给工作负载使用的资源成本。
总计 在指定时间范围中,已分配成本与 __ Idle __ 成本每天或每小时的总和。
__Unmounted__ 统计预先创建的、未分配给任何容器组使用的持久卷 (PV) 所占用的存储资源成本。
__Total__ CPU、内存及存储资源总量的累计成本。
__Other__ 不属于任何项目的命名空间集合。
CPU/内存/存储成本 是 CPU/内存/存储 已分配 成本与对应 __Idle__ 的总和。

前提条件

通用参数

平台集群 成本管理中,仅统计已经部署了 Kubecost 插件的集群成本信息;项目 成本管理中,仅统计与项目关联的、且已成功部署 Kubecost 插件的所有集群的成本信息。

参数 说明 计算公式
成本总额 在给定时间范围内,所有集群中 CPU、内存及存储资源总量的累计费用。 成本总额 = CPU 成本 + 内存成本 + 存储成本(不包含磁盘成本)
  • CPU 成本 = 已成功部署 Kubecost 插件的所有集群中所有节点的 CPU 核数 * CPU 每小时单价 * 时间。
  • 内存成本 = 已成功部署 Kubecost 插件的所有集群中所有节点的内存(单位 GB) * 内存每小时单价 * 时间。
  • 存储成本 = 已成功部署 Kubecost 插件的所有集群中所有持久卷(PV)容量 * 存储每小时单价 * 时间。
注意:若持久卷(PV)没有绑定到持久卷声明(PVC),则不计算存储成本。
CPU 使用效率 在给定时间范围内,所有集群下容器组 CPU 的 Usage / Request。 CPU 使用效率 = 已经成功部署 Kubecost 插件的所有集群中所有容器组 CPU 的 Usage 总和 / Request 总和。
内存使用效率 在给定时间范围内,所有集群下容器组内存的 Usage / Request。 内存使用率 = 已经成功部署 Kubecost 插件的所有集群中所有容器组内存的 Usage 总和 / Request 总和。
成本效率 在给定时间范围内,所有集群下容器组 CPU 及内存的 Usage 累计费用占分配总额的累计费用的百分比。 成本效率 = ((CPU 使用效率 * CPU 已分配成本) + (内存使用效率 * 内存已分配成本)) / (CPU 已分配成本 + 内存已分配成本)
  • CPU 已分配成本 = max(Usage、Request)* CPU 每小时单价 * 时间。
  • 内存已分配成本 = max(Usage、Request)* 内存每小时单价 * 时间。
成本明细 将平台内当前已成功部署了 Kubecost 集群的成本总额按照资源维度进行拆分展示,资源维度主要有:CPU、内存、存储。 -
成本趋势 按照所选时间范围展示总计、__Idle__ 及已分配的成本信息。 -

平台成本管理

按照给定时间范围展示平台成本信息,仅统计已经部署了 Kubecost 插件的集群成本信息。若当前平台中所有集群均未部署 Kubecost 插件,则页面所有参数显示为 -无数据

成本分布折线图及列表

参数 集群维度 项目维度 计算公式
成本分布折线图 按照所选时间范围展示已成功部署 Kubecost 插件的集群成本信息。
  • 所选时间范围为 7 天:按照 1 天的时间粒度展示过去 7 天的集群成本。
  • 所选时间范围为 1 天:按照 1 小时的时间粒度展示过去 24 小时的集群成本。
注意:当成功部署 Kubecost 插件的集群数量超过 5 个,则仅展示成本总额为 Top5 的集群,可通过单击右侧 图例 查看各个集群的成本使用信息。
按照所选时间范围展示 Kubecost 中可统计的项目成本信息。
  • 所选时间范围为 7 天:按照 1 天的时间粒度展示过去 7 天的项目成本。
  • 所选时间范围为 1 天:按照 1 小时的时间粒度展示过去 24 小时的项目成本。
-
成本分布列表 按照所选时间范围展示 __Total__、__Idle__ 及所有已部署或未部署 Kubecost 插件的集群,展示的信息包括 CPU、内存、存储、成本效率及总成本。

提示:若集群已部署 Kubecost 插件,则可通过单击对应集群名称进入对应集群成本页面查看详细信息。
按照所选时间范围展示 __Total__、__Idle__、__Other__ 及 Kubecost 中可统计的项目成本信息,展示的信息包括:关联集群、CPU、内存、存储、成本效率及总成本。

说明
  • 关联集群中仅统计与项目关联的且已成功部署 Kubecost 插件的所有集群的成本信息,展现形式为:此项目关联的已经成功部署 Kubecost 插件的集群 / 此项目关联的所有集群
  • __Total__、__Idle__ 及 __Other__ 的关联集群展示为 -
  • CPU(CPU 已分配成本) = max(Usage、Request)* CPU 每小时单价 * 时间。
  • 内存(内存已分配成本) = max(Usage、Request)* 内存每小时单价 * 时间。
  • 存储(存储已分配成本) = 所有持久卷(PV)容量 * 存储每小时单价 * 时间。

集群成本管理

成本分布折线图及列表

参数 命名空间维度 项目维度 计算公式
成本分布折线图 按照所选时间范围展示当前集群下命名空间的成本信息。

注意:当集群下命名空间数量超过 5 个,则仅展示成本总额为 Top5 的命名空间,可通过单击右侧 图例 查看各个命名空间的成本使用信息。
按照所选时间范围展示当前集群所属且 Kubecost 中可统计的项目成本信息。

-
成本分布列表 按照所选时间范围展示 __Total__、__Idle__、__Unmounted__ 及该集群下的所有命名空间的成本信息,展示的信息包括 CPU、内存、存储、成本效率及总成本。

提示:可通过单击对应命名空间名称进入 Kubecost 并查看该命名空间的详细成本信息。
按照所选时间范围展示 __Total__、__Idle__、__Other__ 及集群所属且 Kubecost 中可统计的项目成本信息,展示的信息包括:CPU、内存、存储、成本效率及总成本。
  • CPU(CPU 已分配成本) = max(Usage、Request)* CPU 每小时单价 * 时间。
  • 内存(内存已分配成本) = max(Usage、Request)* 内存每小时单价 * 时间。
  • 存储(存储已分配成本) = 所有持久卷(PV)容量 * 存储每小时单价 * 时间。

项目成本管理

成本分布折线图及列表

参数 命名空间维度 计算公式
成本分布折线图 按照所选时间范围展示当前项目下所有命名空间的成本信息。

注意:当项目下命名空间数量超过 5 个,则仅展示成本总额为 Top5 的命名空间,可通过单击右侧 图例 查看各个命名空间的成本使用信息。
-
成本分布列表 按照所选时间范围展示 __Total__、__Idle__ 及项目下所有命名空间的成本信息,展示的信息包括:所属集群、CPU、内存、存储、成本效率及总成本。

说明
  • 可通过单击对应命名空间名称进入 Kubecost 并查看该命名空间的详细成本信息。
  • 所属集群表示此项目中命名空间所属的集群,若此项目关联的集群未部署 Kubecost 插件,则此集群下的命名空间不会展示。
  • CPU(CPU 已分配成本) = max(Usage、Request)* CPU 每小时单价 * 时间。
  • 内存(内存已分配成本) = max(Usage、Request)* 内存每小时单价 * 时间。
  • 存储(存储已分配成本) = 所有持久卷(PV)容量 * 存储每小时单价 * 时间。

相关操作

配置平台中的货币单位

  1. 在左侧导航中,单击 集群管理 > 资源管理

  2. 切换至 global 集群

  3. 单击 创建资源对象,新增 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 平台中使用的货币单位。其中,¥ 表示平台使用人民币作为货币单位,$ 表示平台使用美元作为货币单位。
  4. 单击 创建 并重新加载页面。

配置 Kubecost 中的货币单位

  1. 登录 Kubecost。

  2. 单击页面左下角 Settings

  3. 单击 GENERAL > Cloud Cost Settings > Currency 区域的下拉选择框,选择 CNY

    说明CNY 表示使用人民币作为 Kubecost 的货币单位,USD 表示使用美元作为 Kubecost 的货币单位。

  4. 单击页面最下方的 SAVE 保存配置并重新加载页面。