面向类 Unix 系统的 Prometheus 导出器,以可插拔采集器暴露主机硬件与操作系统指标。
kubernetes/kube-state-metrics
一个 Kubernetes 附加服务,监听 API Server 并以 Prometheus 指标形式暴露 Pod、Deployment、Node 等对象的状态。
- Star
- 6,228
- Fork
- 2,199
- 未关闭 Issue
- 117
- 最近提交
- 5天前
这是什么?
kube-state-metrics(KSM)监听 Kubernetes API Server,为 Deployment、Node、Pod 等对象生成描述其状态的指标。它关注集群中对象的健康状况,而不是 Kubernetes 组件本身的运行状态,并直接输出 API 中的原始数据,不套用 kubectl 为了展示而做的启发式处理。
指标以纯文本形式通过 HTTP 的 /metrics 端点提供,供 Prometheus 或兼容的采集器抓取。指标反映集群当前状态,对象被删除后会从输出中消失。资源占用随集群规模增长,项目提供了分片、资源过滤以及通过 RBAC 限制访问范围的配置方式,适用于大规模或权限受限的环境。
项目由 SIG Instrumentation 维护,官方 Helm Chart 位于 prometheus-community/helm-charts 仓库中。
核心功能
- 01直接从 Kubernetes API 对象生成指标,不做修改。
- 02以 Prometheus 格式通过 HTTP /metrics 端点暴露指标。
- 03支持基于对象 UID 的水平分片,也支持通过 StatefulSet 的自动分片。
- 04可通过 resources 和 exclude_resources 查询参数过滤采集的资源类型。
- 05将 Kubernetes 标签转换为 Prometheus 标签,并用后缀解决命名冲突。
- 06提供 /healthz、/livez 和 /readyz 健康检查端点。
适用场景
- 基于 Deployment 副本数、Pod 阶段或 Node 状态搭建 Prometheus 仪表盘与告警。
- 在不修改应用的前提下监控集群中各类工作负载的健康状况。
- 当单个集群指标量较大时,将采集任务分散到多个实例上。
快速上手
- 1
从 registry.k8s.io 拉取容器镜像
- 2
按照 README 中的 Kubernetes Deployment 或 Helm Chart 说明将其部署到集群
使用前须知
- 它只能在 Kubernetes 集群内运行,并且需要访问 API server。
- 它会在内存中保存集群状态的完整快照,按通用建议约需 250MiB 内存和 0.1 核 CPU。
- 默认的事件指标在某些云服务商处可能产生较高的数据摄入费用。
- custom-resource-state 功能已冻结,建议转向 resource-state-metrics。
收录于专题
标签
常见问题
- kube-state-metrics 是什么?
- 一个 Kubernetes 附加服务,监听 API Server 并以 Prometheus 指标形式暴露 Pod、Deployment、Node 等对象的状态。 kube-state-metrics(KSM)监听 Kubernetes API Server,为 Deployment、Node、Pod 等对象生成描述其状态的指标。它关注集群中对象的健康状况,而不是 Kubernetes 组件本身的运行状态,并直接输出 API 中的原始数据,不套用 kubectl 为了展示而做的启发式处理。
- kube-state-metrics 可以免费使用吗?用的什么许可证?
- kube-state-metrics 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- kube-state-metrics 还在维护吗?
- 活跃维护中。kube-state-metrics 最近一次提交是在 2026年10月19日。
- kube-state-metrics 适合用来做什么?
- 基于 Deployment 副本数、Pod 阶段或 Node 状态搭建 Prometheus 仪表盘与告警。 在不修改应用的前提下监控集群中各类工作负载的健康状况。 当单个集群指标量较大时,将采集任务分散到多个实例上。
- kube-state-metrics 怎么安装和运行?
- 从 registry.k8s.io 拉取容器镜像 按照 README 中的 Kubernetes Deployment 或 Helm Chart 说明将其部署到集群
- 在哪里获取 kube-state-metrics?
- 源代码和安装说明在 GitHub 上:https://github.com/kubernetes/kube-state-metrics
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 OpenTelemetry Collector 的发行版,提供可编程的表达式流水线,用于采集指标、日志、链路追踪和性能剖析数据。
开源的监控与可观测性平台,可查询、可视化并对来自多种数据源的指标、日志和链路数据设置告警。
Prometheus 是一套开源的系统与服务监控系统,负责采集指标、评估规则并触发告警。
为 Prometheus 提供全局查询、基于对象存储的长期保存和高可用能力的一组组件。
高性能、低成本的时序数据库与监控方案,可作为 Prometheus 的长期存储或直接替代。