【腾讯云FinOps Crane 集训营】 Crane入门

news2024/11/24 6:05:00

前言

随着云计算的快速发展和云原生应用的兴起,容器技术成为了现代化应用部署和管理的重要工具。

越来越多的公司正在选择将应用运行在云上或者自建的 Kubernetes 集群上,但是许多机构的调研

发现,绝大多数的用户集群资源利用率并不高,浪费严重。本文将会演示如何快速搭建一个

Kubernetes+Crane 环境

Crane是什么

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

Crane整体架构

 Craned

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

  • Craned
  • Dashboard

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

关键特点与功能

成本可视化和优化评估

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

推荐框架

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

基于预测的水平弹性器

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

负载感知的调度器

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

拓扑感知的调度器

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

基于 QOS 的混部

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

Crane 安装

环境准备

安装kubectl

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

安装helm

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

安装kind

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

安装docker

docker官方文档:https://docs.docker.com/get-docker/

安装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

确保所有 Pod 都正常运行:

pod的启动需要一定的时间,可以等待几分钟之后再查看集群的状态是否都Running

kubectl get pod -n crane-system

 访问Dashboard

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

访问127.0.0.1:9090即可

展示页面

添加集群

 资源推荐

使用智能弹性EffectiveHPA

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

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

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

 Crane总结

        总的来说,Crane是一个功能丰富,易于使用的管理工具。具有简单易用,实时监控,自动化管理,可视化分析等关键特点和功能。通过Crane,用户可以轻松创建、管理和部署容器化应用,实现应用的快速交付和高效运行。

关于腾讯云 Finops Crane 集训营:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM8 使用74HC164外扩IO

背景 在嵌入式开发过程中,经常使用时、甚至设计时候,考虑成本等因素,需要外扩IO。这里就是使用STM8S003F3P6,这个芯片比较常用的,这个芯片封装很小,只有20个管脚的MCU,实际产品上用的非常多。 …

二进制部署高可用k8s集群

第一章、前置知识点 1.1 生产环境部署K8S集群的两种方式 kubeadm Kubeadm是一个K8S部署工具,提供kubeadm init 和 kubeadm join,用于快速部署Kubernetes集群。 二进制包 从GitHub下载发行版的二进制包,手动部署每个组件,组成…

Idea部署Tomcat项目位置问题

