什么是 OpenCost?
OpenCost 是一个供应商无关的开源项目,用于计量和分摊 Kubernetes 与云基础设施的成本。该项目由两部分组成:
- OpenCost 核心成本分摊引擎
- 社区驱动的 OpenCost 规范(OpenCost Specification),用于定义如何在 Kubernetes 中监控成本
成本分摊引擎是一个遵循该规范的 Golang 实现。二者均由 CNCF(云原生计算基金会)作为孵化项目进行管理。
使用 OpenCost 需要付费吗?
不需要。OpenCost 是开源软件(Apache 2.0 许可证),可免费使用。
OpenCost 与 Kubecost 之间的关系?
OpenCost 的实现是最初由 Kubecost 构建的成本分摊引擎(cost allocation engine)。该引擎在所有版本的Kubecost中被用来构建成本分摊模型,Kubecost 在其商业版本中会在此基础上添加额外特性。OpenCost 是 CNCF 的孵化项目,因此,它是免费的,并向所有社区成员开放贡献。
OpenCost 与 Kubecost 有什么区别?
OpenCost:
- 为 Kubernetes 集群提供实时监控
- 提供你集群使用的云资源的按需(on-demand)定价
- 与云账单集成,以展示与 Kubernetes 使用相关的云资源成本
- 是 CNCF 孵化项目,免费且开放贡献
- 有UI,但其目标是成为“云成本监控领域的 Prometheus”,让其他解决方案能够基于其数据进行构建
Kubecost:
- 使用 OpenCost 作为其内部成本分摊引擎
- 在此基础上提供更精准的成本数据(可对账单与按需价差异进行校准,包含折扣与优惠)
- 提供推荐、治理、告警、联邦多集群、SaaS 平台和商业技术支持等增强功能
OpenCost 如何计算成本?
OpenCost Specification(OpenCost 规范)说明了项目中用于计算成本的方法。OpenCost 的实现会根据该规范工作,并与上文列出的云服务商的公共账单 API 进行集成。
OpenCost的实现与OpenCost规范之间是什么关系?
OpenCost 项目为 AWS、Azure、GCP 和本地 Kubernetes 环境提供了规范的实现。它满足当前 OpenCost Specification(规范)的所有要求,并正在努力加入更多用于监控外部云成本的功能,例如:存储桶、外部数据库等。
OpenCost支持哪些Kubernetes版本?
OpenCost 支持 1.8 以上版本的 Kubernetes 环境。
OpenCost 的治理方式是什么?
OpenCost 发布了公开的治理模型,并正朝着由社区贡献者共同管理的方向发展。项目正与 CNCF 的最佳实践保持一致,并鼓励贡献者参与项目管理。
目前,Kubecost 的技术团队根据社区、贡献者和其客户的反馈,对 OpenCost 的大部分代码做出贡献。OpenCost Specification(规范)是由创始成员共同编写的。
OpenCost 的发布节奏是什么?
OpenCost 仓库遵循 **Semantic Versioning 2.0.0(语义化版本)**规范。
截至目前已有 12 次 OpenCost 次版本发布:
- 初始版本 OpenCost 1.94 于 2022 年 6 月发布
- 截至 2023 年 9 月,最新版本为 1.106.2
- 1.x 系列被视为稳定版本,并已在生产环境中运行多年
发布节奏如下:
- 自从 OpenCost 加入 CNCF 后,还没有新的主版本发布
- 次版本(minor)每月发布一次
- 补丁版本(patch)按需发布
每次发布会通过 GitHub Releases 公布,之后会同步到:Slack(CNCF/#opencost)、Mastodon、Twitter并在每两周一次的社区会议中进行讨论。
OpenCost 支持哪些云服务商?
OpenCost 具有核心账单集成支持:
- AWS / EKS
- Azure / AKS
- GCP / GKE
- OCI / OKE
- 本地集群(通过自定义定价表)
