Opencost系列-01速览

  • Published
  • Posted in Cloud
  • 1 min read
  • Updated
  • 0 Comments

什么是 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
  • 本地集群(通过自定义定价表)

Leave a Reply