我有一个在同一k8s集群下创建的名称空间列表,我想找出每个名称空间的资源(CPU,内存)使用情况。我可以使用任何命令吗?
答案 0 :(得分:1)
是的。您可以使用
$ kubectl -n <nampespace> top pod
例如:
$ kubectl top pod -n kube-system
NAME CPU(cores) MEMORY(bytes)
calico-node-xxxxx 17m 166Mi
coredns-xxxxxxxxxx-xxxxx 2m 11Mi
coredns-xxxxxxxxxx-xxxxx 3m 11Mi
etcd-ip-x-x-x-x.us-west-2.compute.internal 19m 149Mi
kube-apiserver-ip-x-x-x-x.us-west-2.compute.internal 39m 754Mi
kube-controller-manager-ip-x-x-x-x.us-west-2.compute.internal 20m 138Mi
kube-proxy-xxxxx 5m 12Mi
kube-scheduler-ip-x-x-x-x.us-west-2.compute.internal 6m 17Mi
metrics-server-xxxxxxxxxx-xxxxx 0m 15Mi
如果要总计,则需要将CPU和MEMORY列上的所有条目加起来。
请注意,要使kubectl top
工作,您需要进行metrics-server的设置和配置。 (较早的群集使用heapster)
答案 1 :(得分:0)
感谢Rico,答案很好,但又是补充:
您可以指定资源配额,然后按照指定的here进行查看。 除此之外,还有诸如Prometheus之类的外部监视工具。另外,有一个Resource Explorer可以:
显示StackDriver的历史统计资源使用情况。
https://github.com/kubernetes/kubernetes/issues/55046
列出到群集中Pod的资源QoS分配。受到启发:
此案仍在GitHub上审理,但似乎最终应该进行一些更改,因为其中一位撰稿人指出,计划删除kubectl top
并使用某些本机解决方案,因此我建议跟随这个话题。
答案 2 :(得分:0)
编写一个shell脚本以获取集群中所有名称的进度。遍历每个名称空间。运行kubectl顶部吊舱。 在名称空间中添加所有吊舱的杯子和内存。