【腾讯云 Finops Crane 集训营】深入了解 Crane 开源项目,集训营实验操作指南,体验过程总结

前言

最近有幸参与了腾讯云举办的Finops Crane的集训营。在这个过程中,老师认真指导,让我受益非浅,也让我真正理解了这一产品所带来的意义。

在听了老师们的介绍和讲解后,我马不停蹄地开始了自己摸索。首先是跟着视频和官方教程在本地安装了一遍Crane,体验了一下整个安装使用教程。

随后又查看官方的文档和源码。在本地搭建了一个前端开发环境,并链接上了线上的demo环境。并顺利给官方提了几个Issues和PR。

下面就来整理,分享一下我的操作和感悟,希望能够帮助到其他同学。

出现的背景

在分享安装和使用流程之前,我们先来了解一下FinOps的出现的背景。

云原生基金会在2021年的调查中,发现云原生的部署率已经达到了历史性新高。96%的组织已经在使用Kubernetes,但在使用过程中,存在着严重的资源浪费。据Flexera 在2022年的云计算市场发展状态报告中提到,在很多使用Kubernetes的组织中32%的云支出被浪费。随着云原生的技术普及,成本管理成了一个迫在眉睫的问题。该问题主要表现在以下四个方面:

  • 去中心化
    随着以Kubernetes为核心的云原生应用的蓬勃发展,传统的集中式财务预算和IT管理模式在向以业务为导向的分布式决策转型
  • 不断上涨
    CNCF 调查显示,随着业务的快速发展,企业的云费用以24%的年增长率快速增加。
  • 动态变化
    云原生的动态环境和弹性功能导致云费用随着业务负载不断变化
  • 浪费严重
    业务上云后缺乏资源优化意识,依然以传统资源配置思维管理资源,浪费严重。

有问题就会有解决方案,而FinOps概念的提出正是为了解决这一问题。

FinOps概念

FinOps是一种将财务管理(Finance)与云操作(Ops)相结合的模式,旨在优化云计算支出并提高业务绩效。

云计算是一种流量密集型的技术,意味着云成本管理在很大程度上取决于如何优化云资源消耗,并根据需要提高或降低开支。FinOps通过建立流程、原则和工具来实现这一目标,可以帮助企业更好地理解和控制云成本,同时保持效率和创新。

FinOps的关键原则是建立透明度并将云成本降低到最小水平。为了实现这一点,需要结合使用财务、技术和业务信息,以确定最佳的资源使用方式。同时,需要确定哪些资源实际上为贡献产生了价值,并分配成本以实现真正的透明度和可控性。
总之,FinOps作为一种模式结合了财务和技术的因素,可以帮助企业实现优化云支出和提高业务绩效的目标。

FinOps定义了一系列云财务管理规则和最佳实践,通过助力工程和财务团队、技术和业务团队彼此合作,进行数据驱动的成本决策,使组织能够获得最大收益。
通过下面的结构图,我们可以清晰地认识到FinOps有哪些角色,以及需要的能力。
在这里插入图片描述

Crane 项目介绍

基于以上 FinOps的原则和能力标准,腾讯云推出了Crane开源项目,主打智能调度,助力成本优化。是一个基于 FinOps 的云资源分析与成本优化平台。它的愿景是在保证客户应用运行质量的前提下实现极致的降本。

项目开源地址:https://github.com/gocrane/crane
官方网站:https://gocrane.io/
在官网上有很多中文文档,包括从安装,使用,优化,最佳实践,以及QA。这是了解该平台最好的地方。
以下是该项目的架构图
在这里插入图片描述
根据官方提供的项目架构图,我们可以看到Crane提供了二级调度,第一级为应用画像和作业调度,二级调度为节点级的精细化调度和稳定性保证。

  • Craned
    Craned 是 Crane 的最核心组件,它管理了 CRDs 的生命周期以及API。Craned 通过 Deployment 方式部署且由两个容器组成:Craned与Dashboard

  • Fadvisor
    Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。Fadvisor 通过 Cloud Provider 支持了多云计费的 API。

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

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

在监控方面使用了Prometheus与Grafana。Crane的一些图表就是直接使用的Grafana配置的。

在成本的可视化和优化评估

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

安装使用

在最近的腾讯云 Finops Crane 集训营,官方一共举办了两次直播,CSDN的回放地址分别是:

4月27号 Finops Crane 开源项目经验分享
https://live.csdn.net/room/csdnnews/CPEN2JKh

5月7号 14:00 腾讯云 Finops Crane开发者集训营
https://live.csdn.net/room/csdnnews/83xhNo4C

