本文已参与「开源摘星计划」,欢迎正在阅读的你加入。 活动链接:​ ​https://github.com/weopenprojects/WeOpen-Star [文章来源]:《Harbor进阶实战》公众号

一、Crane简介

官方网站:https://gocrane.io/ 代码仓库: https://github.com/gocrane/crane

1.1 Crane是什么?

Crane是一个 FinOps基金会托管,由腾讯云使用Go语言开发并开源的一个基于 FinOps 的云资源分析与成本优化平台。

1.2 Crane特性

  • 一键部署 可通过一个 Helm 包将 Crane 快速部署到任意的Kubernetes 集群。

  • 功能式插件 Crane 侵入性小,核心组件包括集中控制器 craned 和节点代理 crane agent,你可以自由组合安装,通过 featureGate 选择开启哪些能力。

  • 简单易用可视化控制台 为降低使用门槛,Crane 提供可视化Web UI 控制台,用户可基于控制台查看成本分配,成本走势,并通过鼠标点击实现成本优化。所有能力均提供灰度控制和预览模式,以及回滚的能力,以消除业务侧对资源变动的顾虑。

  • 负载感知调度 提供简单但高效的调度程序,根据实际节点利用率数据调度 Pod,并过滤掉负载高的节点来平衡集群。

  • 开箱即用的巡检能力 Crane 可以全局扫描整体浪费情况,将隐藏浪费可视化的呈现出来,使运维人员免除拉取监控数据,编写查询脚本等重复性工作。 优化方案包含对成本变化的展示,对利用率变化的展示,可能的风险点,甚至是优化建议的排序。因为我们相信,每个业务都是独一无二的,都有其最适合的优化方案,不能一概而论。

  • 即时迅速的弹性 (EffectivePodAutoscaler(EPA)) 传统基于事件的弹性工具会导致一个天然缺陷——当业务指标偏离正常值后才会触发弹性,这种滞后性使得云用户不敢使用弹性。EPA 支持可扩展的预测算法,以预测结果驱动横向和纵向弹性,确保业务能提前弹出来,彻底避免原生弹性能力未弹先死的尴尬。同时 Crane 将社区的 HPA 和 VPA 两种弹性能力统一起来,提出了弹性概念 EPA。

  • 稳定性与资源优化的双重兼 Crane 对资源利用率的提升,绝不是以牺牲稳定性作为代价。Crane 允许用户对业务进行定级,节点代理负责周期性检查节点资源水位和系统指标,识别应用干扰,并通过调度禁止,调整 cgroup,驱逐等多种手段确保敏感业务服务等级不受损。

1.3 版本发布与选择

  • Crane v0.8.0 2022年10月14日发布
  • Crane v0.7.0 2022年8月19日发布
  • Crane v0.6.0 2022年7月15日发布
  • Crane v0.5.0 2022年7月2日发布

建议选择最新版。

1.4 架构浅析

来自官网的架构图: image.png

Crane主要由以下几部分组成

  • Linux Kernel层 系统内核底层的实现,从CPU、内存、GPU、磁盘、网络等方面提供基础资源。
  • Ceane-Agent层 Crane-Agent为Agent端,主要采集一些需要的信息,如PriorityClass、PodQosEnsurancePolicy等。
  • Monitoring Crane可视化UI界面,简单、直接的显示成本走势、优化操作等。
  • Craned层 Crane的核心服务层。