【腾讯云FinOps Crane 集训营】快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验

news2025/1/10 21:37:43

文章目录

    • 一、活动介绍
    • 二、环境搭建
    • 三、安装本地的 Kind 集群和 Crane 组件
    • 四、界面截图
    • 五、主要功能
    • 六、整体架构
    • 七、Crane的优势
    • 八、总结
    • 参考文献

一、活动介绍

Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目,遵循 FinOps 标准,已经获得FinOps基金会授予的全球首个认证降本增效开源方案。它为使用 Kubernetes 集群的企业提供了一种简单、可靠且强大的自动化部署工具。Crane 的设计初衷是为了帮助企业更好地管理和扩展其 Kubernetes 集群,从而实现更高效的云原生应用管理。它易于使用、高度可定制和可扩展。它提供了一组简单易用的命令行工具,使得开发者和管理员都能轻松地将应用程序部署到 Kubernetes 集群中。Crane 还支持多种云平台,并且可以根据具体的业务需求进行定制。Crane 并已经被腾讯、网易、思必驰、酷家乐、明源云、数数科技等公司部署在生产系统,其主要贡献者来自腾讯、小红书、谷歌、eBay、微软、特斯拉等知名公司。

名称解释:

FinOps:全称(Financial Operations)是一种管理云计算成本的方法论和实践。它结合了财务管理和云计算资源管理的最佳实践,旨在帮助组织更好地理解、优化和控制云计算成本。

image-20230522202415038

Kubernetes:Kubernetes(K8s)是一个开源系统,用于自动部署,扩展和管理容器化应用程序。Kubernetes抽象了复杂的容器管理,并为我们提供了声明式配置,以在不同的计算环境中编排容器。

Kubernetes集群至少由一个主(控制)平面和一个或多个工作机器(称为节点)组成。控制平面和节点实例都可以是物理设备、虚拟机或云中的实例。

二、环境搭建

要快速搭建一个 Kubernetes+Crane 环境,可以按照以下步骤进行操作:

  1. 安装 kubectl

请参考官方文档依据你的本地环境系统参考对应的文档安装 kubectl:https://kubernetes.io/zh-cn/docs/tasks/tools/

  1. 安装 Helm

请参考官方文档依据你的本地环境系统参考对应的文档安装 Helm:https://helm.sh/zh/docs/intro/install/

  1. 安装 kind

请参考官方文档依据你的本地环境系统参考对应的文档安装 kind:https://kind.sigs.k8s.io/docs/user/quick-start/#installation

  1. 安装 Docker

请参考官方文档依据你的本地环境系统参考对应的文档安装 docker:https://docs.docker.com/get-docker/

完成以上步骤后,再开始本地安装Crane

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

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

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

2、确保所有 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-metrics-7f9d78cffc-p8l7c   1/1     Running   0              4m46s
prometheus-server-fb944f4b7-4qqlv                2/2     Running   0              4m46s

3、访问 Crane Dashboard

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

# 后续的终端操作请在新窗口操作,每一个新窗口操作前请把配置环境变量加上(不然会出现8080端口被拒绝的提示)
export KUBECONFIG=${HOME}/.kube/config_crane

4、成功的标志是你能通过http://127.0.0.1:9090/访问到类似于如下页面:

image-20230522201639006

四、界面截图

image-20230522201841843

  • 当月总成本:过去一个月集群总成本。从安装Crane时间开始,按小时累加集群成本
  • 预估每月成本:以最近一小时成本估算未来一个月的成本。每小时成本 * 24 * 30
  • 预估CPU总成本:以最近一小时CPU成本估算未来一个月的CPU成本。每小时CPU成本 * 24 * 30
  • 预估Memory总成本:以最近一小时Memory成本估算未来一个月的Memory成本。每小时Memory成本 * 24 * 30

image-20230522201917963

image-20230522201942937

  • Workload Spec CPU Slack: Workload 的 CPU 规格 - 推荐的 CPU 规格
  • Workload Total CPU Slack: (Workload 的 CPU 规格 - 推荐的 CPU 规格)* Pod 数量

更多的成本分析图表可以通过登陆 Grafana 的页面或者分析源码研究。

image-20230522202038068

image-20230522202054683

可通过查看监控查看详细的监控数据。

image-20230522203351120

五、主要功能

image-20230522202159004

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

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

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

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

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

3、负载感知的调度器

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

4、拓扑感知的调度器

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

5、基于 QOS 的混部

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

六、整体架构

image-20230522202804151

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 的数据。

Crane Agent

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

Prometheus

Prometheus 受启发于 Google 的 Brogmon 监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。

Grafana

