Grafana是k8s上的监控工具,具体的安装部署,网上很多,这里就不说了。

在实际生产环境中部署后发现一个很大的问题:失效pod仍然显示。

什么是失效pod?

生产环境中,微服务不断迭代部署,旧pod被新pod替代,这些旧pod就是失效pod。

这些失效pod在k8s集群中已经不存在了,却依然能在Grafana中显示,这就会出现一个微服务有许多个pod的情况,运维工程师完全找不到微服务当前的对应pod,比如下图:

dcm-prod其实只有2个pod,但在Grafana里显示出了几十个pod

出现这样的原因是什么,如何解决呢?

Grafana的数据源其实是来自于InfluxDB时序数据库里的k8s.uptime。经查看后发现uptime的时间范围是无限,难怪会出现这么多pod,因为它记录了所有产生过的pod。而Grafana使用的查询是无法设置时间范围的,从而导致了失效pod全会被查询出来。

原因找到了,解决方法也就出现了,在InfluxDB上对uptime进行重采样,设定时间范围为2小时,然后把Grafana的数据源改为重采样后的表,这样就过滤了2小时外的失效pod。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