【腾讯云 Finops Crane 集训营】我的 Crane 云成本优化之旅

我最近参加了Crane 集训营,Crane是由腾讯云主导开发的开源项目,被誉为云原生技术的成本优化解决方案,获得了FinOps基金会的认证。在我参加了腾讯云联合CSDN举办的“腾讯云 Finops Crane 开发者集训营”之后,我对这个项目有了更深入的了解,现在我想与你们分享我的学习和实践体验。

目录

腾讯云 Finops Crane 的介绍和背景

对Crane 项目的理解

主要功能

活动介绍

活动体验

实验内容介绍

Crane 的整体架构

实验准备步骤 

本地安装 Crane

检查安装状态

访问 Crane Dashboard

添加本地集群:

成本展示

对 Finops Crane 项目的应用及个人总结分析


腾讯云 Finops Crane 的介绍和背景

在云原生技术不断发展和普及的大背景下,腾讯云主导开源的Crane项目应运而生。这是国内第一个基于云原生技术的成本优化项目,它遵循了FinOps标准,并且已经获得FinOps基金会授予的全球首个认证降本增效开源方案。Crane项目的设计初衷是为了帮助企业更好地管理和扩展其Kubernetes集群,从而实现更高效的云原生应用管理。

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

活动相关直播视频:
Finops Crane 开源项目经验分享 【可回看】
https://live.csdn.net/room/csdnnews/CPEN2JKh

 腾讯云 Finops Crane开发者集训营【可回看】
https://live.csdn.net/room/csdnnews/83xhNo4C
 

对Crane 项目的理解

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

主要功能

Crane的工作原理主要依托于云原生技术,结合监控预测、调度增强、业务混部等多项硬核科技,将优化措施应用到了云成本优化的多个关键环节。这样可以帮助用户做出决策,简化运维效率,提升系统稳态,全面降低成本。

这个项目的创新之处在于,不仅关注云成本的可视化问题,而且通过对问题的发现,然后通过机型的选择、计费类型的调优等运营手段实现降本。这是一个全新的方式,将技术和财务结合在一起,从而更好地管理和优化云成本。

活动介绍

由腾讯云联合 CSDN 推出的“腾讯云 Finops Crane 开发者集训营”活动,我有幸参与其中。该活动主要面向广大开发者,旨在通过线上直播、组织动手实验、有奖征文,开源项目贡献者招募这一系列技术实践活动,帮助我们对 Finops Crane 开源项目有一个深入的了解,同时也能帮助我们在云原生技能上有实质性收获。

活动地址链接

活动体验

实验内容介绍

随着云原生技术的发展,越来越多的公司正在选择将应用运行在云上或者自建的 Kubernetes 集群上,但是许多机构的调研发现,绝大多数的用户集群资源利用率并不高,浪费严重。本次训练营将会演示如何快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用。

Crane 的整体架构

实验准备步骤 

依据你的本地环境系统参考对应的文档安装即可,部分安装需要科学上网。

安装 kubectl

安装 kubectl:安装工具 | Kubernetes

安装 Helm

安装 Helm:Helm | 安装Helm

安装 kind

安装 kind:kind – Quick Start

安装 Docker

安装 docker:Get Docker | Docker Documentation

安装完后注意确保Docker已开启,否则后续安装Crane失败!!! 

本地安装 Crane

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

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

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

注意:这里也需要科学上网,训练营的小伙伴是使用助教提供的本地的安装包执行安装,这里就顺利过去了。

检查安装状态

提示:Pod 的启动需要一定的时间,等几分钟后输入命令查看后集群状态是否都 Running

kubectl get pod -n crane-system

访问 Crane Dashboard

一定要注意!!!

每一个新窗口操作前请把配置环境变量加上(不然会出现8080端口被拒绝的提示)

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

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

访问 Crane Dashboard  http://127.0.0.1:9090/

添加本地集群:

安装Metrics Server

对应文件可以到GitHub上找到,我们这里也是已经提前下载到实验手册中,所以路径不同

用以下命令安装 Metrics Server:

kubectl apply -f installation/components.yaml
kubectl get pod -n kube-system

创建测试应用

用以下命令启动一个 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

运行以下命令查看 EffectiveHPA 的当前状态:

kubectl get ehpa

输出类似于:

NAME         STRATEGY   MINPODS   MAXPODS   SPECIFICPODS   REPLICAS   AGE
php-apache   Auto       1         10                       0          3m39s

增加负载

# 在单独的终端中运行它
# 如果你是新创建请配置环境变量 
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"

现在执行:

# 准备好后按 Ctrl+C 结束观察
# 如果你是新创建请配置环境变量 
export KUBECONFIG=${HOME}/.kube/config_crane

kubectl get hpa ehpa-php-apache --watch

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

成本展示

Crane Dashboard 提供了各式各样的图表展示了集群的成本和资源用量,

集群总览

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

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

登陆 Grafana 的方式可以通过以下命令建立一个 port-mapping:

# 如果你是新创建请配置环境变量 
export KUBECONFIG=${HOME}/.kube/config_crane

kubectl -n crane-system port-forward service/grafana 8082:8082

访问本地 Grafana(账号密码:admin/admin): http://127.0.0.1:8082/grafana/login

对 Finops Crane 项目的应用及个人总结分析

首先,Crane不仅仅是一个帮助用户更轻松地管理云成本的FinOps平台,它还致力于确保应用的质量。为了实现这一目标,Crane具有一系列强大的功能,其中包括:

  • 成本可视化和优化评估:Crane提供一系列的exporters,它们可以收集云资源的价格和计费数据,并将这些数据发送到你的监控系统,例如Prometheus。这个功能支持多维度的成本洞察和优化评估,同时支持多云价格。

  • 推荐框架:Crane提供了一个可插拔的框架,用于分析云资源并给出优化建议。它支持一些内置的推荐器,如工作负载资源/副本,空闲资源等。

  • 预测驱动的水平自动扩展:Crane的EffectiveHorizontalPodAutoscaler支持预测驱动的自动扩展。这使用户能够预测即将到来的高峰流量,并提前扩展他们的应用,同时也可以知道高峰流量何时结束,并优雅地缩减应用。

此外,Crane还提供了负载感知调度和增强QOS的共同定位等特性。所有这些特性都以一个简单但有效的方式,帮助用户提升运维效率,提升系统稳态,全面降低成本。

在实践中,我最喜欢Crane的是它的Dashboard,一个易于使用的用户界面,可以让我更好地理解和控制我的云资源。此外,我也欣赏Crane的架构,它的核心组件Craned管理CRDs和APIs的生命周期,Fadvisor 提供一组 Exporter 计算集群云资源的计费和账单数据并存储到你的监控系统,比如 Prometheus。Fadvisor 还通过 Cloud Provider 支持了多云计费的 API。

总的来说,Crane项目是一个基于云原生技术的云成本优化解决方案,它利用先进的技术手段,以达到提升效率、降低成本的目的,对云计算行业的发展有着重要的推动作用。

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

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值