rancher Prometheus Error opening query log file: permission denied
在 rancher dashboard 启用集群监控时,可能会遇到 prometheus 无法正常运行,报如下的错误。
level=info ts=2020-10-31T12:40:33.171Z caller=main.go:353 msg="Starting Prometheus" version="(version=2.22.0, branch=HEAD, revision=0a7fdd3b76960808c3a91d92267c3d815c1bc354)" |
这个是因为 prometheus 挂载 pvc 卷之后,pvc 卷的读写权限与 prometheus pod 运行用户不一致,导致 prometheus pod 中没有权限去读写 pvc 存储。
处理方法
在集群工具中,编辑 Monitoring App。点击下一步,接着点击 编辑 YAML。在
prometheus.prometheusSpec.securityContext
中,按如下配置,注意修改之前对原始值做好备份。保存后看是否正常读写。fsGroup: 0
runAsGroup: 0
runAsNonRoot: false
runAsUser: 0如果以上配置还是没有权限读写 pvc 存储,那么可以利用 initContainers 去初始化 pvc 卷的权限。在
prometheus.prometheusSpec.initContainers
中,按如下配置:initContainers:
- command: ["/bin/chmod","-R","777","/prometheus"]
image: busybox
name: prometheus-data-permission-fix
securityContext:
runAsGroup: 0
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- mountPath: /prometheus
name: prometheus-rancher-monitoring-prometheus-db
subPath: ''注意:
- 如果在
prometheus.prometheusSpec.storageSpec
中没有添加disableMountSubPath: true
,那么以上配置的 subPath 需要设置为 subPath: prometheus-db。如果有添加disableMountSubPath: true
,则将 subPath 设置为空。 - 如果你认为 command: [“/bin/chmod”,”-R”,”777”,”/prometheus”] 中 777 权限太大,那么根据
prometheus.prometheusSpec.securityContext
中的原生值进行配置,这个原始值是 prometheus 运行的用户和用户组,那么 pvc 存储这边也需要设置为相应的权限。
- 如果在
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 IT老男孩!