Grafana 是一个监控仪表系统,它是由 Grafana Labs 公司开源的的一个系统监测工具,它可以大大帮助我们简化监控的复杂度,我们只需要提供需要监控的数据,它就可以帮助生成各种可视化仪表,同时它还有报警功能,可以在系统出现问题时发出通知。

七、Crane的优势

FinOps 旨在通过更好地管理和优化云计算成本,实现组织的财务目标,并确保云资源的有效和经济使用。它强调透明度、责任分配、预算规划、自动化和协作等关键实践,帮助组织在云计算时代实现,主要有如下优势:

1、实时监控成本
Crane可以帮助企业实时监控云计算资源的使用情况,并将其与成本进行关联,提供实时的成本分析和预测功能。这样,企业就可以更好地控制成本,提高效益。

2、优化资源利用率
Crane可以帮助企业优化云计算资源的利用率。它可以帮助企业发现不必要的资源浪费,并提供优化建议,使企业可以更好地利用云计算资源,提高资源利用效率。

3、提高决策效率
Crane可以帮助企业更好地了解云计算资源的成本和使用情况。这样,企业就可以更好地做出决策,以满足业务需求,并在成本和效益之间取得平衡。

4、智能预测
Crane可以帮助企业完成流量智能预测,进行自动扩缩容,应对大促节假日等有规律的流量洪峰。

八、总结

通过这次活动,我深入了解了Crane 的原则和实践,并学到了如何应用它们来管理云计算成本。我意识到透明度、责任分配、预算规划、自动化和协作是实现成功的Crane 策略的关键要素。这次活动让我对如何更好地管理云计算成本有了更深入的理解,并为将来实践Crane 提供了宝贵的经验。认识到了如下几点:

  1. 可见性与透明度:通过使用云计算成本管理工具和仪表板,我们能够实时地查看和分析我们的云资源使用情况和成本。这使我们能够更好地了解资源消耗的模式,并识别出成本的主要驱动因素。

  2. 责任分配:在活动中,我们将云计算成本与不同的团队和部门相关联。这种责任分配的方法使每个团队能够更好地理解他们使用的资源的成本,并激励他们采取行动来优化资源的使用。

  3. 预算规划与优化:我们设定了预算,并与实际成本进行对比。这使我们能够及早发现超支和浪费,并采取适当的措施进行优化。通过设定目标和监控实际成本,我们能够更好地管理资源使用并控制成本。

  4. 自动化与优化:在模拟活动中,我们探索了自动化工具和流程,以提高资源管理的效率和准确性。我们使用自动化脚本来自动调整资源规模,实现按需分配资源,并使用服务器less架构来优化成本。

  5. 协作与教育:活动中鼓励团队之间的合作和知识共享。我们举办了培训和讨论会,让不同团队的成员了解Crane 的概念和最佳实践。这样的协作和教育活动有助于提高团队的意识,并促进更好的资源管理和成本控制。

参考文献

Crane github:https://github.com/gocrane/crane
Crane官网: https://gocrane.io/

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

如果你在web前端开发、面试、前端学习路线有困难可以加我V:imqdcnn。免费答疑,行业深潜多年的技术牛人帮你解决bug。

祝你能成为一名优秀的WEB前端开发工程师!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用java带你了解网络IO模型

目录 1.BIO1.1 简述1.2 代码示例1.3优点和缺点1.4 思考 2. NoBlockingIO2.1 简述2.2 代码示例2.3 优点和缺点2.4 思考 3. NIO(NewIO)3.1 简述3.2 代码示例3.3 优点和缺点3.3 思考 4. 扩展select/poll、epoll4.1 简述4.2 select/poll4.3 epoll4.4 扩展话题…

Linux之vim编辑器的使用

目录 一、vim是什么? 试验1: 二.命令模式继承用法: vim命令模式的快捷键: 光标移动: vim文本复制相关操作: vim文本编辑操作: 三.末行模式命令用法 部分快捷键: 四.vim编辑器的配置原理 一、vim是什么? vi…

Hive SQL语句的正确执行顺序

关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group by 执行的先后顺序,有说 select 先执行,有说 group by 先执行,到底它俩谁先执行呢&#x…

智能结构诊断器:建筑结构健康的守护者

近年来,接二连三的自建房坍塌,超高层建筑震动,让建筑的健康和安全性成为了人们关注的焦点。为了确保建筑物的长期稳定性和安全性,迫切需要高效且准确的方法来监测结构的健康状况。智能结构诊断器的出现,让建筑结构监测…

大数据如何助力营销(5)活动复盘

在市场竞争日益激烈的今天,营销活动已经成为吸引用户、提升品牌影响力、增加销售转化的重要手段。然而,一场营销活动在举办后,往往难以评估活动的效果,而大数据技术将从方方面面、科学有效地复盘活动,并为下一次举办活…

