2. Kubecost 核心概念:成本分配、资产、命名空间、标签、集群、云服务商成本数据
在构建事件流还原策略与资源配额模型之前,必须统一理解 Kubecost 的六大核心概念。这些概念构成了成本可观测性的数据基座,也是后续故障时间线分析中“成本异常”与“资源争抢”的判定依据。
2.1 核心概念全景
下表从定义、数据来源、粒度、典型用途四个维度对比六大概念,帮助快速建立全局认知。
| 概念 | 定义 | 数据来源 | 粒度 | 典型用途 |
|---|---|---|---|---|
| 成本分配 | 将云账单费用按 Kubernetes 资源归属进行分摊的模型 | 云账单 + Prometheus 指标 | Pod / 容器级 | 团队成本核算、异常费用定位 |
| 资产 | Kubernetes 集群中可计费的底层资源实例 | 云 API + 节点指标 | 节点 / 持久卷 / 负载均衡器 | 基础设施成本归因、容量规划 |
| 命名空间 | Kubernetes 逻辑隔离单元,Kubecost 默认的成本聚合维度 | Kubernetes API | 命名空间级 | 团队/项目级预算管理 |
| 标签 | 用户自定义的键值对,用于灵活的成本拆分与筛选 | Kubernetes 标签 + 云标签 | 任意粒度(Pod/Service/Deployment) | 环境(prod/staging)、部门、应用维度分析 |
| 集群 | Kubernetes 集群整体,作为成本聚合的顶层容器 | KubeStateMetrics + 云账单 | 集群级 | 多集群成本对比、联邦治理 |
| 云服务商成本数据 | 从 AWS / Azure / GCP 等云平台拉取的原始账单数据 | 云账单 CSV / API | 云服务级(EC2/EBS/ELB) | 成本对账、折扣分摊、预留实例优化 |
2.2 成本分配模型:从账单到 Pod 的映射链路
成本分配是 Kubecost 最核心的模型。它解决了“云账单上的一个 EC2 实例费用,如何精确分摊到运行在该节点上的每一个 Pod”的问题。下图展示了完整的映射链路。
2.3 资产与命名空间:成本归属的两大锚点
资产(Asset)是 Kubecost 中不可再分的计费单元。每个资产对应一个云资源实例,例如一个 EC2 节点、一个 EBS 持久卷、一个 ELB 负载均衡器。资产的成本直接来自云账单,不经过分摊。
命名空间(Namespace)是 Kubernetes 原生的逻辑隔离边界,也是 Kubecost 默认的成本聚合维度。在 Kubecost 的“成本分配”视图中,默认按命名空间展示费用趋势。
| 维度 | 资产 | 命名空间 |
|---|---|---|
| 数据来源 | 云 API / 账单 | Kubernetes API |
| 更新频率 | 每小时(云账单) | 实时(K8s 事件驱动) |
| 成本归属方式 | 直接归属(无分摊) | 间接归属(通过 Pod 分摊) |
| 典型异常场景 | 节点升配导致资产成本突增 | 命名空间下 Pod 副本数暴涨导致成本飙升 |
| 在故障时间线中的角色 | 基础设施层成本异常根因 | 应用层成本异常根因 |
2.4 标签:灵活的成本拆分与筛选
标签(Label)是 Kubecost 实现“精细化成本归因”的核心工具。与命名空间不同,标签可以跨命名空间、跨集群、跨资源类型进行聚合。
- 内置标签:Kubecost 自动识别
app、environment、team等常见标签,无需额外配置。 - 自定义标签:用户可以在 Deployment 或 Namespace 上添加任意标签,Kubecost 会在成本分配时自动纳入分组维度。
- 标签继承规则:Pod 标签优先于 Deployment 标签,Deployment 标签优先于 Namespace 标签。如果多个标签冲突,Kubecost 按“最细粒度优先”原则处理。
environment: prod 为 environment: production,Kubecost 会将修改前后的成本视为两个不同的标签值。在故障时间线分析中,建议使用标签别名或固定标签策略,避免因标签变更导致成本归因断裂。
2.5 集群与云服务商成本数据:多集群治理的基石
集群(Cluster)是 Kubecost 成本聚合的顶层容器。一个 Kubecost 实例可以监控多个 Kubernetes 集群,每个集群的成本数据独立存储,但可以在同一个仪表盘中进行对比。
云服务商成本数据是 Kubecost 所有成本计算的“原材料”。Kubecost 支持 AWS、Azure、GCP、阿里云等主流云平台,通过以下方式获取数据:
- 账单拉取:通过云平台 API 或 CSV 导入,获取按小时/按天的原始账单数据。
- 折扣分摊:自动识别预留实例(RI)、节省计划(Savings Plan)、承诺使用折扣(CUD)等优惠,并按比例分摊到对应资产。
- 混合云支持:支持同时接入多个云服务商,在同一个 Kubecost 实例中统一展示跨云成本。
下图展示了 Kubecost 如何将云服务商成本数据与 Kubernetes 集群数据融合,形成统一的成本视图。
2.6 核心概念在故障时间线中的角色
在后续章节的“资源配额模型故障时间线”中,这六大概念将分别承担以下角色:
- 成本分配:作为故障影响面评估的量化指标,回答“这次故障花了多少钱”。
- 资产:作为基础设施层故障的根因定位锚点,例如节点宕机导致资产成本归零。
- 命名空间:作为故障隔离域,判断故障是否跨命名空间传播。
- 标签:作为故障筛选器,快速定位特定环境(如 prod)或特定应用的成本异常。
- 集群:作为故障影响范围的上限,判断故障是单集群还是多集群事件。
- 云服务商成本数据:作为故障时间线的“外部时钟”,用于对齐云平台事件(如实例重启、磁盘扩容)与 Kubernetes 集群事件的时间戳。