安装kube-prometheus堆栈的时候遇到一个错误,排查了很久:
起初问题表象是无法执行Kubectl top node ,显示api not available类似的信息,然而执行kubectl top pod却可以显示资源占用信息。根据这个问题排查了很久,因为会有很多原因导致这个问题,后来暂时忽略这个问题。
当把prometheus接入grafana时,在执行查询语句:
container_memory_working_set_bytes{container!=“”,node!=“”}
发现同一个容器内存占用竟然有多个重复的指标,如果做内存占用监控,这样肯定是不准确的。
根据图中内存的service的名字,大致猜想这个集群安装卸载prometheus很多次,应该是有残留了什么东西没删除干净。但是得知之前安装过prometheus的namespace都删除了。
使用以下命令查找出所有prometheus相关的service:
kubectl get svc -A|grep prometheus
发现kube-system有残留的promehtheus的service: