kubectl top命令可显⽰节点和Pod对象的资源使⽤信息,它依赖于集群中的资源指标API来收集各项指标数据。它包含有node和pod两个⼦命令,可分别⽤于显⽰Node对象和Pod对象的相关资源占⽤率。
列出Node资源占⽤率命令的语法格式为kubectl top node[-l label|NAME]
,例如下⾯显⽰所有节点的资源占⽤状况的结果中显⽰了各节点累计CPU资源占⽤时长及百分⽐,以及内容空间占⽤量及占⽤⽐例。必要时,也可以在命令中直接给出要查看的特定节点的标识,以及使⽤标签选择器进⾏节点过滤:
# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
develop-master-1 1980m 50% 7220Mi 46%
develop-worker-1 2170m 55% 6803Mi 43%
develop-worker-2 1239m 31% 6344Mi 40%
⽽名称空间级别的Pod对象资源占⽤率的使⽤⽅式会略有不同,使⽤时,⼀般应该限定名称空间及使⽤标签选择器过滤出⽬标Pod对象。命令的语法格式为kubectl top pod[NAME|-l label][--all-namespaces][--containers=false|true]
,例如,下⾯显⽰kube-system名称空间中标签为“k8s-app=kube-dns”的所有Pod资源及其容器的资源占⽤状态:
# kubectl top pod -l k8s-app=kube-dns --containers=true -n kube-system
POD NAME CPU(cores) MEMORY(bytes)
coredns-6f9685b855-82g5x POD 0m 0Mi
coredns-6f9685b855-82g5x coredns 9m 27Mi
coredns-6f9685b855-zmvwt POD 0m 0Mi
coredns-6f9685b855-zmvwt coredns 5m 29Mi
# kubectl top pod -l k8s-app=kube-dns --containers=false -n kube-system
NAME CPU(cores) MEMORY(bytes)
coredns-6f9685b855-82g5x 7m 28Mi
coredns-6f9685b855-zmvwt 8m 30Mi