【腾讯云Finops Crane集训营】降本增效之 Crane 初体验

news2024/11/24 16:02:38

在这里插入图片描述

    • 1. Crane 初识
    • 2. Crane 如何进行成本优化?
    • 3. Crane 快速上手体验
      • 3.1 安装 Prometheus 和 Grafana
      • 3.2 安装 Crane 和 Fadvisor
      • 3.3 验证安装是否成功
      • 3.4 访问 Dashboard
    • 4. Crane 初体验 - 总结&建议
    • 5. 关于腾讯云 Finops Crane 集训营


最近有幸参加了腾讯云 Finops Crane 开源项目的第一季活动,对 Crane 有了一个深入的了解。作为一款云资源分析与成本优化平台,它为云原生领域相关的开发者和企业都提供了一种更简单、更高效的 Kubernetes 集群管理机制,正如 Crane 的愿景:“在保证客户应用运行质量的前提下实现极致的降本”,实现 降本增效 式的云原生应用管理便是其最大目标。接下来我们一起了解一下 Crane。

1. Crane 初识

Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目,遵循 FinOps 标准,是一个基于 FinOps 的云资源分析与成本优化平台。

在这里提到了 “FinOps 标准”,那么 FinOps 又是什么呢?

FinOps 是 DevOps、财务和业务整合在一起的变革,其目标在于优化一个组织在云计算上的支出的财务规范和技术解决方案,即根据支出的历史记录和来自预期负载的信息,FinOps 可以在需要时预分配资源或估算成本,可称为“财务运营”,或者更直白地称为“成本优化”,它是将财务问责制引入云的 IT 支持,进行调整以优化质量和支出。其实简单通俗理解就是四个字:“降本增效”。

Crane 就是基于 FinOps 为使用 Kubernetes 集群的企业提供了一种简单、可靠且强大的自动化部署机制,它易于使用、高度可定制和可扩展。提供了一组简单易用的命令行工具,使得开发者和管理员都能轻松地将应用程序部署到 Kubernetes 集群中。此外它还支持多种云平台,并且可以根据具体的业务需求进行定制。

以下是 Crane 的架构图,它整体上由 Craned 管理 CRDs 的生命周期以及 API,Craned 也是 Crane 的最核心组件。Fadvisor 用于提供一组 Exporter 计算集群云资源的计费和账单数据并存储至监控系统。Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。Crane Agent 通过 DaemonSet 部署在集群的节点上。底层则是 Linux 内核(Linux Kernel)。

在这里插入图片描述

2. Crane 如何进行成本优化?

Crane 是通过三个方面开启成本优化之旅的:

  1. 成本展示:Kubernetes 资源( Deployments, StatefulSets )的多维度聚合与展示。
  2. 成本分析:周期性的分析集群资源的状态并提供优化建议。
  3. 成本优化:通过丰富的优化工具更新配置达成降本的目标。

以下是 Crane 的优化过程,由 Visualization 进行可视化展示,Analytics 进行成本分析,Optization 进行成本优化。先输入(input) k8s 资源对象(k8s Resources)和监控所得的各项指标数据(Monitoring Data),接下来由 Dashboard 可视化展现接收到的各项数据,Fadvisor 则会提供一组 Exporter 计算集群云资源的计费和账单数据并存储至监控系统,至此就完成了 成本展示;接下来由 Recommendation Framework 根据实际的历史记录和相关指标等做出一些分析并提供优化建议,这就是 成本分析;最后 Optization 来完成 成本优化,这部分包含的方面较多,如动态调度、弹性扩缩容等等,这里不作具体阐述。

在这里插入图片描述

3. Crane 快速上手体验

Crane 的安装访问流程如下:

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

环境要求:

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

关于 k8s 集群的搭建与 kubectl、helm、Grafana 等工具的使用博主在往期专栏已有详细介绍,参见《云原生/云计算 - 入门到实战》。所以下面基于已有 k8s 环境的情况进行演示。

3.1 安装 Prometheus 和 Grafana

Crane 使用 Prometheus 抓取集群工作负载对资源的使用情况。安装 Prometheus:

helm repo add prometheus-community https://finops-helm.pkg.coding.net/gocrane/prometheus-community
helm install prometheus -n crane-system --version 19.6.1 \
    --set pushgateway.enabled=false \
    --set alertmanager.enabled=false \
    --set server.persistentVolume.enabled=false \
    -f https://gitee.com/finops/helm-charts/raw/main/integration/prometheus/override_values.yaml \
    --create-namespace  prometheus-community/prometheus

Crane 的 Fadvisor 使用 Grafana 展示成本预估。安装 Grafana:

helm repo add grafana https://finops-helm.pkg.coding.net/gocrane/grafana
helm install grafana --version 6.11.0 \
    -f https://gitee.com/finops/helm-charts/raw/main/integration/grafana/override_values.yaml \
    -n crane-system \
    --create-namespace grafana/grafana