我是跟着第二次直播体验整个安装,使用流程的。
在安装Crane之前需要预安装一下软件,清单如下

  • 安装 kubectl
  • 安装 Helm
  • 安装 kind
  • 安装 Docker

安装以上的软件清单后,执行下面的命令,安装相关组件
curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -
包括 创建kind集群,使用helm安装Prometheus ,使helm安装 Grafana ,最后安装
cranefadvisor 组件。
由于脚本里已经使用kind命令,所以要想使用minikube 或者已经存在的其他 Kubernetes集群,是需要修改脚本的。

由于整个安装过程会下载很多个镜像,所有网络不好的同学会感觉很漫长。

运行完成后,还需要登上5分钟左右,等待Pod启动。

在所有Pod启动后,执行以下命令可以访问Crane Dashboard

# 不加这一句会出现8080端口被拒绝的提示
export KUBECONFIG=${HOME}/.kube/config_cranekubectl -n crane-system port-forward service/craned 9090:9090

访问 http://127.0.0.1:9090/ 就可以看到 Crane Dashboard 如下图:

# 安装 Metrics Server:
kubectl apply -f installation/components.yaml# 用以下命令启动一个 Deployment 用 hpa-example 镜像运行一个容器, 然后将其暴露为一个 服务(Service):
kubectl apply -f installation/php-apache.yaml
kubectl apply -f installation/nginx-deployment.yaml# 创建 EffectiveHPA
kubectl apply -f installation/effective-hpa.yaml

新开一个终端窗口

# 如果你是新创建请配置环境变量 
export KUBECONFIG=${HOME}/.kube/config_crane# 不可以关闭 以便负载生成继续,你可以继续执行其余步骤
kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"

再次新开一个终端窗口

export KUBECONFIG=${HOME}/.kube/config_cranekubectl get hpa ehpa-php-apache --watch

随着请求增多,CPU利用率会不断提升,可以看到 EffectiveHPA 会自动扩容实例。

最后的运行的终端 及效果图如下:
四个终端打印
在这里插入图片描述

Crane Dashboard

在这里插入图片描述
随着系统的运行,crane根据当前的情况,给使用者生成一些推荐规则,资源推荐。其背后是 Fadvisor组件 成本模型提供了一个方法来估计和分析每个容器,pod 或其他资源在 Kubernetes 中的资源价格。

前端技术分析

以上是所有的安装及使用教程。下面来看一下如何在本地搭建一个Crane的前端开发环境,并调试一些代码。
使用git工具将项目源码下载到本地。
git clone https://github.com/gocrane/crane.git
在官方的指导文档中,如果要在本地搭建开发环境,你需要在根目录执行 make

但是这一命令需要很多前提,你需要安装go,nodejs,如果是windows系统,还要让你的电脑支持make命令。
但你是想要直接搭建一个前端开发环境,大可不必那么麻烦,下面我就来告诉怎么来操作

克隆项目到本地后,进入pkg/web目录。该目录就是前端目录。你可以在该项目下,看到一个packgage.json文件。该文件标明了前端项目所依赖的包。
正如你所见,前端项目的主要技术栈是 react与腾讯的前端框架tdesign
在这里插入图片描述

在pkg/web目录下执行 npm install 来安装依赖。
安装后,修改vite.config.js ,这是一个项目配置文件,定义了本地运行时,需要链接的后代服务地址。
将server proxy修改为如下

