Kubernetes 如何在k8s中转储每个命名空间的资源(CPU、内存)使用情况?

Kubernetes 如何在k8s中转储每个命名空间的资源(CPU、内存)使用情况?,kubernetes,kubectl,Kubernetes,Kubectl,我有一个在同一个k8s集群下创建的名称空间列表,我想了解每个名称空间的资源(CPU、内存)使用情况。有我可以使用的命令吗?有。你可以用 $ kubectl -n <nampespace> top pod 如果需要总计,则需要将CPU和内存列上的所有条目相加 请注意,要使kubectl top正常工作,您需要进行适当的设置和配置。(较旧的集群使用)谢谢Rico,答案很好,但只是作为补充: 您可以指定资源配额,然后按指定方式查看它们。 除此之外,还有像普罗米修斯这样的外部监测工具。此外

我有一个在同一个k8s集群下创建的名称空间列表,我想了解每个名称空间的资源(CPU、内存)使用情况。有我可以使用的命令吗?

有。你可以用

$ kubectl -n <nampespace> top pod
如果需要总计,则需要将CPU和内存列上的所有条目相加


请注意,要使
kubectl top
正常工作,您需要进行适当的设置和配置。(较旧的集群使用)

谢谢Rico,答案很好,但只是作为补充:

您可以指定资源配额,然后按指定方式查看它们。 除此之外,还有像普罗米修斯这样的外部监测工具。此外,还有一个可以:

显示StackDriver中的历史统计资源使用情况

列出集群中POD的资源QoS分配。灵感来自:


该案例仍在继续,但似乎最终会有一些变化,因为其中一位参与者表示,有一项计划将删除kubectl top,并使用一些本机解决方案,因此我建议遵循此思路。

编写一个shell脚本以获取集群中的所有名称空间。遍历每个名称空间。运行kubectl顶部吊舱。 在名称空间中添加所有POD的cpu和内存

$ 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