3.2 安装 Crane 和 Fadvisor

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace crane/crane
helm install fadvisor -n crane-system --create-namespace crane/fadvisor

3.3 验证安装是否成功

使用如下命令查看安装是否成功;

kubectl get deploy -n crane-system

当看到各个容器均已处于 Ready 状态,说明已经安装成功;

NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
craned                          1/1     1            1           31m
fadvisor                        1/1     1            1           41m
grafana                         1/1     1            1           42m
metric-adapter                  1/1     1            1           31m
prometheus-kube-state-metrics   1/1     1            1           43m
prometheus-server               1/1     1            1           43m

如下是我的实操场景截图:

在这里插入图片描述

3.4 访问 Dashboard

这里我们通过端口映射访问 Dashboard:

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

最终效果如下:

在这里插入图片描述

4. Crane 初体验 - 总结&建议

通过本次 Finops Crane 集训营活动,我先观看了 Finops Crane 开源项目的直播和开发者集训营直播,后来又实际上手体验了 Crane 的安装与使用操作。这几个流程下来对 Crane 的基本概念和实操方法均更加熟悉了,而且对它降本增效的原理也有了认知。最大的感受就是 Crane 对于 k8s 集群的管理显而易见的高效便捷,一是其操作与数据完全可视化,二是通过各种前沿技术的应用对于某一项操作的简化,为开发者省去了很多繁琐的操作。无论是应用部署还是资源监控等各个方面,即使是新手也可以快速入门。

但是对于初次想要安装部署 Crane 的伙伴来说,我还是建议是先了解学习一下云原生领域特别是 Kubernetes 技术栈,如果能够在熟悉 Kubernetes 集群搭建与命令行工具 kubectl 的情况下上手 Crane,会很轻松。

在使用腾讯云 Finops Crane 文档的过程中,我觉得可以将用户手册、操作教程更加细化,以加强用户的体验,因为肯定是有初次入门或者无技术经验的用户上手 Crane 的,对于这部分人群来说我觉得文档还是有点偏难;其次就是建议 Finops Crane 持续进行产品升级创新,引入更多先进的技术和方案,满足不断变化的市场和行业需求,让平台更加实用和灵活。


5. 关于腾讯云 Finops Crane 集训营

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

  • 活动介绍送门
  • 开源项目

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

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

相关文章

新星计划【Java微服务+云原生】赛道开启!

前排提醒:这里是新星计划2023【微服务云原生】学习方向的报名入口,一经报名,不可更换。 ↓↓↓报名入口:新星计划2023【微服务云原生】学习方向报名入口!-CSDN社区 一、关于本学习方向导师 博客昵称:鹤冲…

opengl灯光基础:2.1 光照基础知识

光照: 光照以不同的方式影响着我们看到的世界,有时甚至是以很戏剧化的方式。当手电筒照射在物体上时,我们希望物体朝向光线的一侧看起来更亮。我们所居住的地球上的点,在中午朝向太阳时候被照得很亮,但随着地球的自转…

【使用VS开发的第一个QT项目——实现相机功能(包括QT下载、配置、摄像头程序)】

使用VS开发的第一个QT项目 一、QT(WIN10)安装1.首先下载QT(VS有对应的QT)2.安装QT 二、将QT加载到VS中三、QT设置1.在VS"Qt Vs Tools"→"QT Versions"中添加"msvc2017_64"qmake的路径2.在"General"→"QT Designer"中将"…

克里金插值(Kriging)在MATLAB中的实现【优化】

