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

inj*_*joy 5 kubernetes kubectl

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

Ric*_*ico 15

是的。您可以使用

$ kubectl -n <nampespace> top pod
Run Code Online (Sandbox Code Playgroud)

例如:

$ 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
Run Code Online (Sandbox Code Playgroud)

如果需要总计,则需要将 CPU 和 MEMORY 列上的所有条目相加。

请注意,为了kubectl top正常工作,您需要正确设置和配置指标服务器。(较旧的集群使用heapster