kube_pod_status_ready指标追踪哪些类型的Pod?
关于
kube_pod_status_ready指标的说明 1. 该指标追踪的Pod类型
kube_pod_status_ready是kube-state-metrics导出的Prometheus指标,仅追踪通过Kubernetes API Server创建、受K8s生命周期管理的标准Pod资源——也就是kubectl get pods结果中能看到的普通Pod,包括Deployment、DaemonSet、StatefulSet、Job等控制器管理的Pod。
2. 控制平面组件Pod的采集情况
是否能采集到控制平面组件的Pod,完全取决于组件的部署方式:
- 若控制平面组件(如kube-apiserver、kube-controller-manager)是以静态Pod形式部署(通常存放在节点的
/etc/kubernetes/manifests目录,由kubelet直接启动管理),kube-state-metrics默认不会采集这类Pod的指标——因为静态Pod的生命周期不经过API Server的完整调度流程,元数据标记与普通Pod有差异。 - 若控制平面组件是以普通Pod形式部署(比如云厂商托管集群中的部分组件,或自定义集群用Deployment/DaemonSet部署),则会被该指标正常追踪。
3. 你遇到的现象解释
- 看不到kubelet:kubelet本身是运行在节点操作系统中的系统服务,并非容器化的Pod,因此完全不在该指标的追踪范围内。
- 看不到kube-apiserver:你的集群中kube-apiserver大概率是静态Pod部署的,符合上述默认不采集的规则。
- 能看到kube-proxy、kube-dns和自定义Pod:这些都是通过API Server创建的普通Pod(kube-proxy是DaemonSet,kube-dns是Deployment/StatefulSet),属于指标默认采集范围。
4. 相关文档说明
kube-state-metrics的官方配置规则明确:默认仅采集API Server管理的非静态Pod,若需要采集静态Pod,需在kube-state-metrics的启动参数中添加--collect-static-pods,开启静态Pod的采集能力。
内容的提问来源于stack exchange,提问作者bunny
相关产品推荐
相关产品推荐

