核心概念

Opencost

OpenCost 是一款开源的 Kubernetes 成本监控和管理工具,旨在实时跟踪和分析 Kubernetes 集群中的资源使用情况和成本。它提供准确的资源计量数据,帮助用户优化资源分配并控制成本。

有关更多信息,请参阅 OpenCost 官方网站

成本模型

Cost Model 用于定义集群内资源的计费规则和定价。它包括:

  • 计费项:需要计费的资源(CPU、Memory、Storage)
  • 计费方式:资源如何计量和计费
  • 单价:每种资源类型的基础定价
  • 基于标签的定价:根据标签进行差异化定价
  • 集群关联:该模型适用于哪些集群

成本模型可帮助你定义集群中需要计费的资源及其单价。平台将根据成本模型对每个集群进行计量和计费。

计费方式说明

计费项计费方式计费规则说明
CPU使用量 (Core-hours)按小时计算,使用 POD 在过去一小时内的 AVG(Usage),再乘以 POD 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。基于实际 CPU 消耗
CPURequest (Core-hours)按小时计算,使用 POD 在过去一小时内的 Request,再乘以 POD 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。基于 CPU 资源请求
CPUEffective Usage (Core-hours)按小时计算,使用 POD 在过去一小时内 AVG(Usage) 和 Request 中的较大值,再乘以 POD 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。当前默认方式,取使用量或请求量中的较大值
CPUProject Quota (Core-hours)按小时计算,使用项目分配的 CPU 配额上限,再乘以时间长度。配额变更时进行分段计算。基于项目级资源配额
Memory使用量 (GiB-hours)按小时计算,使用 POD 在过去一小时内的 AVG(Usage),再乘以 POD 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。基于实际内存消耗
MemoryRequest (GiB-hours)按小时计算,使用 POD 在过去一小时内的 Request,再乘以 POD 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。基于内存资源请求
MemoryEffective Usage (GiB-hours)按小时计算,使用 POD 在过去一小时内 AVG(Usage) 和 Request 中的较大值,再乘以 POD 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。当前默认方式,取使用量或请求量中的较大值
MemoryProject Quota (GiB-hours)按小时计算,使用项目分配的内存配额上限,再乘以时间长度。配额变更时进行分段计算。基于项目级资源配额
StorageRequest Volume (GiB-hours)按小时计算,使用过去一小时内 PV 的 Request 大小,再乘以 PV 的实际持续时间(如果少于 5 分钟,则按 5 分钟计)。如果一个 PV 同时挂载到多个 POD,则该 PV 的使用量将平均分配给每个 POD。未挂载到任何 POD 的 PV 将计为未挂载记录,对象名称为 *unmounted-pvcs

当前的统计问题将在后续版本中修复:

  • 当 StatefulSet 的 POD 停止并重启时,平台将使用该 POD 当天最早的运行时间作为开始时间,最晚的运行时间作为结束时间,同时忽略 POD 未运行期间的时间。