【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

这篇具有很好参考价值的文章主要介绍了【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言:

为推进云原生用户在确保业务稳定性的基础上做到真正的极致降本,腾讯云推出了国内第一个基于云原生技术的成本优化开源项目 Crane(Cloud Resource Analytics and Economics)。Crane 遵循 FinOps 标准,旨在为云原生用户提供云成本优化一站式解决方案。

一、基本介绍

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

  • 官网地址
  • GitHub 地址

1.主要功能

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

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

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

2)推荐框架

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

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

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

4)负载感知的调度器

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

5)拓扑感知的调度器

  • Crane SchedulerCrane Agent 配合工作,支持更为精细化的资源拓扑感知调度和多种绑核策略,使得资源得到更合理高效的利用。

6)基于 QOS 的混部

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

2.整体架构

Crane 的整体架构如下:
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台


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

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

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

  • Fadvisor 通过 Cloud Provider 支持了多云计费的 API。

Metric Adapter 实现了一个 Custom Metric Apiserver

  • Metric Adapter 读取 CRDs 信息并提供基于 Custom/External Metric API 的 HPA Metric 的数据。

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

二、基于 Kubernetes 实现云资源分析与成本优化平台

1.准备工作

  • Kubernetes 1.16+:二进制安装传送门
  • Helm 3.7+

1)安装 Helm

[root@k8s-master01 ~]# wget https://get.helm.sh/helm-v3.7.2-linux-amd64.tar.gz
[root@k8s-master01 ~]# tar zxf helm-v3.7.2-linux-amd64.tar.gz
[root@k8s-master01 ~]# mv linux-amd64/helm /usr/local/bin
[root@k8s-master01 ~]# helm version
version.BuildInfo{Version:"v3.7.2", GitCommit:"663a896f4a815053445eec4153677ddc24a0a361", GitTreeState:"clean", GoVersion:"go1.16.10"}

2.安装 Prometheus/Grafana 软件包

1)安装 Prometheus

[root@k8s-master01 ~]# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
[root@k8s-master01 ~]# 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://raw.githubusercontent.com/gocrane/helm-charts/main/integration/prometheus/override_values.yaml \
--create-namespace  prometheus-community/prometheus

2)安装 Grafana

[root@k8s-master01 ~]# helm repo add grafana https://grafana.github.io/helm-charts
[root@k8s-master01 ~]# helm install grafana --version 6.11.0 \
-f https://raw.githubusercontent.com/gocrane/helm-charts/main/integration/grafana/override_values.yaml \
-n crane-system \
--create-namespace grafana/grafana

3.安装 Crane 软件包

1)安装 Crane 和 Fadvisor

[root@k8s-master01 ~]# helm repo add crane https://gocrane.github.io/helm-charts
[root@k8s-master01 ~]# helm install crane -n crane-system --create-namespace crane/crane
[root@k8s-master01 ~]# helm install fadvisor -n crane-system --create-namespace crane/fadvisor

2)验证安装是否成功

[root@k8s-master01 ~]# kubectl get pod,deploy -n crane-system

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
3)修改 Craned 服务的 ConfigMap 配置,调整反向代理的地址

[root@k8s-master01 ~]# kubectl get service craned -n crane-system -o yaml > 1.yaml
[root@k8s-master01 ~]# sed -i 's/type: ClusterIP/type: NodePort/g' 1.yaml 
[root@k8s-master01 ~]# sed -i '/targetPort: 9090/a\    nodePort: 30080' 1.yaml
[root@k8s-master01 ~]# kubectl apply -f 1.yaml
[root@k8s-master01 ~]# kubectl edit cm nginx-conf -n crane-system
:%s/craned.crane-system:8082/127.0.0.1:8082/g

[root@k8s-master01 ~]# kubectl get pod -n crane-system | awk '/^craned/{print $1}' | xargs kubectl delete pod -n crane-system
  • 因为 Dashboard 和 Craned 服务都在同一个 Pod 里,而 Dashboard 容器是通过 Service 加端口的方式代理到 Craned 服务上的;
  • 但是 Pod 并不能直接通过 Service 加 端口的方式访问到本身,所以我们这里通过 127.0.0.1(Lo)的方式进行代理。

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

4. 使用智能弹性 EffectiveHPA

Kubernetes HPA 支持了丰富的弹性扩展能力,Kubernetes 平台开发者部署服务实现自定义 Metric 的服务,Kubernetes 用户配置多项内置的资源指标或者自定义 Metric 指标实现自定义水平弹性。