chatgpt赋能Python-python_kbhit

Python kbhit - 帮助您掌握实时按键输入 如果您需要使用实时按键输入来控制您的Python程序,那么你需要知道的是Python kbhit。kbhit是一种允许用户实时按键输入并立即响应的技术。本文将介绍Python kbhit的用途和用法,并探讨实时输入如何帮助您掌控程序…

AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路

本教程收集于:AIGC从入门到精通教程 AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路 本篇没有什么长篇大论,全部都是实用心得总结。接下来,我们将分享关于Midjourney绘画AI的实用心得总结,包括构图指令结构、常用指令、操作技巧、常用风格词汇和构图词汇。 如果…

手机号码在网时长 API 实现广告投放和精准营销案例分析

引言 手机在网时长是指用户在移动网络上的在线时间,包括用户接入网络的时间和断开网络的时间。手机在网时长 API 是一种提供手机在网时长数据的编程接口,为开发者和服务提供商提供了获取和利用这些数据的能力。 本文旨在深入探讨手机在网时长 API 的技…

计算机视觉——day95 PANet:基于样本原型对齐的Few-Shot图像语义分割

PANet:基于样本原型对齐的Few-Shot图像语义分割 1. Introduction2. Related workFew-shot segmentation 3. Method3.1. Problem setting3.2. Method overview3.3. Prototype learning(原型学习)3.4. 非参数度量学习3.5. 原型对准正则化(PAR) 4. Experime…

MySQL高级 之 explain执行计划详解

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序…

前端安全和防护:如何保护网站和用户信息的安全

第一章:引言 在当今数字化时代,随着互联网的飞速发展,网站已成为人们获取信息和进行交流的主要渠道。然而,随之而来的是对网站安全的日益关注。作为前端开发者和网站管理员,我们有责任确保用户的信息和网站的安全。本…

可分析表情和情绪的轻量化眼镜:Emteq OCOsense解析

近年来,越来越多VR头显开始尝试结合眼球追踪、手势追踪等生物识别技术,甚至在一些VR社交场景,也在探索将Avatar与面部识别功能结合。可以想象,未来生物识别与AR/VR等穿戴技术的关系将越来越紧密,尽管现阶段相关硬件在体…

Jenkins安装插件教程 牢记 Jenkis安装插件(plugin)的两种方法

目录 jenkins在线安装组件(plugin) jenkins离线安装组件(plugin) 前言:在jenkins学习使用或使用的过程中,由于网络的问题,在选择安装插件的时候,会出现某些插件安装失败。这是需要…

Word控件Spire.Doc 【列表】教程:在 Word 文档中插入列表

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

【MaxCompute】基于Package跨项目访问资源实践

背景 目前随着公司业务的不断扩展,各个业务线的数据也越来越多,如果所有数据都集中管理比较错综复杂。MaxCompute的跨项目访问资源比较适合这样的场景。每个业务线创建对应的project,自行管理数据。如果有需要访问其他业务线数据的诉求&…

python3 爬虫相关学习6:html 和 css 简要回顾

因为要学爬虫,需要了解下html内容,我之前大概看过,这算是回顾下 以下html简单回顾内容,跟着这个地址的教程看了一遍,感谢 https://www.w3school.com.cn/html/html_jianjie.asp 下面是笔记 目录 1 html 2 常用标签…

文件缓冲区概念和磁盘的存储原理以及软硬链接

目录 缓冲区 缓冲区执行概念 C语言缓冲区存在于FILE结构体中 用户缓冲区刷新到OS缓冲区的策略 发生重定向 redir未重定向。 redir重定向。 磁盘的存储原理 细讲: Inode table Date block Inode bitmap Block bitmap Group Descriptor Table super Block 在目录…

脑机接口科普0020——是否鸡娃

本文禁止转载!!!! 现在有很多人开始给小孩早教,鸡娃,幼儿园就开始学英语,小学就开始学初中的内容,初中就开始学高中的内容。高中后开始拼命的做卷子,准备考大学,考完大学放纵。大学毕业后失业。 关于是否…

Matlab进阶绘图第21期—三角方块热图

三角方块热图,顾名思义,就是仅保留方块热图数据矩阵的上三角或下三角部分。 三角方块热图简单明了,通过不同颜色、不同大小的圆形表示数据的大小,可以更加直观地对矩阵数据进行可视化表达。 本文使用自制的trisquareheatmap小工…

ERROR: slow sql .. millis.

问题现象 运行过程中,查询页面报错,如下图: 404 NOT FOUND 排查日志,如下图: 查看数据库: 解决办法 在关联字段上添加索引,查询正常。