需要安装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 ......
链接
- 很好 https://segmentfault.com/a/1190000021493607
- https://www.cnblogs.com/hongdada/p/12066802.html