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