监控pod的资源使用量
设置合适的 资源 requests 和 limits 对充分利用 Kubernetes 集群资源来说十分重要。如果 requests 设置得太高,集群节点利用率就会比较低,这样就白白浪费了金钱。如果设置得太低,应用就会处于 CPU 饥饿状态,甚至很容易被 OOM Killer 杀死。 所以如何才能找到 requests 和 limits 的最佳配置呢?
可以通过对容器在期望负载下的资源实际使用率进行监控来找到这个最佳配置。当然一旦应用暴露于公网,都应该保持监控并且在需要时对其资源的 reques limits 进行调节。
收集、获取实际资源使用情况
Kubelet 自身就包含了一个名为 cAdvisor agent ,它会收集整个节点和节点上运行的所有单独容器的资源消耗情况。 集中统计整个集群的监控信息需要运行 个叫作 Heapster 的附加组件。
Heapste pod 的方式运行在某个节点上,它通过普通的 Kubrnetes Service 暴露服务,使外部可以通过一个稳定的 IP 地址访问。它从集群中所有的 cAdvisor 收集数据,然后通过一个单独的地址暴露。
图中的箭头表示监控数据流动的方向, 它并不代表组件之间用来获取数据的连接关系。
pod (或者 pod 中运行的容器)感知不到 cAdvisor 存在,cAdvisor也感知不到 Heapster 存在。
Heapster 主动请求所有的 cAdvisor ,同时 cAdvisor 无须通过与 pod 容器内进程通信就可以收集到容器和节点的资源使用数据。
保存并分析历史资源的使用统计信息
cAdvisor 和 Heapster都只保存一个很短时间窗的资源使用量数据。 如果需要分析一段时间的 pod 的资源使用情况, 必须使用额外的工具。
lnfluxDB 和 Grafana 介绍
lnfluxDB 是一个用于存储应用指标, 以及其他监控数据的开源的时序数据库。
Grafana 是一个拥有着华丽的 web 控制台的数据分析和可视化套件,同样也是开源的,它允许用户对 InfluxDB 中存储的数据进行可视化, 同时发现应用程序的资源使用行为是如何随时间变化的。
__EOF__

本文链接:https://www.cnblogs.com/kiyalone/p/15957152.html
关于博主:当你发现自己的才华支撑不起野心时,就请安静下来学习吧!
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?