Prometheus中无法找到replicaset相关kube state metrics如何排查
kube-state-metrics v1.9.7 缺失ReplicaSet指标排查思路
由于Deployment和ReplicaSet同属于apps API组,能正常采集Deployment指标说明API组基础权限配置正常,优先排查以下点:
- 校验kube-state-metrics采集资源配置
kube-state-metrics通过启动参数--resources指定需要采集的K8s资源列表,若配置中未包含replicasets则不会生成相关指标。可执行以下命令查看启动参数:
若存在kubectl get deployment <kube-state-metrics-deployment名称> -n <kube-state-metrics所在命名空间> -o yaml | grep args--resources参数且列表无replicasets,补充后重启kube-state-metrics即可。 - 校验RBAC权限配置
检查kube-state-metrics关联的ClusterRole是否单独配置了ReplicaSet的读取权限,需包含如下规则:
若权限配置时仅开放了Deployment的读取权限,未包含ReplicaSet,也会导致指标采集失败。- apiGroups: ["apps"] resources: ["replicasets"] verbs: ["get", "list", "watch"] - 分层定位指标丢失环节
可直接端口转发kube-state-metrics服务,直接查看其暴露的指标是否包含ReplicaSet相关数据:
访问kubectl port-forward svc/<kube-state-metrics服务名称> 8080:8080 -n <kube-state-metrics所在命名空间>http://localhost:8080/metrics搜索kube_replicaset_前缀的指标:- 若指标存在:说明是Prometheus采集规则过滤了相关指标,检查Prometheus针对kube-state-metrics的采集job的
metric_relabel_configs是否有dropkube_replicaset_前缀指标的规则 - 若指标不存在:问题出在kube-state-metrics侧,回到前两步排查配置
- 若指标存在:说明是Prometheus采集规则过滤了相关指标,检查Prometheus针对kube-state-metrics的采集job的
- 校验版本兼容性
kube-state-metrics v1.9.7的兼容K8s版本范围为1.19~1.21,若集群版本高于1.22,可能存在API适配问题导致ReplicaSet指标采集失败,可尝试升级kube-state-metrics到兼容对应集群版本的版本。
内容的提问来源于stack exchange,提问作者cosmos-1905-14
相关产品推荐
相关产品推荐

