【腾讯云 Finops Crane 集训营】深入了解 Crane

目录

目录

前言

一、Crane的发展背景

二、Crane是什么?

 三、Crane的特点

四、Crane的优势

五、Crane使用

1.环境准备

2、安装Crane

3、访问dashboard

4、页面展示

5、功能应用

五.总结



前言


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

FinOps(Financial Operations)是一种管理云计算成本的方法,它强调将云计算资源的成本与使用情况及业务需求相匹配,从而提高企业的效率和效益。在当前云计算环境下,FinOps已经成为了越来越多企业的管理方法。本文将会介绍Crane这个云计算成本管理工具,并详细介绍如何在实际应用中使用Crane进行云计算资源成本管理。
在这里插入图片描述

一、Crane的发展背景

我们先讲下Crane的发展背景:

1998 年亚马逊发布论文:《分布式计算宣言》,分布式、微服务架构初现雏形;

20 年代传入中国,以阿里、腾讯为代表首先进行服务 ”单体拆分至微服务“ 的架构演化;

在云技术成熟之后,架构演进的阶段来到了云原生时代。

2017 年,Crane 项目开源,旨在为云原生用户提供云成本优化一站式解决方案;

2022 年,中国电子技术节能协会2022年“云计算中心科技奖”正式颁布,腾讯云Crane荣获“云计算中心科技奖卓越奖”,成为国内首个获得该国家级奖项的云原生解决方案;

为何架构演进的历程会青睐云原生技术?具体原因可参看《云原生的崛起 一 :市场竞争中真正敏捷力量 !》 这里不做过多介绍。

Crane 云上资源极致利用,降本增效之四大必杀技
Crane 依托于云原生技术,结合监控可视化、水平弹性、负载及拓扑感知 等多项硬核科技,将优化措施应用到云成本的多个关键环节,从而辅助用户决策、简化运维效率、提升系统稳态、全面降本增效。


Crane 是国内第一个基于云原生技术的成本优化开源项目,全球范围内首个开源的FinOps认证解决方案。遵循 FinOps 标准,旨在为云原生用户提供云成本优化一站式解决方案,帮助企业降本增效。

目前,Crane 已经在腾讯、网易、小红书、思必驰、酷家乐、明源云、等多家互联网科技公司实现部署应用。


开源地址:https://github.com/gocrane/crane

二、Crane是什么?


Crane是一个开源的云计算成本管理工具,它可以帮助企业在使用云计算资源时更好地管理成本。Crane可以帮助企业在云计算环境中实现资源成本的透明化管理,从而更好地控制成本,提高效益。Crane可以通过API将云计算资源的使用情况与成本进行关联,并提供实时的成本分析和预测功能。

在这里插入图片描述

Crane的出现可以解决K8S原生能力的不足:

  • 资源配置浪费
    基于经验的资源配置不准导致大量浪费
  • 弹性不及时
    基于阈值的弹性的滞后性导致业务来不及弹
  • 业务稳定性
    CPU是可压缩资源,CPU承压时,所有Pod等比受损,独占式绑核能力造成较大资源浪费

 三、Crane的特点

在这里插入图片描述

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


基于预测的水平弹性器
EffectiveHorizontalPodAutoscaler 支持了预测驱动的弹性。它基于社区 HPA 做底层的弹性控制,支持更丰富的弹性触发策略(预测,观测,周期),让弹性更加高效,并保障了服务的质量。
推荐框架
提供了一个可扩展的推荐框架以支持多种云资源的分析,内置了多种推荐器:资源推荐,副本推荐,HPA 推荐,闲置资源推荐。


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


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


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


易于使用
Crane非常易于使用。它可以与各种云计算平台集成,并提供简单易懂的用户界面,使用户可以轻松地使用它来管理云计算资源的成本。


开源
Crane是一个开源的工具,它可以帮助企业在使用云计算资源时更好地管理成本。Crane的开源性质使得企业可以自由地使用它,并根据自己的需求进行二次开发。

