一、Crane 是什么

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保证客户应用运行质量的前提下实现极致的降本。Crane 是 FinOps 基金会认证的云优化方案

Crane基于Docker和Kubernetes技术,支持常见的容器化应用场景,如部署多个容器、水平扩展、自动伸缩、负载均衡等。Crane提供了友好的Web界面和命令行工具,方便用户管理和操作容器集群。同时,Crane还支持自定义插件和扩展,用户可以根据需求进行二次开发和定制化。

二、Crane有哪些特性呢?

 

1、成本可视化和优化评估

  • 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。
  • 多维度的成本洞察,优化评估。通过 Cloud Provider 支持多云计费。

2、推荐框架

提供了一个可扩展的推荐框架以支持多种云资源的分析,内置了多种推荐器:资源推荐,副本推荐,闲置资源推荐。了解更多

3、基于预测的水平弹性器

EffectiveHorizontalPodAutoscaler 支持了预测驱动的弹性。它基于社区 HPA 做底层的弹性控制,支持更丰富的弹性触发策略(预测,观测,周期),让弹性更加高效,并保障了服务的质量。了解更多

4、负载感知的调度器

动态调度器根据实际的节点利用率构建了一个简单但高效的模型,并过滤掉那些负载高的节点来平衡集群。了解更多

5、基于 QOS 的混部

QOS相关能力保证了运行在 Kubernetes 上的 Pod 的稳定性。具有多维指标条件下的干扰检测和主动回避能力,支持精确操作和自定义指标接入;具有预测算法增强的弹性资源超卖能力,复用和限制集群内的空闲资源;具备增强的旁路cpuset管理能力,在绑核的同时提升资源利用效率。了解更多

三、部署Crane

了解到了Crane的各种功能以及特性,那么我们应该如何部署Crane呢?其实很简单,集训营也有动手实验直播,可以跟着直播体验一下。

直播回放
https://live.csdn.net/room/csdnnews/83xhNo4C

先在本地或者服务器安装以下环境:

  • 使用 Kind 安装一个本地运行的 Kubernetes 集群
  • 使用 Helm 安装 Prometheus 和 Grafana
  • 使用 Helm 安装 Crane
  • 通过 kubectl 的 port-forward 访问 Crane Dashboard

更多关于安装的介绍请参考 安装文档 

部署环境要求

  • kubectl
  • Kubernetes 1.18+
  • Helm 3.1.0
  • Kind 0.16+

安装

以下命令将安装 Crane 以及其依赖 (Prometheus/Grafana).

curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -

确保所有 Pod 都正常运行:

$ export KUBECONFIG=${HOME}/.kube/config_crane
$ kubectl get deploy -n crane-system
NAME                                             READY   STATUS    RESTARTS       AGE
crane-agent-5r9l2                                1/1     Running   0              4m40s
craned-6dcc5c569f-vnfsf                          2/2     Running   0              4m41s
fadvisor-5b685f4cd6-xpxzq                        1/1     Running   0              4m37s
grafana-64656f6d54-6l24j                         1/1     Running   0              4m46s
metric-adapter-967c6d57f-swhfv                   1/1     Running   0              4m41s
prometheus-kube-state-metrics-7f9d78cffc-p8l7c   1/1     Running   0              4m46s
prometheus-node-exporter-4wk8b                   1/1     Running   0              4m40s
prometheus-server-fb944f4b7-4qqlv                2/2     Running   0              4m46s

访问 Crane Dashboard

kubectl -n crane-system port-forward service/craned 9090:9090

点击 这里 访问 Crane Dashboard

四、总结


        在整个实验过程中,Crane的官方人员对我们进行了耐心的指导,大家提出的各种环境安装问题,系统搭建,还有Mac系统和Windows平台差异等等问题,官方也都耐心的解决了。通过本次集训营,让我对Crane有了一个更加深入的了解,互联网业务由于人的活动规律从而普遍具有周期性繁忙的特征,最常见的是以天为单位的周期性变化,比如白天繁忙、夜间空闲。按传统固定资源模式,低峰期时资源使用率较低但仍然持有资源,便会造成浪费。服务的自动伸缩(可能还需要配合集群资源的自动伸缩)就能实现在高峰期扩容并在低峰期回收资源的效果,在公有云等按量计费的场景下实现成本优化。传统固定资源模式下,业务往往会冗余一定的资源来应对流量增长,使用自动伸缩后可以减少这部分冗余资源,也能更从容地应对热点流量等情况。

        利用Crane提供的成本模型能够很好地对集群资源进行成本分析,在分析的基础上也能够给出合理化的推荐规则,并且利用数据可视化大屏,能够清晰看到成本改变的下降的趋势,非常直观。后续希望不断完善开源Crane社区生态,使得更多开发者能够接触到Crane项目并且参与进来,不断丰富社区生态,使得Crane更加强大!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