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 ......

总结

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

相关文章

最新评论