一、工具速览:KRR是什么?
KRR (Kubernetes Resource Recommender)是一款基于Prometheus数据的K8s资源优化工具,专治“资源分配不合理”的顽疾:
✅核心功能
• 智能推荐Pod的CPU/内存Request与Limit值
• 支持Prometheus/Thanos/Victoria等主流监控系统
• 生成JSON/CSV/网页报告,支持Slack通知
✅核心优势
✨无需部署:本地CLI工具即开即用
✨数据可视:通过免费SaaS平台查看推荐依据
✨灵活扩展:自定义算法应对复杂场景
二、工作原理:算法背后的科学 📊
1. 数据采集
分析以下Prometheus指标:
# CPU使用率(5分钟间隔) sum(irate(container_cpu_usage_seconds_total{...}[5m])) # 内存工作集大小 sum(container_memory_working_set_bytes{...})
2. 推荐逻辑
•CPU建议 取历史用量99%分位值作为Request,建议取消Limit以利用闲置资源 [ \text{CPU Request} = P_{99}(\text{CPU Usage}) ]
•内存建议 取过去一周峰值 + 5%缓冲,Request与Limit对齐 [ \text{Memory Request} = \text{Max Usage} \times 1.05 ]
三、极简安装:3种方法任选 🛠️
方法1:Mac/Linux一键安装
brew tap robusta-dev/homebrew-krrbrew install krrkrr --version # 验证安装
方法2:Docker快速启动
docker run -v ~/.kube/config:/root/.kube/config \ us-central1-docker.pkg.dev/.../krr:v1.8.3 \ krr simple
方法3:源码安装
git clone https://github.com/robusta-dev/krrpython krr.py --help
四、实战操作:5分钟上手指南 🚦
场景1:全集群资源诊断
# 生成默认报告(Markdown格式) krr simple -o md > report.md # 查看JSON格式报告 krr simple -o json | jq .
场景2:指定命名空间优化
# 只检查prod命名空间 krr simple --namespace=prod # 排除测试环境 krr simple --exclude-namespaces=test,dev
输出示例:优化建议一目了然
{ "frontend-pod":{ "cpu":{"request":"800m","limit":"None"}, "memory":{"request":"1.2Gi","limit":"1.2Gi"}},"db-pod":{ "cpu":{"request":"2.1","limit":"None"}, "memory":{"request":"4Gi","limit":"4Gi"}}}
五、进阶技巧:解锁隐藏功能 🔑
技巧1:网页可视化报告
# 生成带交互图表的网页报告 krr simple -o html > report.html
技巧2:Slack每日播报
krr slack --token=xoxb-... --channel=#k8s-alerts Slack
技巧3:HPA联动优化
# 结合HPA配置自动调整 krr simple --allow-hpa
六、GitHub仓库 🔑
https://github.com/robusta-dev/krr
最后
以上就是岁月静好最近收集整理的关于K8S工具推荐:Kubernetes资源优化神器KRR:一键诊断集群资源浪费的全部内容,更多相关K8S工具推荐内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复