proxy: {'/api': {// 用于开发环境下的转发请求// 更多请参考:https://vitejs.dev/config/#server-proxy// Set to your craned addresstarget: 'http://dashboard.gocrane.io/',changeOrigin: true,},'/grafana': {// Set to your craned addresstarget: 'http://dashboard.gocrane.io/',changeOrigin: true,},},

这样配置的后,请求的以/api/grafana开头的接口 都会被转发到http://dashboard.gocrane.io/ 这个地址。该地址就是 官方提供的无需登陆的demo地址。这也算取一个巧。

修改配置文件后,你需要运行npm run dev 命令。来启动本地服务,当然该命令还是在web目录下执行。
接着浏览器就会自动打开项目访问地址 http://localhost:3003/

这个时候你会发现还是会有很多接口报错。通过仔细的排查和分析,我发现哪些报错的地址都是 直连的 http://dashboard.gocrane.io/ 地址。而这个地址就是我们选中的一个集群地址。 接口直接访问了该地址,导致跨域问题,其实走到这一步我是很诧异的,如果crane要直连集群接口地址的话,那就必须设置跨域。或者部署到同一个域名下。 在本地开发环境,其实也很好解决这一问题,直接修改访问地址,去掉域名。通
过api转发,代理到真正的接口地址。
修改方式如下:
在这里插入图片描述
移除${args.craneUrl} 即可。 修改后就可以看到无错的dashboard
在这里插入图片描述
在搭建了本地的开发环境后,给官方一共提交了6个issues,详情可以点击该链接查看
在这里插入图片描述
合并了两个PR
在这里插入图片描述

开发体验

总体来讲Crane的开发体验还是不错的,前端使用TS来规范了接口的出参和入参,一眼就能看出数据类型。
使用i18next来支持国际化。但在代码格式校验,虽然集成了,但却没有用起来,代码里也有一些声明了很多无用的变量。毕竟是腾讯云主导的第一个国内基于云原生技术的成本优化项目。

总结

在整个实验过程中,Crane的官方人员还是比较耐心的指导,由于官方使用的Mac系统撰写的教程,在Windows平台上有些许差异,这些问题官方也都耐心的解决了。

利用Crane提供的成本模型能够很好地对集群资源进行成本分析,在分析的基础上也能够给出合理化的推荐规则,并且利用数据可视化,能够清晰看到成本改变的下降的趋势,非常直观。但就目前来说项目未对接更多的云厂商的计费API,比如AWS,阿里云,华为云。另外如果推荐规则能够直接在平台上运行就更好了,目前还需要复制命令,到集群中运行。
目前社区还在热烈招募贡献者,各位读者可以积极参与进来。
最后祝愿Crane越来越好。

关于腾讯云 Finops Crane 集训营:
Finops Crane集训营主要面向广大开发者,旨在提升开发者在容器部署、K8s层面的动手实践能力,同时吸纳Crane开源项目贡献者,鼓励开发者提交issue、bug反馈等,并搭载线上直播、动手实验组队、有奖征文等系列技术活动。既能让开发者通过活动对 Finops Crane 开源项目有深入了解,同时也能帮助广大开发者在云原生技能上有实质性收获。
为奖励开发者,我们特别设立了积分获取任务和对应的积分兑换礼品。

👉活动介绍送门:https://marketing.csdn.net/p/038ae30af2357473fc5431b63e4e1a78

👉开源项目: https://github.com/gocrane/crane

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/44654.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云对象存储COS及CDN加速配置

文章目录 相关文章1. 登陆腾讯云官网,进入腾讯云对象存储COS控制台2. 创建存储空间3. 添加自定义CDN加速域名4. 购买腾讯云免费SSL证书5. 腾讯云 CDN 域名部署 SSL证书6. 测试自定义域名HTTPS访问COS中的文件7. 创建腾讯云子账户,授予对象存储权限&#…

SpringBoot整合腾讯云COS对象存储实现文件上传

企业级项目开发中都会有文件、图片、视频等文件上传并能够访问的场景,对于初学者Demo可能会直接存储在应用服务器上;对于传统项目可能会单独搭建FastDFS、MinIO等文件服务来实现存储,这种方案可能对于企业成本较小,但缺点也是很多…

腾讯云区块链使用心得

浅谈一下最近体验TBaaS的感想。 TBaaS 区块链服务平台集成开发、管理和运维等功能,支持客户在云上快速部署联盟区块链网络环境。基于 TBaaS 区块链服务平台,客户可以降低对区块链底层技术的获取成本,专注在区块链业务模式创新及业务应用的开发…

阿里云和腾讯云全方位对比

一、竞品分析目的 本文旨在人工智能行业通过对云服务平台代表性产品阿里云、腾讯云的产品定位、核心功能、发展战略等方面的研究,探讨人工智能云服务平台产品的在国内的发展趋势。为之后根据实际情况利用具有较多优势的云服务平台研发应用层人工智能产品提供决策辅…

与腾讯云物联网对接

与腾讯云物联网对接 第一步:移植Tencenttinyos的相关文件 net platform:串口驱动框架,只要HAL层 drivers: 第二步:添加头文件路径 第三步:添加esp8266例程 文件夹路径:TencentOS-tiny-master…

python调用腾讯云API语音识别

一、登录腾讯云、开通语音识别接口、获取密钥 登录 - 腾讯云 (tencent.com) 二、打开 API Explorer 语音识别 录音文件识别请求 - API 文档 - 文档中心 - 腾讯云 选择 录音文件请求 三、打开参数说明,按需求填入参数。 其中Data输入的的是音频文件经过base64编码后…

腾讯云TRTC服务实现Web视频会议

腾讯云TRTC服务实现Web视频会议 背景 近期公司承接了某高校智慧校园的项目建设工作,其中在家校协作的板块中需要进行视频教学,以及线上屏幕共享,为了完成这一需求,我在自研与第三方服务的选择之间选择了第三方,主要因…

腾讯云HiFlow场景连接器

文章目录 (一)腾讯云HiFlow场景连接器是什么?(二)腾讯云HiFlow场景连接器对于我的工作/生活能有什么好处呢?添加企业微信机器人 (一)腾讯云HiFlow场景连接器是什么? 腾讯…

监控、无人机摄像头RTSP协议对接腾讯云直播

监控、无人机摄像头RTSP协议对接腾讯云直播 1. 需求与目标 传统监控高清摄像机ip camera(如: 海康,大华等)遵循监控行业标准,一般只支持rtsp传输协议,互联网直播通用标准为rtmp协议,将这些摄像机视频流引入互联网直播…

【虚拟人快讯】超写实虚拟人青鸟发布,脑白金推出数字人形象

1、3月17日,作为广西文化符号的“刘三姐”穿越时空,以国内首个省级超写实文旅数字推广大使的身份在全网公开亮相,广西壮族自治区文化和旅游厅厅长欧余军在“元宇宙世界”,宣布授予“刘三姐数字人”“广西文化旅游数字推广大使”称…

Gmail邮箱怎么获取授权码?熟悉一下

打开谷歌邮箱https://mail.google.com/mail/u/0/#settings/fwdandpophttps://mail.google.com/mail/u/0/#settings/fwdandpop 进入“转发和 POP/IMAP”,启用 IMAP。 点击“右上角Logo” > “管理您的google账号” 在回到“管理您的google账号” 设置应用专用密码…

【reCAPTCHA 】添加Google验证码

在网站登陆注册时常常需要用到验证码,来防止站点被攻击。 大概这个样子: 现在框架是前后端分离的,angularwebapi弄个验证码感觉有点麻烦 然后就找到google的reCAPTCHA 还挺好使的,记录一下: 地址:https:…

Google验证码ReCaptcha V3

因为工作的原因需要使用Google验证码ReCaptcha v3,所以我就上网了解了一下,下面是我的一些学习分享。 大家应该都是用过google的验证码,如 这种情况的需要我们手动去选择,ReCaptcha V3则不需要了,不需要用户去手动的验…

使用Google reCAPTCHA进行人机验证

reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。 它的使用方式如下如所示,只需勾选复选框即可通过人机验证。 虽然简单…

解决Google人机验证reCaptcha失效问题

安装Redirector插件 Firefox浏览器1. 下载Firefox浏览器,并安装插件2. 打开Redirector插件的界面3. 弹出如下界面4. 按照如下形式填写 Chrome浏览器 Firefox浏览器 1. 下载Firefox浏览器,并安装插件 2. 打开Redirector插件的界面 3. 弹出如下界面 4. 按…

.NET 使用 Google 验证码(Google reCAPTCHA)

一. 前言 前段时间,发现注册受到了恶意攻击,一天注册量10w,接口已从IP做了限制,但不管用,对方每一次发起的IP都不一样;紧急做了滑动验证码,虽然上线立马就阻止了恶意请求; 但好景不…

GOOGLE 人机验证(RECAPTCHA)无法显示解决方案(转)

前言: 为了防止机器人攻击,国外很多网站都使用了 Google reCaptcha 验证码。reCaptcha 对于国外用户非常的友好,但是…对于国内用户就不怎么友好了。究其原因,则是国内网络全线屏蔽 Google 服务,导致 reCaptcha 完全加载不出来。这…

注册Maltego显示ReCaptcha is not valid,解决Google验证码服务reCaptcha失效问题

注册Maltego显示ReCaptcha is not valid,解决Google验证码服务reCaptcha失效问题 Maltego注册地址: https://www.paterva.com/web7/community/community.php 1.打开火狐浏览器,点击右上角-打开菜单-添加附件-寻找更多附加组件,查询…

巴比特 | 元宇宙每日必读:奋起直追,谷歌内部发布“红色指令”,要求几个月内将生成式人工智能技术集成到所有主要产品中...

摘要:据新浪科技报道,OpenAI的突然成功让谷歌母公司Alphabet不得不加快速度,试图在这个领域迎头赶上。一名知情人士透露,谷歌高级管理层已经宣布“红色指令”,其中要求谷歌的所有重要产品,包括用户数超过10…

和数集团助力开启区块链应用新时代

今年,中共中央、国务院等国家层面发布政策6条,不仅在全国统一大市场的广泛性政策中提及,并同时涵盖了区块链在数字文化、提振消费、交通运输以及促稳经济等多个层面的应用。可以看出,我国区块链产业呈现蓬勃发展之势。政策、技术、…