【腾讯云 Finops Crane 集训营】 了解高质量和降本平台

1. 什么是Finops Crane?

FinOps Crane 是一个腾讯云主导的 开源的工具,用于自动化云资源管理和成本优化。它可以帮助团队更好地管理云资源,避免浪费和不必要的支出。FinOps Crane 可以与多个云服务提供商集成,并提供一系列功能,例如自动化资源调整、成本分析和警报、资源标记和归档等。旨在为用户提供便捷、高效、安全的数字资产管理和交易服务。Finops Crane 提供了一系列功能,包括数字资产交易、数字资产管理、数字资产托管等服务,同时还提供了多种数字货币的交易对,满足了用户的多样化需求。

核心概念

应用资源优化模型

资源优化是 FinOps 中常见的优化手段,基于 Kubernetes 应用的特点总结出云原生应用的资源优化模型:

时间序列预测算法-DSP

时间序列预测是指使用过去的时间序列数据来预测未来的值。时间序列数据通常包括时间和相应的数值,例如资源用量、股票价格或气温。时间序列预测算法 DSP(Digital Signal Processing)是一种数字信号处理技术,可以用于分析和处理时间序列数据。

离散傅里叶变换(DFT)就是DSP领域常用的一种算法。DFT是一种将时域信号转换为频域信号的技术。通过将时域信号分解成不同的频率成分,可以更好地理解和分析信号的特征和结构。在时间序列预测中,DFT可以用于分析和预测信号的周期性和趋势性,从而提高预测的准确性。

Crane使用在数字信号处理(Digital Signal Processing)领域中常用的的离散傅里叶变换、自相关函数等手段,识别、预测周期性的时间序列。

系统架构

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 部署在集群的节点上。

快速开始

部署环境要求

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

安装

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

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

确保所有 Pod 都正常运行:

$ export KUBECONFIG=${HOME}/.kube/config_crane $ kubectl get deploy -n crane-system NAME READY STATUS RESTARTS AGE crane-agent-5r9l2 1/1 Running 0 4m40s 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-node-exporter-4wk8b 1/1 Running 0 4m40s prometheus-server-fb944f4b7-4qqlv 2/2 Running 0 4m46s

访问 Crane Dashboard

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

安装命令行工具

安装 kubectl-crane

你可以通过以下任意方式来安装 kubectl-crane 命令行工具

  • 一键安装.
  • 使用 krew 安装.
  • 通过源码构建.

前提条件

  • kubectl: 

kubectl 是 Kubernetes 命令行工具,可让您控制 Kubernetes 集群

一键安装

Linux

export release=v0.2.0 export arch=x86_64 curl -L -o kubectl-crane.tar.gz https://github.com/gocrane/kubectl-crane/releases/download/${release}/kubectl-crane_${release}_Linux_${arch}.tar.gz tar -xvf kubectl-crane.tar.gz cp kubectl-crane_${release}_Linux_${arch}/kubectl-crane /usr/local/bin/

Mac

export release=v0.2.0 export arch=arm64 curl -L -o kubectl-crane.tar.gz https://github.com/gocrane/kubectl-crane/releases/download/${release}/kubectl-crane_${release}_Darwin_${arch}.tar.gz tar -xvf kubectl-crane.tar.gz cp kubectl-crane_${release}_Darwin_${arch}/kubectl-crane /usr/local/bin/

使用 krew 安装

Krew 是 kubectl 命令行工具的插件管理器。

在你的机器上安装和设置 Krew。

然后安装 kubectl-crane 插件:

kubectl krew install crane

通过源码构建

git clone https://github.com/gocrane/kubectl-crane.git cd kubectl-crane export CGO_ENABLED=0 go mod vendor go build -o kubectl-crane ./cmd/

然后将项目根目录下的 kubectl-crane 可执行文件移动到 PATH 路径下。

2. Finops Crane 的特点

  • 开源:FinOps Crane 是一个开源项目,可以免费使用和定制。
  • 多云支持:FinOps Crane 可以与多个云服务提供商集成,包括 AWS、Azure 和 Google Cloud。
  • 自动化资源管理:FinOps Crane 可以自动化资源调整、标记和归档,帮助团队更好地管理云资源。
  • 成本优化:FinOps Crane 提供成本分析和警报功能,帮助团队识别和避免不必要的支出。
  • 可扩展性:FinOps Crane 可以根据团队的需求进行定制和扩展,以满足不同的业务场景。

3. Finops Crane 的优缺点

3.1 优点

  • 自动化资源管理:FinOps Crane 可以自动化管理云资源,包括调整、标记和归档,减少了手动管理的工作量。
  • 成本优化:FinOps Crane 提供成本分析和警报功能,帮助团队识别和避免不必要的支出。
  • 多云支持:FinOps Crane 可以与多个云服务提供商集成,适用于多云环境的业务场景。
  • 开源:FinOps Crane 是一个开源项目,可以免费使用和定制。

3.2 缺点

  • 学习成本:使用 FinOps Crane 需要一定的学习成本,特别是对于没有使用过类似工具的团队。
  • 集成复杂性:与多个云服务提供商集成可能需要一些复杂的配置和管理。
  • 可能需要额外的资源:为了运行 FinOps Crane,可能需要额外的资源来支持其运行,例如计算和存储资源。

4. 总结

Finops Crane 提供的成本模型可以很好地对集群资源进行成本分析,并且可以基于分析结果提供合理的推荐规则。通过数据可视化,可以清晰地看到成本下降的趋势,非常直观。更可贵的该工具是开源免费的,希望更多的开发者能加入该项目和社区中,为开源事业添砖加瓦,也希望Finops Crane 在后面能增添更加牛x的功能,祝愿Finops Crane 能发展的越来越号

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_23177609/article/details/130816617