开发者社区> 开发> 正文
0
0
0
18
打赏
0
分享

Robusta KRR - 一个优化 Kubernetes 的资源分配工具

简介: Robusta KRR - 一个优化 Kubernetes 的资源分配工具
+关注继续查看


Robusta KRR(Kubernetes Resource Recommender)是一个用于优化 Kubernetes 集群中资源分配的命令行工具,它从 Prometheus 收集 pod 使用数据,并建议 CPU 和内存的 requests 和 limits 值,这可以大大降低成本并提高性能。


特征

  • 无需代理:Robusta KRR 是一个在本地机器上运行的 CLI 工具,它不需要在你的集群中运行 Pods。
  • Prometheus 集成:使用内置的 Prometheus 查询收集资源使用数据,自定义查询支持也即将推出。
  • 可扩展策略:轻松创建和使用你自己的策略来计算资源推荐。
  • 未来支持:即将推出的版本将支持自定义资源(例如 GPU)和自定义指标。

根据 Sysdig 最近的一项研究(https://sysdig.com/blog/millions-wasted-kubernetes/),平均而言,Kubernetes 集群有:

  • 69%未使用的 CPU
  • 18%未使用内存

通过使用 KRR 调整容器大小,你可以平均节省 69% 的云成本。

如果你使用 Robusta SaaS,从 v0.10.15 开始回集成 KRR,你可以查看所有建议(也包括以前的建议),按集群、命名空间或名称过滤和排序它们。


工作原理

指标收集

Robusta KRR 使用以下 Prometheus 查询来收集使用数据:

  • CPU 使用:sum(irate(container_cpu_usage_seconds_total{{namespace="{object.namespace}", pod="{pod}", cnotallow="{object.container}"}}[{step}]))。
  • 内存使用:sum(container_memory_working_set_bytes{job="kubelet", metrics_path="/metrics/cadvisor", image!="", namespace="{object.namespace}", pod="{pod}", cnotallow="{object.container}"})。

算法

默认情况下,KRR 使用一个简单的策略来计算资源推荐。它的计算方法如下(确切的数字可以在 CLI 参数中自定义):

  • 对于 CPU,将请求设置为第 99 个百分位数,并且没有限制。这意味着,在 99%的情况下,您的 CPU 请求是足够的。对于剩余的 1%,我们没有设置限制。这意味着您的 Pod 可以突发并使用节点上可用的任何 CPU - 例如其他 Pod 请求但现在未使用的 CPU。
  • 对于内存,使用过去一周内最大值并添加 5%缓冲区。




免责声明:本文章版权归属原创作者所有,由本站用户分享仅供学习交流之用!

参考文档

Linux下做性能分析:perf

Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers

Profiling concepts bookmark_border

What is continuous profiling?

版权声明:本文内容由Webmeng实名注册用户自发贡献,版权归原作者所有,搜寻云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《搜寻云开发者社区用户服务协议》和《Webmeng开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

评论

登录后可评论
相关文章
国内收不到google adsense的PIN可做的操作
国内收不到google adsense的PIN可做的操作
0
远程桌面连接出现了内部错误的问题
远程桌面连接出现了内部错误。我尝试以管理员身份登录,还是无法解决。重启电脑虽然可以暂时解决问题,但错误还是会随机出现。如何轻松地解决Win10远程连接提示内部错误的问题?”
0
新开阿里云服务器必须在安全组放行80,443端口 否则网站打不开
新开阿里云服务器必须在安全组放行80,443端口 否则网站打不开
0
域名解析到的阿里云的网站打不开
Re我的域名解析成功了。但是还是访问不了网站
0
Linux系统内核升级
mainline指由Linus Torvalds亲自制作的内核发布版,是官方当前最新版本的kernel source。在Torvalds对所有其他程序员所做出的重大变化进行整合,并且对先前版本的bug进行几轮修复之后,大约每十周正式发布一个新版本。mainline事实上代表着一个linux kernel分支,这个分支有另一个名称,叫做vanilla。
0
Linux系统yum的安装、升级、卸载命令详解
Linux系统yum的安装、升级、卸载命令详解
0
域名到期后多久可以注册
域名到期后,并不会立即被他人注册,而是经历了一定的释放周期。这是因为域名注册机构为了保护域名的合法权益,会设置一段时间用于处理续期、赎回以及其他相关操作。
0
blob:https格式的视频链接怎么下载
因此这些链接具有一定的时效性,仅在当前会话中有效。 由于 blob URL 是针对浏览器内存中的数据生成的临时链接,直接通过复制链接或其他方式在其他应用程序或设备上访问或下载该视频是不可行的。
0
【宝塔一键部署】项目包构建文档
【宝塔一键部署】项目包构建文档
0
windows云主机挂载磁盘的方法是什么
打开“计算机管理”工具。可以通过右键点击“计算机”图标,然后选择“管理”来打开该工具。
0
Linux更新指令 升级指令
yum命令用于redhat系统下的软件安装和更新,是redhat和Fedora系统中rpm的软件包管理器,使用前要配置好yum源,可以使用极为相似的centos源,而且免费。yum提供了安装,查找,删除软件包的命令,好记又好用。
0


+关注
7
文章
0
问答
0
视频

文章排行榜
最热
最新

相关电子书
更多
基于Lindorm快速构建高效的监控系统
立即下载
Elasticsearch全观测技术解析与应用(构建日志、指标、APM统一观测平台)
立即下载
基于资产配置业务场景下全链路监控平台
立即下载