如何在kubernetes中获取名称空间,pod,服务的CPU利用率,内存利用率?

时间:2019-11-18 15:04:41

标签: kubernetes kubectl

对于服务,容器,名称空间,我们没有获得CPU使用率,内存使用率指标,我们获得了使用CoreV1Api获得的内存请求,CPU请求,分配的内存,分配的CPU。 如何获得以上的利用率?

对于集群,我们对节点(EC2实例IDs)的CPU利用率进行了平均,因此我们对集群具有cpu /内存利用率,那么可以假设,pod的CPU利用率将是其运行节点的利用率?对于命名空间,它存在于哪个节点上?

1 个答案:

答案 0 :(得分:1)

您可以通过两种方式获得资源requestlimitsutilization

$ kubectl top pods$ kubectl top nodes。您可以检查Quotakubectl describe node/pod来检查内部信息。 您还可以指定是否只需要一个像kubectl top pod --namespace=kube-system

这样的名称空间构成的广告连播

要执行此操作,您将需要metric server,该字符通常安装在开头。要检查是否已安装,请在kube-system命名空间中列出您的Pod。

$ kubectl get pods -n kube-system
NAME
...
metrics-server-v0.3.1-57c75779f-wsmfk                   2/2     Running   0          6h24m
...

然后,您可以通过几种方式检查当前指标。选中this thread。当您列出raw指标时,最好使用jq列出指标。 $ /apis/metrics.k8s.io/v1beta1/nodes | jq .

另一件事是,您可以使用Prometheus进行指标和警报(取决于您的需求)。如果只需要CPU和内存使用率,则metrics server是必需的,但是Prometheus还安装了custom.metrics,这将允许您从所有kubernetes对象获取指标。

稍后您还可以安装一些Grafana之类的UI。

  

所以我们可以假设,Pod的CPU利用率将是其正在运行的节点的利用率

节点的CPU利用率将显示分配给该节点的所有资源的利用率,即使Pod位于不同的命名空间中。

我鼓励您检查this article