【腾讯云 Finops Crane 集训营】初识Crane

本文介绍了腾讯云的开源项目Crane,它是一个基于FinOps的云资源分析与成本优化平台。Crane提供成本可视化、弹性伸缩、资源调度等多方面功能,旨在实现极致的降本增效。文章详细阐述了Crane的主要功能、整体架构、安装部署以及如何使用Crane优化应用配置,展示了其在云原生环境中的优势。
摘要由CSDN通过智能技术生成

前言

最近报名参加了腾讯大型开源项目Finops Crane的集训营,深入了解并实践运用了关于Crane的一系列功能。云计算以及云平台是未来服务部署的主流趋势,可以在成本条件限制下极大节省运行部署成本。因此关于云计算平台的一系列计算我都十分感兴趣,而Crane能够在云原生发展火热的状态下作为大型开源项目,提供学习渠道以及实践,是一件十分有意义的事情。本篇文章将带大家了解Crane以及了解Crane能够帮助我们在哪些业务场景下解决困难,以及我们该如何使用Crane和部署服务。

一.Crane是什么

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

二.Crane的主要功能

在这里插入图片描述

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

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

2.推荐框架

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

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

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

4.负载感知的调度器

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

5.拓扑感知的调度器

Crane Scheduler与Crane Agent配合工作,支持更为精细化的资源拓扑感知调度和多种绑核策略,可解决复杂场景下“吵闹的邻居问题",使得资源得到更合理高效的利用。

6.基于 QOS 的混部

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

三.Crane的整体架构

Crane 的整体架构如下:在这里插入图片描述
Craned
Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。Craned 通过 Deployment 方式部署且由两个容器组成。

  • Craned: 运行了 Operators 用来管理 CRDs,向 Dashboard 提供了 WebApi,Predictors 提供了 TimeSeries API
  • Dashboard: 基于 TDesign’s Starter 脚手架研发的前端项目,提供了易于上手的产品功能

Fadvisor
Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。

Metric Adapter
Metric Adapter 实现了一个 Custom Metric Apiserver. Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。

Crane Agent
Crane Agent 通过 DaemonSet 部署在集群的节点上。

四.如何在本地安装 Crane

安装本地的 Kind 集群和 Crane 组件

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

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

如果上面安装命令报网络错误,可以用本地的安装包执行安装,在命令行中执行以下安装命令:

# 必须在 installation 的上级目录例如:我们预设好的 training 跟目录中执行

# Mac/Linux
bash installation/local-env-setup.sh

# Windows
./installation/local-env-setup.sh

确保所有 Pod 都正常运行:

$ export KUBECONFIG=${
   HOME}/.kube/config_crane
$ kubectl get pod -n crane-system

NAME                                             READY   STATUS    RESTARTS       AGE
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-metr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值