Holos平台Grafana组件身份认证问题排查与解决
holos Holistic platform manager 项目地址: https://gitcode.com/gh_mirrors/hol/holos
问题背景
在Holos平台运行过程中,Grafana组件突然无法正常渲染。经过排查发现这是由于平台配置文件platform.site.cue被删除,同时Provisioner集群中的配置文件版本过旧导致的。此外,由于平台的身份认证服务login.ois.run近期进行了重建,这也影响了Grafana的认证流程。
问题分析
当身份认证服务重建后,系统会为所有用户生成新的subject标识符(sub)。这导致Grafana无法识别现有用户,因为存储在SQLite数据库中的sub值与新生成的token不匹配。Grafana在用户认证时会严格校验这个sub值,不匹配就会导致认证失败。
解决方案
我们采取了以下步骤解决问题:
-
首先更新了platform.site.cue配置文件,确保Grafana组件能够正确渲染。
-
针对身份认证问题,执行了以下操作流程:
- 暂停Flux部署工具的运行
- 删除原有的StatefulSet资源
- 删除关联的PVC(PersistentVolumeClaim)存储
- 恢复Flux运行
这个操作清除了Grafana原有的用户数据库,使得系统可以使用新的身份令牌重新注册用户。这种方法虽然简单直接,但在类似的身份认证系统重建场景下非常有效。
技术要点
- Grafana使用SQLite数据库存储用户认证信息
- OAuth/OIDC认证流程中,subject标识符(sub)是关键匹配字段
- 在身份提供者重建时,通常会生成新的sub值
- 通过删除持久化存储可以强制Grafana重新初始化用户数据库
经验总结
对于类似的身份认证系统升级或重建场景,开发运维团队需要注意:
- 提前规划好用户数据的迁移方案
- 考虑使用更灵活的认证映射策略
- 重要组件升级前做好数据备份
- 文档记录系统间的依赖关系
该解决方案已在Holos平台v0.68.1版本验证通过,Grafana服务恢复正常运行。
holos Holistic platform manager 项目地址: https://gitcode.com/gh_mirrors/hol/holos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考