将kubernetes状态度量curl响应单位转换为兆字节



我需要用Mi获得kube状态度量,它默认带有Ki。有人能帮我吗

[root@dte-dev-1-bizsvck8s-mst harsha]# curl http://<server IP>:8088/apis/metrics.k8s.io/v1beta1/namespaces/default/pods/hello-kubernetes-65bc74d4b9-qp9dc
{
"kind": "PodMetrics",
"apiVersion": "metrics.k8s.io/v1beta1",
"metadata": {
"name": "hello-kubernetes-65bc74d4b9-qp9dc",
"namespace": "default",
"selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/default/pods/hello-kubernetes-65bc74d4b9-qp9dc",
"creationTimestamp": "2020-04-17T12:31:59Z"
},
"timestamp": "2020-04-17T12:31:26Z",
"window": "30s",
"containers": [
{
"name": "hello-kubernetes",
"usage": {
"cpu": "0",
"memory": "20552Ki"
}
}
]

我想从Mi(兆字节(而不是Ki获得内存使用量。请帮帮我!

该单元在官方kube状态度量代码中进行了硬编码,不应更改。例如,节点度量——尤其是内存使用率是以兆字节为单位,而不是以千字节为单位。

要获得以兆字节为单位的特定pod的内存使用率,只需执行:

kubectl top pod --namespace example-app
NAME                              CPU(cores)   MEMORY(bytes)   
app-deployment-76bf4969df-65wmd     12m           1Mi             
app-deployment-76bf4969df-mmqvt     16m           1Mi    

kubectl top命令返回集群pod或节点的当前CPU和内存使用情况,或者返回指定的特定pod或节点。

您还可以转换接收值:

1 KB = 0.001 MB (in decimal),
1 KB = 0.0009765625 MB (in binary)

看看:kube状态度量监控。

最新更新