首页/云/Kubernetes 速查/kubectl top 查看资源用量
kubectl 基础56 条

kubectl top 查看资源用量

显示节点与 Pod 的实时 CPU/内存用量(来自 metrics-server),用于快速定位吃资源的对象,是容量巡检的常用入口。

Kubernetes 速查云更新于 2026-10-13

kubectl top 是什么

kubectl top 显示节点与 Pod 的实时 CPU 与内存用量,数据来自集群里部署的指标采集组件。它回答的是「谁在吃资源」:把用量与请求值、上限值摆在一起看,才能判断是配置不合理还是负载真的涨了。它是容量巡检与资源类故障排查的快速入口。

数值的性质

输出是最近一次采样的瞬时值,不是趋势曲线,不能拿单次结果判断容量是否够用。Pod 维度默认把该 Pod 内所有容器的用量加总,要看具体是哪个容器超标需要按容器拆分查看。需要历史趋势与峰值分析时,应使用监控系统而不是这条命令。

基本信息

适用环境任何 Kubernetes 发行版,集群内需部署指标采集组件
语法kubectl top node|pod [名称] [选项]
数据来源集群指标接口,通常由指标采集组件提供
统计范围节点维度覆盖整机用量,Pod 维度默认聚合所有容器
采样特点瞬时值,随负载波动
权限要求对指标资源有读取权限

典型使用场景

  • 定位高消耗对象:按 CPU 或内存排序,找出占用最多的实例
  • 核对请求与上限是否合理:对比实际用量与声明值,发现长期低效或临界配置
  • 排查资源类故障:确认容器是否逼近内存上限,预判重启风险
  • 节点容量巡检:查看各节点整体用量,判断是否需要扩容或迁移负载
  • 发布后验证:确认新版本资源占用没有明显上涨
  • 排查节流:CPU 用量贴近上限时,延迟问题可以从这里得到线索

常用示例

常用示例
kubectl top node                                  # 节点整体用量
kubectl top pod -n prod --sort-by=cpu             # 按 CPU 排序
kubectl top pod -n prod --sort-by=memory          # 按内存排序
kubectl top pod web-x --containers                 # 拆分到容器维度
kubectl top pod -A --sort-by=memory | head -20     # 全集群内存消耗前列
kubectl get pods -n prod -o wide                   # 对照所在节点判断影响面

输出逐列读法

列含义怎么用
NAME节点或 Pod 名称定位到具体对象
CPU(核或毫核)瞬时 CPU 用量与请求值和上限对照
CPU 百分比相对可分配量的比例节点维度看是否接近满载
MEMORY瞬时内存用量贴近上限时警惕被强制终止
MEMORY 百分比相对可分配量的比例判断节点内存压力
报指标接口不可用通常是指标采集组件未部署或未就绪,属于集群侧问题,不是命令本身出错。
对比请求与上限要看按容器拆分的输出,只看 Pod 总和的加总数据容易误判是哪个容器超限。

易错点

  • 拿瞬时值当容量结论:一次采样存在波动,容量评估应基于一段时间的历史趋势
  • 只看 Pod 总和定位问题:多容器场景下真正的消耗方会被平均掉,应拆分到容器维度
  • 忘记对照声明值:用量大小本身没有意义,与请求值和上限的比例才是判断依据
  • 把指标接口不可用当成命令故障:应先确认采集组件的运行状态与就绪情况

数据来源与参考

  • Kubernetes 官方文档 · kubectl top / metrics-server
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