对于服务,容器,名称空间,我们没有获得CPU使用率,内存使用率指标,我们获得了使用CoreV1Api获得的内存请求,CPU请求,分配的内存,分配的CPU。 如何获得以上的利用率?
对于集群,我们对节点(EC2实例IDs)的CPU利用率进行了平均,因此我们对集群具有cpu /内存利用率,那么可以假设,pod的CPU利用率将是其运行节点的利用率?对于命名空间,它存在于哪个节点上?
答案 0 :(得分:1)
您可以通过两种方式获得资源request
,limits
或utilization
。
$ kubectl top pods
或$ kubectl top nodes
。您可以检查Quota或kubectl 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。