Tomcat部署路径问题 1 默认情况 Tomcat安装目录下有webapps,是部署项目的,项目就运行在那里。 但是IDEA会为每个项目都拷贝一份足够的Tomcat文件放在c盘 ${user.home}/.IntelliJIdea/system/tomcat 或者 ${user.home/AppData/Local/JetBrains/IntelliJIdea2021.1/tomcat这样做…

【MySQL新手到通关】第二章 MySQL卸载安装

文章目录 1. MySQL的卸载1.1 停止MySQL服务1.2 软件的卸载 2. MySQL的下载、安装、配置2.1 软件的下载2.2 MySQL8.0 版本的安装2.3 配置MySQL8.02.4 配置MySQL8.0 环境变量2.5 MySQL5.7 版本的安装、配置2.6 安装失败问题 3. MySQL 登录3.1 服务的启动与停止3.2 自带客户端的登…

提高效率与代码重用:使用React Native和小程序容器简化开发

React Native是一个强大的前端跨端框架,可以帮助开发者高效地构建移动应用程序,并充分利用跨平台开发的优势,同时提供接近原生应用程序的性能和用户体验。它具有许多技术上的优势: 跨平台开发:使用React Native&#x…

AIGC持续火爆大模型争相推出,庞大市场造就算力供应模式演变

本图由AI生成 文/王吉伟 近期的AIGC领域仍旧火爆异常。 但火的不只是AIGC应用,还有巨头之间的AI竞赛,以及接连不断上新的AI大模型(LLM,Large Language Model)。 面对ChatGPT带来的技术冲击,为了研发谷歌多…

Spring事务失效常见的五种方式及其解决方案【源码篇】

一、前言 在Web 开发中,Spring 框架已经成为了众多开发者的首选。Spring 的声明式事务管理是其中最重要的特性之一,它可以帮助我们简化业务逻辑的复杂度,并且确保在出现异常情况时数据的一致性。 事务失效情况很常见,但我们只要…

对计算机方向科研工作者的建议 - 易智编译EaseEditing

如果你正在进行计算机科学研究,以下是一些建议可以帮助你: 确定研究兴趣: 选择一个你感兴趣的研究领域或问题,并确保你对该领域有足够的知识基础和热情。 深入学习: 通过阅读学术论文、参加研讨会和课程,…

有意思的CVE-2022-0337复现

前言 前两天在刷tw,看到了个比较有意思的一个CVE漏洞,价值奖励是10000美🔪,比较好奇的是价值10000美🔪的漏洞是什么样子的[苦涩],漏洞利用就是需要在浏览器中进行用户交互才能触发该漏洞,但由于…

vr船舶装配模拟驾驶平台直观形象呈现操作流程和原理

船舶由成千上万种零件构成,需要众多的工业部门共同合作才能够完成这一庞大工程。除特有的船体建造技术外,造船还涉及到机械、电气、冶金、建筑、化学以至工艺美术等各个领域,因此船舶建造是一项劳动密集型、技术密集型和资金密集型的产业。 船…

【OpenAI】DALL·E 2,让我来带你认识一下这位来自AI界的艺术家

个人主页:【😊个人主页】 文章目录 前言什么是DALL-E 2 ?介绍的怎么厉害,它又能干啥呢?基本功能新功能编辑变体功能 总结 前言 DALL-E 2 是一种基于语言的人工智能图像生成器,可以根据文本提示创建高质量的…

【学习日记2023.5.22】 之 套餐模块完善

4. 功能模块完善之套餐模块 4.1 新增套餐 4.1.1 需求分析与设计 产品原型 后台系统中可以管理套餐信息,通过 新增功能来添加一个新的套餐,在添加套餐时需要添加套餐对应菜品的信息,并且需要上传套餐图片。 新增套餐原型: 当填…

PMP-项目经理的角色

一、项目经理的作用 项目经理在领导团队达成项目目标方面发挥着至关重要的作用。一般来说,项目经理从项目启动时就开始参与项目直至项目结束,在这个过程中,项目经理发挥着对项目的规划、协调、控制等作用,确保与产品保持一致&…

用 Python 进行办公自动化都需要学习什么知识呢?

Python 自动化办公,无外乎就是 excel,ppt,word,再加上数据分析、爬虫等技能 下面我就来逐一介绍各项技能的基本使用 基本知识 1. Python基础知识: 包括语法、变量、数据类型、条件语句、循环语句、函数等基本概念和用…

代码随想录训练营Day48|● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

目录 学习目标 学习内容 198.打家劫舍 213.打家劫舍II 337.打家劫舍III 学习目标 198.打家劫舍 213.打家劫舍II 337.打家劫舍III 学习内容 198.打家劫舍 198. 打家劫舍 - 力扣(LeetCode)https://leetcode.cn/problems/house-robber/ class Soluti…

Hexo博客查图片并调整位置大小

Hexo博客查图片并调整位置&大小 🌈Description: ​ Markdown写文章插入图片,在hexo博客中,图片的大小似乎没有按照个markdown的语法生效,本文将解决此问题。 现有问题描述 obsidian中插入图片的语法: !…

当四款AI大模型遇上考公真题,谁被难倒了?

在当今社会,人工智能(AI)正以不可思议的速度发展,并在各个领域崭露头角,给人们的生活和工作带来许多便利。AI大模型被誉为人类“第二大脑”,成为人们学习、生活、工作的 “智能助手”。 公务员考试在我国教…

firewalld防火墙

firewalld防火墙 1:firewalld概述 firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。firewalld和iptables都是用来管理防火墙的工具(属于用户态&a…

如何使用ChatGPT对论文进行润色

本文提供两种基于chatGPT的润色方式: (1)在chatGPT中利用editGPT插件润色 (2)chatGPT对话框引导chatGPT按照具体的意见进行润色。 1. 安装editGPT插件 问:为什么安装 editGPT? 答:…

STM32手柄PS2

PS2手柄介绍 PS2手柄由手柄与接收器两部分组成,手柄主要负责发送按键信息;接收器与单片机(也可叫做主机)相连,用于接收手柄发来的信息,并传递给单片机,单片机也可通过接收器,向手柄…