You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K8s中获取CPU和内存使用信息的方法及最高效实现方案咨询

Kubernetes 原生CPU/内存使用指标采集方案汇总

一、所有基于Kube/Container原语的采集方法

  • kubectl top 命令行工具
    依赖官方标准扩展组件metrics-server,底层调用kubelet的/stats/summaryAPI获取数据,支持节点、Pod、容器三个维度的CPU/内存实时指标,CPU单位为m核,内存单位为MiB/GiB
    常用命令:kubectl top nodes、kubectl top pods <pod-name> --containers
  • 直接调用Kubelet /stats/summary API
    无需额外部署组件,属于kubelet原生暴露的接口,返回结构化JSON数据,包含节点所有Pod、容器的实时使用量、工作集大小、CPU使用率累计值等核心指标,是所有上层采集工具的核心数据源
    调用方式:节点本地可直接请求curl http://127.0.0.1:10255/stats/summary,集群内可通过APIServer代理访问
  • 调用Kubelet /metrics/cadvisor 接口
    基于kubelet内置的cAdvisor原生暴露的Prometheus格式指标,包含更细粒度的资源统计维度,除实时使用量外,还支持CPU throttling、内存缓存、OOM事件等扩展指标,适合长期监控采集
  • 直接读取cgroup文件系统
    属于容器底层原语,容器运行时会把CPU/内存统计数据写入节点的cgroup路径下(cgroup v1路径一般为/sys/fs/cgroup/cpu,cpuacct/kubepods/、/sys/fs/cgroup/memory/kubepods/,cgroup v2统一路径为/sys/fs/cgroup/kubepods/),无需调用任何API,直接读取文件即可获取原始统计值
    可采集核心指标包括:
    • CPU:用户态/内核态使用时间、调度周期、throttled时间
    • 内存:总使用量、工作集、活跃/不活跃文件页、OOM kill计数

二、最高效实现方案选型

若为调研阶段临时采样,优先选择直接调用Kubelet /stats/summary API
优势:无额外组件依赖、返回结果结构化、数据维度刚好覆盖CPU/内存核心使用指标,单节点单次请求耗时一般在10ms以内,比kubectl top少了APIServer转发和格式转换的开销

若为长期高频采集场景,优先选择直接读取cgroup文件系统
优势:完全无网络IO开销,读取文件耗时在微秒级,是所有方案中性能最高的,且完全基于容器运行时原生原语,不存在组件依赖带来的兼容性问题


内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:36:04