四、Crane的优势


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


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


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


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

五、Crane使用

1.环境准备


安装 kubectl
kubectl官方文档:https://kubernetes.io/zh-cn/docs/tasks/tools/
下载kubectl

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"


下载kubectl的校验和文件:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"


根据校验和文件验证kubectl:

echo "$(cat kubectl.sha256)  kubectl" | shasum -a 256 --check


安装 Helm
Helm官方文档:https://helm.sh/zh/docs/intro/install/

下载

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3


赋权

chmod 777 get_helm.sh


安装

./get_helm.sh


安装 kind
kind官方文档:https://kind.sigs.k8s.io/docs/user/quick-start/#installation

下载

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.18.0/kind-linux-amd64



赋权

chmod +x ./kind


安装 Docker
docker官方文档:https://docs.docker.com/get-docker/
参考往期文章:docker安装部署实战详细手册

2、安装Crane


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

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


如果上面安装命令报网络错误,可以下载本地的安装包执行安装,在命令行中执行以下安装命令:

bash installation/local-env-setup.sh


增加环境变量

export KUBECONFIG=${HOME}/.kube/config_crane


验证安装完成,服务都为running即可
在这里插入图片描述

3、访问dashboard

增加端口映射后,访问127.0.0.1:9090即可

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

4、页面展示

集群总览

 在这里插入图片描述

在这里插入图片描述

 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、功能应用


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

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

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

测试验证
安装 Metrics Server:

kubectl apply -f installation/components.yaml


启动一个 Deployment 用 hpa-example 镜像运行一个容器, 然后将其暴露为一个 服务(Service)

kubectl apply -f https://raw.githubusercontent.com/gocrane/crane/main/examples/autoscaling/php-apache.yaml
kubectl apply -f https://raw.githubusercontent.com/gocrane/crane/main/examples/analytics/nginx-deployment.yaml


创建 EffectiveHPA

kubectl apply -f https://raw.githubusercontent.com/gocrane/crane/main/examples/autoscaling/effective-hpa.yaml


增加负载:

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"

在这里插入图片描述

观察负载情况:

kubectl get hpa ehpa-php-apache --watch

在这里插入图片描述

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

推荐规则
推荐框架会自动分析集群的各种资源的运行情况并给出优化建议。Crane 的推荐模块会定期检测发现集群资源配置的问题,并给出优化建议。智能推荐提供了多种 Recommender 来实现面向不同资源的优化推荐。

推荐规则查看:

kubectl get RecommendationRule

在这里插入图片描述

workloads-rule 这个推荐规则的资源对象如下所示:

  1. 每隔 24 小时运行一次分析推荐,runInterval 格式为时间间隔,比如: 1h,1m,设置为空表示只运行一次。
  2. 待分析的资源通过配置 resourceSelectors 数组设置,每个 resourceSelector 通过 kind、apiVersion、name 选择 K8s 中的资源,当不指定 name 时表示在 namespaceSelector 基础上的所有资源。
  3. namespaceSelector 定义了待分析资源的命名空间,any: true 表示选择所有命名空间。
  4. recommenders 定义了待分析的资源需要通过哪些 Recommender 进行分析。目前支持两种 Recommender:
  • 资源推荐(Resource): 通过 VPA 算法分析应用的真实用量推荐更合适的资源配置
  • 副本数推荐(Replicas): 通过 HPA 算法分析应用的真实用量推荐更合适的副本数量

五.总结

从安装部署到实践测试,流程都非常清晰明了,初学者也是能够快速手上手实践,所以Finops Crane在使用过程是非常方便的,能够更快地完成任务;另外它的功能也非常成熟,安全,一些成本计算,推荐资源等等都非常实用,而且它的页面非常简洁明了,功能模块的布局也非常清晰,看着让人非常舒适,


参考文献

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元斗耳月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值