You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何指定起止时间或自定义窗口查询K8s Metrics Server指标

解决方案说明

Metrics Server的局限性

Metrics Server本质是Kubernetes的实时指标聚合组件,它仅保留短周期的采样数据(默认5分钟窗口),且API设计仅返回当前窗口内的聚合值(如平均值),不支持存储历史数据,也无法返回指定时间范围、带step的时序序列数据。所以直接通过curl或kubectl调用Metrics Server API,无法获取你需要的多时间点原始数据。

正确使用Prometheus实现需求

你之前的理解有误——Prometheus完全支持按命名空间、Pod过滤,指定时间范围查询,且能直接计算MIN/MAX/AVG统计值。以下是针对API Server容器的示例PromQL:

CPU指标统计

# 计算过去1小时内,每个kube-apiserver容器CPU使用率的最小值
min_over_time(rate(container_cpu_usage_seconds_total{namespace="openshift-kube-apiserver", pod=~"kube-apiserver-master.*", container="kube-apiserver"}[5m])[1h:1m])

# 最大值
max_over_time(rate(container_cpu_usage_seconds_total{namespace="openshift-kube-apiserver", pod=~"kube-apiserver-master.*", container="kube-apiserver"}[5m])[1h:1m])

# 平均值
avg_over_time(rate(container_cpu_usage_seconds_total{namespace="openshift-kube-apiserver", pod=~"kube-apiserver-master.*", container="kube-apiserver"}[5m])[1h:1m])

内存指标统计

# 内存使用量的最小值
min_over_time(container_memory_working_set_bytes{namespace="openshift-kube-apiserver", pod=~"kube-apiserver-master.*", container="kube-apiserver"}[1h])

# 最大值
max_over_time(container_memory_working_set_bytes{namespace="openshift-kube-apiserver", pod=~"kube-apiserver-master.*", container="kube-apiserver"}[1h])

# 平均值
avg_over_time(container_memory_working_set_bytes{namespace="openshift-kube-apiserver", pod=~"kube-apiserver-master.*", container="kube-apiserver"}[1h])

参数说明:

  • namespace="openshift-kube-apiserver":按命名空间过滤
  • pod=~"kube-apiserver-master.*":匹配所有API Server Pod(正则匹配)
  • [1h]:指定统计的时间窗口
  • :1m:指定step(返回数据点的间隔,可根据需求调整)

在Prometheus UI中,你还可以通过顶部的时间范围选择器直接指定起止时间,配合上述查询即可得到对应统计结果。

替代方案(若无法使用Prometheus)

如果环境中确实无法部署或使用Prometheus,需要部署支持历史指标存储的工具链:

  • 搭配cadvisor(容器指标采集)+ 时序数据库(如InfluxDB、VictoriaMetrics),自行采集并存储容器指标,再通过对应查询语言计算统计值
  • 使用OpenShift内置的监控组件(如Cluster Monitoring Operator),它基于Prometheus,默认已采集API Server等核心组件的指标

内容的提问来源于stack exchange,提问作者mberge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:54:59