【腾讯云 Finops Crane 集训营】好一个降本增效的神器
兄弟们,最近发现了一个降本增效的神器,可以很方便对k8s集群进行监测和调度,非常硬核,做云原生的小伙伴千万不要错过。
一直以来,云原生用户在确保业务稳定和优化运营成本之间,做着两难的选择,为了保证业务的稳定运行,多数用户面临着服务资源配置浪费、现有资源难以管理、计费方式不够灵活透明等诸多问题。
云原生是当下最热门的技术之一,它可以帮助企业快速构建、部署和管理分布式应用,提高业务的敏捷性和可靠性。但是,云原生也带来了一些挑战,其中之一就是成本管理。随着云资源的规模和复杂度的增加,如何有效地监控、分析和优化云资源的使用和成本,成为了企业面临的一个重要问题。
我与Crane的机缘
为了解决这个问题,我遍地寻良医,是茶不思饭不想,头发都掉光光了,最近终于有所收获,我在CSDN社区中找到了腾讯云的 Finops Crane 集训营,一开始我以为就是普通的一个插件,没想到深入学习了 Finops Crane 这个基于云原生的成本优化平台之后,打通了我的任督二脉。Finops Crane 是腾讯云原生团队开源的一个项目,它遵循 FinOps 标准,旨在为云原生用户提供云成本优化一站式解决方案。Finops Crane 已经在腾讯内部自研业务实现了大规模落地,并荣获了国家级的“云计算中心科技奖卓越奖”12。
在集训营中,我通过动手实验,体验了 Finops Crane 的各项功能,包括成本展示、成本分析、成本优化等,并对其进行了深入的探索和思考。在这篇博文中,我将分享我的实验过程和心得体会,希望能够对有兴趣学习 Finops Crane 的读者有所帮助。
为什么说Crane能够降本增效呢
这就不得不说到我们传统的云原生问题,现在云原生时代下,很多业务需求是直接使用K8s直接上手管控的,但是K8s也存在一定的不足,如下图所示:
Crane通过智能调度可以有效进行成本优化,大概如下几步:
- 从监控系统拉取用量数据
- 从Kubernetes平台拉取作业配置信息
- 从云厂商计费API拉取资源单价
- 通过多种算法分析成本组成并给出优化建议
Crane的主要功能
Crane 的工作原理主要依托于云原生技术,结合监控预测、调度增强、业务混部等多项硬核科技,将优化措施应用到了云成本优化的多个关键环节。这样可以帮助用户做出决策,简化运维效率,提升系统稳态,全面降低成本。功能结构图如下:
我大致自己总结了一下相关功能,这样明确点:
- 支持使用多种容器编排引擎来管理容器应用程序的生命周期,包括Docker、Kubernetes。
- 提供简便上手的方式来构建、发布容器镜像,支持使用模板和插件来自定义构建流程。
- 提供集成的监控和日志记录功能,可以帮助开发者及时发现和解决应用程序的问题。
- 可以将多个容器组合成一个完整的应用程序,提供灵活的网络和存储选项,以便更好管理和扩展应用程序。
- 使用简洁明了的配置文件格式来管理容器应用程序的配置,支持使用环境变量和参数来动态配置应用程序。
- 提供成本可视化和优化评估,多维度的成本洞察,优化评估。通过 Cloud Provider 支持多云计费。
- 基于 QOS 的混部,QOS相关能力保证了运行在 Kubernetes 上的 Pod 的稳定性。具有多维指标条件下的干扰检测和主动回避能力,支持精确操作和自定义指标接入;具有预测算法增强的弹性资源超卖能力,复用和限制集群内的空闲资源;具备增强的旁路cpuset管理能力,在绑核的同时提升资源利用效率。
实操搭建Crane
理论知识说的再多,不如真刀真枪的干!开始实战搭建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+
- 安装 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
- 安装 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
- 验证安装是否成功
使用如下命令查看安装是否成功;
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
- 访问 Dashboard
这里我们通过端口映射访问 Dashboard:
kubectl -n crane-system port-forward service/craned 9090:9090
这样 Crane 就搭建好了
使用 Crane 的优势
我们必须要清楚地明白使用一个工具的目的,才能带来正确的效果,我对Crane的优势总结如下:
- 实时监控成本
Crane可以帮助企业实时监控云计算资源的使用情况,并将其与成本进行关联,提供实时的成本分析和预测功能。这样,企业就可以更好地控制成本,提高效益。
- 优化资源利用率
Crane可以帮助企业优化云计算资源的利用率。它可以帮助企业发现不必要的资源浪费,并提供优化建议,使企业可以更好地利用云计算资源,提高资源利用效率。
- 提高决策效率
Crane可以帮助企业更好地了解云计算资源的成本和使用情况。这样,企业就可以更好地做出决策,以满足业务需求,并在成本和效益之间取得平衡。
- 智能预测
Crane可以帮助企业完成流量智能预测,进行自动扩缩容,应对大促节假日等有规律的流量洪峰。
总结
在公司也推广了一段时间,并且已经成功应用到生产环境中,经过一段时间的试用,说一下我对Finops Crane的个人看法。
首先从安装部署到落地实践测试的过程中,没有遇到什么疑难杂症,易用性非常好,无论是初学者还是专业人士,都可以很容易地上手使用。这使得Finops Crane在使用过程中非常方便,能够帮助用户更快地完成任务。
其次在UI页面的视觉上,清爽度很高、简约而又不简单,配置与管理上也很便捷,可以快速地进行参数设置和管理,包括一键带入、生成命令等功能。
再者在功能的体验上,确实很强大,包括成本的计算、弹性伸缩的预判、资源推荐等等让人眼前一亮,这使得公司很容易计算K8S的整体成本并减少资源的浪费。
最后有两个建议希望后续能够加强:
为了进一步提高Finops Crane产品的品牌知名度和用户满意度,还是需要在用户社区建设和品牌推广方面加强工作。鉴于Finops Crane是一款新兴的产品,用户社区的支持相对较弱,用户在使用过程中可能会遇到一些问题和困难,需要自行摸索和解决,这可能会带来一些不便和障碍。因此,更需要加强产品的创新和技术研发,不断优化产品性能和用户体验,例如提升推荐命令的精准性以及推荐页面的异常情况等方面。
关于腾讯云 Finops Crane 集训营
关于腾讯云 Finops Crane
集训营:
Finops Crane
集训营主要面向广大开发者,旨在提升开发者在容器部署、K8s层面的动手实践能力,同时吸纳 Crane
开源项目贡献者,鼓励开发者提交 issue
、bug
反馈等,并搭载线上直播、动手实验组队、有奖征文等系列技术活动。既能让开发者通过活动对 Finops Crane
开源项目有深入了解,同时也能帮助广大开发者在云原生技能上有实质性收获。
为奖励开发者,我们特别设立了积分获取任务和对应的积分兑换礼品。
-
活动介绍送门:
https://marketing.csdn.net/p/038ae30af2357473fc5431b63e4e1a78
-
开源项目:
https://github.com/gocrane/crane