EffectiveHorizontalPodAutoscaler(简称 EHPA)是 Crane 提供的弹性伸缩产品,它基于社区 HPA 做底层的弹性控制,支持更丰富的弹性触发策略(预测,观测,周期),让弹性更加高效,并保障了服务的质量。

  • 提前扩容,保证服务质量: 通过算法预测未来的流量洪峰提前扩容,避免扩容不及时导致的雪崩和服务稳定性故障。
  • 减少无效缩容: 通过预测未来可减少不必要的缩容,稳定工作负载的资源使用率,消除突刺误判。
  • 支持 Cron 配置: 支持 Cron-based 弹性配置,应对大促等异常流量洪峰。
  • 兼容社区: 使用社区 HPA 作为弹性控制的执行层,能力完全兼容社区。

1)安装 Metrics Server

[root@k8s-master01 ~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.3/components.yaml
[root@k8s-master01 ~]# sed -i '/- args:/a\        - --metric-resolution=15s' components.yaml
[root@k8s-master01 ~]# sed -i 's@image:.*@image: docker.io/gocrane/metrics-server:v0.6.3@g' components.yaml
[root@k8s-master01 ~]# kubectl apply -f components.yaml

2)创建测试应用

[root@k8s-master01 ~]# kubectl apply -f https://raw.githubusercontent.com/gocrane/crane/main/examples/autoscaling/php-apache.yaml
[root@k8s-master01 ~]# kubectl apply -f https://raw.githubusercontent.com/gocrane/crane/main/examples/analytics/nginx-deployment.yaml

3)创建 EffectiveHPA

[root@k8s-master01 ~]# kubectl apply -f https://raw.githubusercontent.com/gocrane/crane/main/examples/autoscaling/effective-hpa.yaml

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
4)增加负载,查看应用是否能够正常扩容

[root@k8s-master01 ~]# kubectl run -i --tty load-generator --rm --image=busybox:1.28.4 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

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

4.配置集群

访问:http://192.168.1.1:30080

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

三、功能验证

1.成本展示

Crane Dashboard 提供了各式各样的图表展示了集群的成本和资源用量。
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

2.资源推荐


Kubernetes 用户在创建应用资源时常常是基于经验值来设置 requestlimit,通过资源推荐的算法分析应用的真实用量推荐更合适的资源配置,你可以参考并采纳它提升集群的资源利用率。该推荐算法模型采用了 VPA 的滑动窗口(Moving Window)算法进行推荐:

  • 通过监控数据,获取 Workload 过去一周(可配置)的 CPU 和内存的历史用量。
  • 算法考虑数据的时效性,较新的数据采样点会拥有更高的权重。
  • CPU 推荐值基于用户设置的目标百分位值计算,内存推荐值基于历史数据的最大值。

1)使用资源推荐
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

3.副本数推荐

Kubernetes 用户在创建应用资源时常常是基于经验值来设置副本数。通过副本数推荐的算法分析应用的真实用量推荐更合适的副本配置,同样可以参考并采纳它提升集群的资源利用率。

其实现的基本算法是基于工作负载历史 CPU 负载,找到过去七天内每小时负载最低的 CPU 用量,计算按 50%(可配置)利用率和工作负载 CPU Request 应配置的副本数。

【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台
【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台

四、总结

整体操作体验下来,安装相对比较简单,通过使用 Helm 工具实现便捷安装。安装完成后,便可以通过提供的 Dashboard 面板来进行访问。界面简单明了,易上手,同时在功能层面上实现了实时监控成本、应用资源使用量、资源推荐、智能弹性等功能。

  • 实时监控成本:Crane 提供每小时、每天、每周和每月的费用概览,并且可以按集群、命名空间和工作负载分解成本。
  • 资源监控:通过调用 Prometheus 和 Grafana 实现资源监控以及可视化 UI。
  • 资源推荐:使用 VPA 算法模型,先分析出应用的真实用量,再通过计算得出应用的最佳资源配置。
  • 智能弹性:基于社区 HPA 做底层的弹性控制,支持更加丰富的弹性触发策略,让弹性更加高效,并保证服务的质量。

因此,我们可以通过 Crane 服务提供的成本计算、资源使用率,以及上述功能,来观察是否需要对云服务器进行资源扩容或减配。避免出现资源不足或资源浪费的情况,达到真正意义上的降本增效。


关于腾讯云 Finops Crane 集训营:

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

为奖励开发者,我们特别设立了积分获取任务和对应的积分兑换礼品。文章来源地址https://www.toymoban.com/news/detail-453686.html

  • 活动介绍送门:https://marketing.csdn.net/p/038ae30af2357473fc5431b63e4e1a78
  • 开源项目: https://github.com/gocrane/crane

