如何用Prometheus的kube_pod_container_info查询Pod容器镜像标签变更
解决Pod容器镜像标签变更检测的Prometheus查询问题
正确的PromQL查询语句如下:
kube_pod_container_info{namespace="test"} != on(namespace, pod, container) kube_pod_container_info{namespace="test"} offset 5m
关键说明:
- 你之前的查询使用
on(image)作为关联条件是错误的,这会导致多个运行相同镜像的容器产生匹配冲突,无法精准定位到单个Pod内的特定容器。 - 必须使用
on(namespace, pod, container)作为关联条件,这样能精准匹配同一命名空间、同一Pod、同一容器在当前和5分钟前的监控记录。 - 当前后两条记录的
image值不一致时,查询会返回当前的容器信息,完全满足你检测镜像标签变更的需求。
匹配验证:
对应你提供的测试数据:
当前test-pod的test-container-2镜像为test-image:v2,5分钟前为test-image:v1,该查询会准确返回这条记录,与你的预期一致。
内容的提问来源于stack exchange,提问作者Jeff W
相关产品推荐
相关产品推荐

