如何通过指标获取Kubernetes Pod终止时间?kube_completion_time无效
获取Kubernetes Pod终止时间的解决方案
首先明确:kube_completion_time指标仅针对Job/CronJob管理的Pod生效,普通Deployment、StatefulSet、DaemonSet等控制器的Pod不会生成该指标——这就是你大部分Pod查不到数据的原因,你看到的两个有数据的Pod应该是Job实例创建的。
以下是获取普通Pod终止时间的可行方法:
利用Pod状态指标计算终止时间
当Pod进入Failed或Succeeded状态时,kube_pod_status_phase指标的最后更新时间即可作为Pod的终止时间。使用PromQL查询:last_over_time(kube_pod_status_phase{phase=~"Failed|Succeeded"}[1d])该查询会返回Pod进入终止状态的时间戳,可转换为可读时间格式。
通过容器终止指标获取精确时间
若需要更精确的容器级终止时间(单容器Pod可直接作为Pod终止时间),可使用kube_pod_container_status_terminated_reason指标,其时间戳即为容器终止时间:last_over_time(kube_pod_container_status_terminated_reason[1d])确认kube-state-metrics配置
确保你的kube-state-metrics部署启用了Pod相关指标采集,默认启动参数包含--collector=pods,若有自定义配置,需检查该参数是否存在,避免Pod指标被禁用。
内容的提问来源于stack exchange,提问作者trey
相关产品推荐
相关产品推荐

