一、什么是 Crane
Crane
是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目,遵循 FinOps
标准,已经获得FinOps
基金会授予的全球首个认证降本增效开源方案。它为使用 Kubernetes
集群的企业提供了一种简单、可靠且强大的自动化部署工具。Crane
的设计初衷是为了帮助企业更好地管理和扩展其 Kubernetes
集群,从而实现更高效的云原生应用管理。它易于使用、高度可定制和可扩展。它提供了一组简单易用的命令行工具,使得开发者和管理员都能轻松地将应用程序部署到 Kubernetes
集群中。Crane
还支持多种云平台,并且可以根据具体的业务需求进行定制。Crane
并已经被腾讯、网易、思必驰、酷家乐、明源云、数数科技等公司部署在生产系统,其主要贡献者来自腾讯、小红书、谷歌、eBay、微软、特斯拉等知名公司。
二、名称解释
1、FinOps:
全称(Financial Operations)是一种管理云计算成本的方法论和实践。它结合了财务管理和云计算资源管理的最佳实践,旨在帮助组织更好地理解、优化和控制云计算成本。
2、Kubernetes:
Kubernetes
(K8s)是一个开源系统,用于自动部署,扩展和管理容器化应用程序。Kubernetes抽象了复杂的容器管理,并为我们提供了声明式配置,以在不同的计算环境中编排容器。
Kubernetes
集群至少由一个主(控制)平面和一个或多个工作机器(称为节点)组成。控制平面和节点实例都可以是物理设备、虚拟机或云中的实例。
3、Cloud Custodian:
是一个开源的云成本管理和资源优化工具,可以自动化云资源管理和成本优化。
4、Costimator:
一个开源的云成本管理工具,可以实时跟踪和分析在云中的成本。
5、Kubecost:
一个开源的Kubernetes成本和性能管理工具,侧重于表达服务在Kubernetes上的成本和性能。
6、CostModel:
一个开源的云成本建模工具,可以建立云中的成本模型,实现更好的成本管理和优化。
三、整体架构
Craned
Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。Craned 通过 Deployment 方式部署且由两个容器组成:
Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
Dashboard: 基于 TDesign’s Starter 脚手架研发的前端项目,提供了易于上手的产品功能
Fadvisor
Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。Fadvisor 通过 Cloud Provider 支持了多云计费的 API。
Metric Adapter
Metric Adapter 实现了一个 Custom Metric Apiserver. Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。<