该部分是基于克里金插值(Kriging)在MATLAB中的实现(克里金工具箱),由于在运行过程中有部分问题,基于此做的一些理解优化。 工具箱的下载见上面的链接,其提供了工具箱。 clc clearload(data_kr…

服务(第三十二篇)nginx做缓存服务器

nginx作为缓存服务配置语法 1、proxy_cache_path 配置语法(即缓存路径配置语法) Syntax:proxy_cache_path path [levelslevels] [use_temp_pathon|off] keys_zonename:size [inactivetime] [max_sizesize] [manager_filesnumber] [manager_s…

python爬虫笔记

Python爬虫笔记 一. Urllib 1. 基础请求 指定url请求返回值解码返回结果的一些操作 import urllib.request as req # 定义一个url url http://www.baidu.com# 发送请求获得相应 res req.urlopen(url)# read返回字节形式的二进制数据,需要用指定编码来解码 content res.r…

Allure测试报告定制全攻略,优化你的Web自动化测试框架!

目录 前言: 1. Allure测试报告简介 2. Web自动化测试框架简介 3. 封装Web自动化框架 3.1 安装Selenium 3.2 封装Selenium 3.3 定制Allure测试报告 3.3.1 适配翻译插件 3.3.2 定制测试报告样式 4. 示例代码 5. 总结 前言: 随着现在Web应用的普…

【特征选择】基于二进制粒子群算法的特征选择方法(PNN概率神经网络分类)【Matlab代码#33】

文章目录 【可更换其他算法,获取资源请见文章第6节:资源获取】1. 特征选择问题2. 二进制粒子群算法3. 概率神经网络(PNN)分类4. 部分代码展示5. 仿真结果展示6. 资源获取 【可更换其他算法,获取资源请见文章第6节&…

day42_jsp

今日内容 零、 复习昨日 一、JSP 二、EL 三、JSTL 四、MVC 零、 复习昨日 一、JSP 1.0 引言 现有问题 在之前学习Servlet时,服务端通过Servlet响应客户端页面,有什么不足之处? 开发方式麻烦:继承父类、覆盖方法、配置Web.xml或注…

8.3:加强堆的应用

8.3:加强堆的应用 题目要求: 做一个加强堆的题目,给定一个整型数组,int[] arr;和一个布尔类型数组,boolean[] op 两个数组一定等长,假设长度为N,arr[i]表示客户编号,op…

【程序人生】上海城市开发者社区小聚有感

📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…

shell脚本入门-编写格式以及执行方式

Shell介绍 通过编写shell命令发送给linux内核去执行,操作就是计算机硬件,所以Shell命令是用户操作计算机硬件的桥梁 Shell是命令,类似与windows系统的Dos命令 Shell是一门程序设计语言,shell里面含有变量,函数&#xf…

低代码助力企业数字化转型:构建高效业务系统的新选择

在当今数字化时代,企业数字化转型已经成为业界的热门话题。随着全球各大企业逐渐意识到数字化转型的重要性,越来越多的公司开始采用低代码开发平台作为数字化转型的工具,以低成本高效率构建业务系统,实现数字化转型。 但现实情况是…

Less基础速学 —— 混入、运算、继承

Less 混合 在上一篇内容中就已经简单的了解了关于CSS预处理器 —— Less&#xff0c;本篇就往下讲Less中的混合&#xff0c;什么是混合&#xff1f;就是将一系列属性从一个规则集引入到另外一个规则集的方式。下面来看一下它的混合方式有哪些&#xff1f; 普通混合 <div …

使用OpenCvSharp来计算图像的清晰度(可实现相机自动对焦)

相机自动对焦&#xff0c;其实是对相机成像的清晰值得计算&#xff0c;若对焦不清晰&#xff0c;成像的清晰度低&#xff0c;视觉效果模糊。若是在工业检测行业&#xff0c;对焦不准确&#xff0c;可能导致信息不正确&#xff1b;对焦准确的图像&#xff0c;其清晰度高&#xf…

长连接心跳原理与机制工程上踩坑与优化

QA: 业务上对于心跳间隔一般怎么确定? 心跳间隔的确定一般需要根据具体业务场景和需求来进行。以下是一些常见的确定心跳间隔的方法&#xff1a; 根据应用场景和需求来确定心跳间隔。例如&#xff0c;在智能手环等健康监测设备中&#xff0c;心跳间隔通常设置为几秒钟到几分钟…

华为OD机试之过滤组合字符串(Java源码)

过滤组合字符串 题目描述 每个数字关联多个字母&#xff0c;关联关系如下&#xff1a; 0 关联 “a”,”b”,”c”1 关联 “d”,”e”,”f”2 关联 “g”,”h”,”i”3 关联 “j”,”k”,”l”4 关联 “m”,”n”,”o”5 关联 “p”,”q”,”r”6 关联 “s”,”t”7 关联 “u”…

六级备考24天|CET-6|翻译技巧4|翻译红楼梦|22:40~23:40

目录 作题步骤 红楼梦 12 PRACTICE ANSWER​ 时态问题 3 ANSWER 4 PRACTICE ANSWER ​ 5​ PRACTICE ANSWER 合并 ​ 全文翻译​ 作题步骤 不要拿到题目就动笔、一定要先读题、重建逻辑、找句子主干、有能力可以润色简化&#xff01; 红楼梦 12 PRACTICE Dream of th…

【java】leetcode 二叉树展开为链表

二叉树展开为链表 leetcode114 .二叉树展开为链表解题思路二叉树专题&#xff1a; leetcode114 .二叉树展开为链表 114 leetcode 链接。可以打开测试 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#x…

【Redis】共同关注列表与基于Feed流的关注消息滚动分页推送的实现

目录 一、共同关注 1、思路 2、实现步骤 二、Feed流 1、概念 2、需求 3、TimeLine的三种模式 1.拉 2.推 3.推拉结合 4、TimeLine三种模式的区别 三、关注推送 1、需求 2、实现思路 3、Redis数据结构的选择 4、滚动分页 5、代码实现 1.博主 2.粉丝 一、共同关…