kubernetes - 查询 Kubernetes 指标-服务器指标值
问题描述
我正在使用 metrics-server(https://github.com/kubernetes-incubator/metrics-server/)从 kubernetes 集群中的容器中收集核心指标。
我可以为每个容器获取 2 个资源使用指标。
- CPU使用率
- 内存使用情况
但是我不清楚是否
这些指标是随时间累积的,或者它们已经在特定时间窗口(1 分钟/ 30 秒..)内采样
上述度量值的单位是什么。对于 CPU 使用率,是核心数还是毫秒数?对于内存使用,我假设它的字节使用量。
在计算 CPU 使用率指标值时,metrics-server 是否已经处理过容器使用率除以主机系统使用率的问题?
另外,如果我必须将这些指标与 docker-api 指标进行比较,如何计算给定容器的 CPU 使用率?
谢谢!
解决方案
- 指标会定期从 kubelet 中抓取。默认解析持续时间为 60 秒,可以用
--metric-resolution=<duration>
标志覆盖。 - 值和单位(cpu - 十进制 SI 中的核心,内存 - 二进制 SI 中的字节)是通过使用
Quantity
k8s apimachinery包中的序列化程序得出的。您可以从源代码中的注释中了解它 - 不,CPU 指标与主机系统使用率无关,因为您可以看到它不是百分比值。表示容器按核心消耗的 CPU 总秒数的变化率。如果该值在一秒内增加 1,则该 pod 在该秒内消耗 1 个 CPU 内核(或 1000 个毫核)。
要获得一个相对值,根据您的用例,您可以将 pod 的 CPU 指标除以节点的 CPU 指标,因为 metrics-server 会同时暴露端点/pods
和/nodes
端点。