kubectl top如何查看资源占用

 更新时间:2026年03月01日 10:48:49   作者:唐僧爱程序  
文章介绍了如何安装和使用metricserver来监控Kubernetes集群中的节点和Pod资源使用情况,包括CPU和内存的计量单位以及如何通过这些指标来管理资源请求和限制,同时,文章还讨论了在Docker容器中使用jps命令和释放ptrace权限的配置问题

需要安装metric server,一般部署在kube-system空间

查看node资源使用

[root@master1 ~]# kubectl top node master1
NAME      CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master1   165m         9%     4653Mi          66%       

查看pod资源

[root@master1 ~]# kubectl top pod --all-namespaces
NAMESPACE                   NAME                                                              CPU(cores)   MEMORY(bytes)   
admincsqorderer             orderer0-admincsqorderer-57858875f8-vs7v7                         0m           0Mi             
admincsqorg                 ca-admincsqorg-b4f5bb7fb-nmqm4                                    1m           10Mi            
admincsqorg                 peer0-admincsqorg-db5f877b4-mknfh                                 5m           114Mi           
cattle-system               cattle-node-agent-62n8k                                           0m           0Mi             
cattle-system               cattle-node-agent-89gpj                                           0m           0Mi       

 也可以指定namespace      
 [root@master1 ~]# kubectl top pod -n dst_namespace pod_name

还可以精确到容器
 [root@master1 ~]# kubectl top pod -n dst_namespace pod_name --containers

指标含义

  • 和k8s中的request、limit一致,CPU单位100m=0.1 内存单位1Mi=1024Ki
  • pod的内存值是其实际使用量,也是做limit限制时判断oom的依据。pod的使用量等于其所有业务容器的总和,不包括 pause 容器,值等于cadvisr中的container_memory_working_set_bytes指标
  • node的值并不等于该node 上所有 pod 值的总和,也不等于直接在机器上运行 top 或 free 看到的值

解决docker中不能使用jps命令

  • 配置环境变量
export PATH="$PATH:/usr/java/jdk1.8.0_91/bin"
  • 释放docker容器ptrace权限
在docker run 命令中加上参数--cap-add=SYS_PTRACE
docker run --cap-add=SYS_PTRACE ......

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • k8s部署dashboard ui管理平台全过程

    k8s部署dashboard ui管理平台全过程

    Kubernetes仪表盘是一个用于管理和监控Kubernetes集群的Web界面,它是一个容器化应用,可以通过Kubernetes的API进行部署和管理,仪表盘提供了一个用户友好的界面,可以查看和管理集群中的资源,包括Pod、Deployment、Service等
    2026-01-01
  • k8s pod始终处于pending状态的解决方案

    k8s pod始终处于pending状态的解决方案

    新K8s部署后服务重启导致dashboard无法访问,所有Pod处于Pending状态,原因分析显示,因节点污点引发调度失败,删除污点后问题解决,总结Pending原因分为三类:调度问题(污点、资源不足)、镜像问题(拉取失败)、依赖性问题(卷/Secret/ConfigMap缺失)
    2025-08-08
  • 如何在Centos中搭建 K8s 1.23 集群

    如何在Centos中搭建 K8s 1.23 集群

    文章详细介绍了在CentOS上搭建Kubernetes 1.23集群的步骤,包括准备环境、安装Kubernetes软件包、上传离线镜像、初始化集群、添加节点、安装网络插件以及测试验证,感兴趣的朋友一起看看吧
    2025-03-03
  • kubernetes(k8s)安装metrics-server实现资源使用情况监控方式详解

    kubernetes(k8s)安装metrics-server实现资源使用情况监控方式详解

    这篇文章主要介绍了kubernetes(k8s)安装metrics-server实现资源使用情况监控,包括Metrics Server下载方式, k8s集群安装部署metrics的问题,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • 在k8s中副本使用pod的IP注册到consul全过程

    在k8s中副本使用pod的IP注册到consul全过程

    文章介绍了如何在Kubernetes环境中通过DNS获取POD的IP,并将其用于注册到Consul,通过修改服务启动脚本和Kubernetes样本文件,使得微服务能够获取POD信息并使用该IP注册到Consul,从而实现服务间的发现和通信
    2026-02-02
  • k8s中的NetworkPolicy使用详解

    k8s中的NetworkPolicy使用详解

    这篇文章主要介绍了k8s中的NetworkPolicy使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • Kubernetes Event Exporter和Prometheus的K8s事件告警详解

    Kubernetes Event Exporter和Prometheus的K8s事件告警详解

    本文介绍了通过KubernetesEventExporter将Kubernetes事件转换为Prometheus指标,并结合Prometheus告警规则和Alertmanager进行告警通知的方案,该方案通过监听Kubernetes API、抓取指标、评估告警规则并发送通知,建立了高效可靠的事件驱动监控体系
    2026-02-02
  • 关于k8s 使用 Service 控制器对外暴露服务的问题

    关于k8s 使用 Service 控制器对外暴露服务的问题

    这篇文章主要介绍了k8s使用Service控制器对外暴露服务,包括部署deploy,部署 service及查看 service 和 pod 的关系,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • K8S修改Pod时间方案详细代码实例

    K8S修改Pod时间方案详细代码实例

    在Kubernetes中,修改Pod的时间通常指的是修改Pod的时区设置,因为Pod的时间戳(如创建时间)是由Kubernetes集群管理的,并且通常不建议直接修改,这篇文章主要介绍了K8S修改Pod时间方案的相关资料,需要的朋友可以参考下
    2025-08-08
  • 删除Helm使用时关于kubernetes文件的警告问题

    删除Helm使用时关于kubernetes文件的警告问题

    这篇文章主要介绍了删除Helm使用时关于kubernetes文件的警告问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11

最新评论