到了这里,关于【腾讯云 Finops Crane 集训营】基于 Kubernetes 实现云资源分析与成本优化平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰裤辣~

    【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰裤辣~

    Crane 是一个基于 FinOps 的云资源分析与成本优化平台。在保证客户应用运行质量的前提下实现极致的降本。 云原生技术可以帮助企业实现降本增效,提高业务的灵活性和可扩展性。云原生技术的降本增效主要是由以下因素推动的: 成本压力:随着业务规模和数据量的不断增长

    2024年02月05日
    浏览(11)
  • 【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰酷辣~

    【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰酷辣~

    Crane 是一个基于 FinOps 的云资源分析与成本优化平台。在保证客户应用运行质量的前提下实现极致的降本。 云原生技术可以帮助企业实现降本增效,提高业务的灵活性和可扩展性。云原生技术的降本增效主要是由以下因素推动的: 成本压力:随着业务规模和数据量的不断增长

    2024年02月04日
    浏览(9)
  • 【腾讯云 Finops Crane 集训营】降本增效利器Crane应用实战

    【腾讯云 Finops Crane 集训营】降本增效利器Crane应用实战

    很荣幸参加了由腾讯云联合CSDN推出的“腾讯云 Finops Crane 集训营”,在集训过程,从0到1体验了Crane平台的搭建,也积极参与github的发言,提交两个issue帮助提升体验感。好了,话不多说,下面跟着我一起走入Finops Crane。 FinOps(Financial Operations)是一种管理云计算成本的方法,

    2024年02月05日
    浏览(13)
  • 【腾讯云Finops Crane集训营】降本增效之 Crane 初体验

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

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

    2024年02月05日
    浏览(14)
  • 【腾讯云Finops Crane集训营】降本增效神器Crane实战记录

    【腾讯云Finops Crane集训营】降本增效神器Crane实战记录

    这段时间有幸参与了一下腾讯Finops Crane集训营的Crane公开体验训练营。 这不,给大家写一篇实战记录。 如下图所示,可以看到Crane的详细介绍: 简单的来说,就是在云原生技术不断发展和普及的大背景下,这是国内第一个基于云原生技术的成本优化项目,它遵循了FinOps标准,

    2024年02月06日
    浏览(13)
  • 【腾讯云 Finops Crane 集训营】降本增效?学会 Crane,就够了

    【腾讯云 Finops Crane 集训营】降本增效?学会 Crane,就够了

    随着云原生技术的发展,越来越多的公司正在选择将应用运行在云上或者自建的 Kubernetes 集群上,但是许多机构的调研发现,绝大多数的用户集群资源利用率并不高,浪费严重。本文就带大家来了解Crane,以及通过实践,体验它的魅力。 Crane 是由腾讯云主导开源的国内第一个

    2024年02月05日
    浏览(12)
  • 【腾讯云 Finops Crane集训营】Finops Crane究竟能为我们带来什么价值和思考?深入探究Crane

    【腾讯云 Finops Crane集训营】Finops Crane究竟能为我们带来什么价值和思考?深入探究Crane

    目录 前言 一、Crane目的是什么? 二、Crane有哪些功能? 1.成本可视化和优化评估  2.推荐框架  3.基于预测的水平弹性器 4.负载感知的调度器 5.拓扑感知的调度器 6.基于 QOS 的混部 三.Crane的整体架构及特性 1.Crane架构 Craned Fadvisor Metric Adapter Crane Agent 2.Crane特性 一键部署 简单易

    2024年02月05日
    浏览(13)
  • 【腾讯云 Finops Crane 集训营】学习云原生成本优化

    【腾讯云 Finops Crane 集训营】学习云原生成本优化

    是时候给生活来点调味剂了,我就打开 CSDN 逛逛有什么新鲜事。发现了这样一个活动:腾讯云 Finops Crane 集训营。 正好我在上一家公司负责过 Kubernetes 容器集群管理,所以抱着学(na)习(jiang)的目的报名了,想看看这个获得 FinOps 基金会授予的全球首个认证降本增效开源的方案有

    2024年02月06日
    浏览(14)
  • 【腾讯云 Finops Crane 集训营】云架构成本大,浪费支出太高?何不试试Crane

    【腾讯云 Finops Crane 集训营】云架构成本大,浪费支出太高?何不试试Crane

    近年来,很多公司随着业务的发展都开始采用云原生的架构方式来部署服务系统,以便满足系统的弹性需求。但随着业务的进一步增长,k8s的节点数不断的增加,每个月消耗的费用也随之增加,导致了资源的利用率并不平均的问题,特别是在多云环境下。比如有的节点利用率

    2024年02月06日
    浏览(15)
  • 腾讯云 Finops Crane 开发者集训营 - 让云不再“钱”途无量

    腾讯云 Finops Crane 开发者集训营 - 让云不再“钱”途无量

    前言: Finops Crane集训营主要面向广大开发者,旨在提升开发者在容器部署、K8s层面的动手实践能力,同时吸纳Crane开源项目贡献者,鼓励开发者提交issue、bug反馈等,并搭载线上直播、动手实验组队、有奖征文等系列技术活动。既能让开发者通过活动对 Finops Crane 开源项目有深

    2024年02月08日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包