【问题描述】
K8s集群prometheus镜像配置非root用户执行导致监控页面targets无相关node信息监控
【问题记录】
在k8s容器集群来部署prometheus服务,实现对node节点的监控,但发现部署了prometheus后页面targets没有显示node信息,配置检查也是正确的
排查prometheus日志发现
检查一下prometheus的pod里面对应路径下用户权限
检查一下镜像配置信息,显示镜像有用nobody用户执行
修改prometheus的deployment文件,执行指令里面添加,启动用户改成root
说明:securityContext其实这个就是用来控制容器内的用户权限,你想用什么用户去执行程序或者执行操作等
runAsUser: 1000 字段指定 Pod 中的所有容器内的进程都使用用户 ID 1000来运行
runAsGroup: 3000 字段指定所有容器中的进程都以主组 ID 3000 来运行。 如果忽略此字段,则容器的主组 ID 将是 root(0)。 当runAsGroup被设置时,所有创建的文件也会划归用户 1000 和组 3000。
后重新apply 配置,并检查prometheus的pod
再次查询页面监控节点信息,可以正常显示