Grafana Loki Helm Chart从2.x升级到3.0的完整指南
前言
Grafana Loki 3.0版本的Helm Chart是一个重要的里程碑版本,它整合了之前两个独立的Chart(loki和loki-simple-scalable)为一个统一的解决方案。本文将详细介绍如何从2.x版本平滑升级到3.0版本,帮助用户理解升级过程中的关键变化和注意事项。
升级前的准备工作
在进行任何升级操作前,请务必:
- 备份所有重要数据和配置
- 选择一个维护窗口期进行升级(特别是从loki Chart升级时)
- 仔细阅读本文档的全部内容
两种主要升级路径
根据您当前使用的Chart和存储后端类型,有两种主要的升级路径:
1. 从grafana/loki升级(使用本地文件系统存储)
这是针对使用本地文件系统存储的单实例部署场景。由于这种部署方式本身不具备高可用性,升级过程将涉及服务中断。
升级步骤:
- 准备values.yaml文件,至少包含以下配置:
loki:
commonConfig:
replication_factor: 1 # 保持与原有配置一致
storage:
type: 'filesystem' # 指定使用文件系统存储
- 执行以下命令序列:
helm repo update grafana
kubectl -n loki delete statefulsets.apps loki
helm upgrade loki grafana/loki \
--values values.yaml \
--namespace loki
关键变化说明:
- 配置存储方式变化:原Chart使用Secret存储配置,新版本可以使用ConfigMap或继续使用Secret(通过设置
.loki.existingSecretForConfig
) - 配置位置变化:原配置位于
.config
下,新版本可以使用.loki.config
或.loki.structuredConfig
- 卷配置变化:额外卷配置现在需要根据部署模式放在
.singleBinary.extraVolumes
或分别放在.read.extraVolumes
和.write.extraVolumes
下
2. 从grafana/loki-simple-scalable升级(使用对象存储)
由于新Chart很大程度上基于loki-simple-scalable Chart,这种升级路径相对简单。
升级步骤:
helm repo update grafana
helm upgrade loki grafana/loki \
--values values.yaml \
--namespace loki
新版本的重要变化
-
部署模式自动选择:
- 使用文件系统存储时,自动采用"Single Binary"模式(原loki Chart模式)
- 使用对象存储时,自动采用"Scalable"模式(原loki-simple-scalable Chart模式)
-
依赖组件变化:
- 新Chart默认包含两个依赖组件:minio和grafana-agent-operator
- 如果您已独立管理这些组件,可以在values.yaml中禁用它们:
minio:
enabled: false
monitoring:
selfMonitoring:
enabled: false
grafanaAgent:
installOperator: false
升级后的验证
升级完成后,建议进行以下验证:
- 检查所有Pod状态是否正常:
kubectl -n loki get pods
-
验证日志采集和查询功能是否正常
-
检查存储中的数据是否完整保留
常见问题处理
-
升级失败:如果遇到升级失败,请检查是否有残留资源未清理干净
-
配置不兼容:仔细核对新旧版本的配置差异,确保所有必要配置都已正确迁移
-
性能问题:升级后如果发现性能变化,可能需要根据新版本的推荐配置调整资源分配
总结
Grafana Loki 3.0 Helm Chart的升级虽然涉及一些变化,但通过本文提供的详细指南,大多数用户应该能够顺利完成升级。新版本提供了更统一的部署体验和更好的可扩展性,值得投入时间进行升级。
如果在升级过程中遇到本文未涵盖的问题,建议查阅更详细的文档或寻求社区支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考