1.9 KiB
1.9 KiB
vssueId, layout, description, meta
| vssueId | layout | description | meta | |||||
|---|---|---|---|---|---|---|---|---|
| 174 | LearningLayout | Kubernetes教程_本文解释了Kuboard中度量信息的获取方式 |
|
Metrics
Kuboard 界面上显示 Metrics(性能指标)信息时,调用了 Kubernetes 的 Metrics API,
为什么 Kuboard 显示的总内存比机器的实际内存要小?
Kuboard 调用 kubernetes api Node v1 core 获取节点的总内存信息。该接口返回结果中,关于内存信息有如下两个部分:
"status": {
"capacity": {
"cpu": "2",
"ephemeral-storage": "41147472Ki",
"hugepages-1Gi": "0",
"hugepages-2Mi": "0",
"memory": "7733512Ki",
"pods": "110"
},
"allocatable": {
"cpu": "2",
"ephemeral-storage": "37921510133",
"hugepages-1Gi": "0",
"hugepages-2Mi": "0",
"memory": "7631112Ki",
"pods": "110"
}
}
其中,capacity 代表节点的总容量,allocatable 代表 kubernetes 可以使用的容量。Kuboard 在 计算资源 界面上显示的节点总内存大小来自于此接口返回结果的 status.allocatable.memory 字段,总CPU大小来自于 status.allocatable.cpu 字段。
为什么 Kuboard 显示的当前使用内存与linux显示不匹配?
Kuboard 调用 kubernetes Metrics API 获取节点 CPU 和内存使用情况,metrics-server 通过节点上的 kubelet 获取 30s 时间窗口内的 CPU 和内存使用情况,且其统计口径是由 kubelet 管理的 docker 进程的 CPU 和内存使用情况,与直接使用 linux 的 top 命令或 free -h 命令查看时的统计口径并不相同。