从 v2.x 升级
v3.x 版本代表了此 chart 的一个重要里程碑,表明 Loki 团队致力于提供一个支持更好、更具可伸缩性的 Helm chart。除了将此 Helm chart 的源代码移入 Loki 仓库本身,它还将之前独立的两个 chart,grafana/loki
和 grafana/loki-simple-scalable
合并成一个 chart。如果您使用文件系统后端,此 chart 将自动假定之前由 grafana/loki
chart 部署的“单二进制文件”模式;如果您使用对象存储后端,则将假定之前由 grafana/loki-simple-scalable
chart 部署的“可伸缩”模式。
由于这一重大变化,从被替换的 chart 进行升级可能会很困难。我们正在尝试支持 3 种最常见的升级路径。
- 使用本地
filesystem
存储从grafana/loki
升级 - 使用基于云的对象存储(例如 S3 或 GCS,或 MinIO 等 API 兼容的等效存储)从
grafana/loki-simple-scalable
升级。
从 grafana/loki
升级
grafana/loki
的默认安装是基于非高可用 filesystem
存储的单实例部署。因此,此升级方法会涉及停机。升级将删除之前部署的 loki stateful set,然后运行 helm upgrade
命令,该命令将创建同名的新 stateful set,并应挂载到现有的 PVC 或临时存储,从而保留您的数据。我们仍然强烈建议在进行升级之前备份所有数据。
要升级,您的 values.yaml
中至少需要包含以下内容
loki:
commonConfig:
replication_factor: 1
storage:
type: 'filesystem'
您需要执行以下步骤:1. 更新 grafana helm 仓库,2. 删除现有的 stateful set,3. 升级,确保您的 values.yaml
中包含上述值。如果您将 grafana/loki
安装为 namespace loki
中的 loki
,则命令如下:
helm repo update grafana
kubectl -n loki delete statefulsets.apps loki
helm upgrade loki grafana/loki \
--values values.yaml \
--namespace loki
您需要手动删除现有的 stateful set,以上命令才能正常工作。
值得注意的更改
grafana/loki
chart 使用 Secret
作为配置存储。您可以设置 .loki.existingSecretForConfig
以继续使用 Secret
,或将配置迁移到 ConfigMap
。在 values.yaml
中指定 Loki 配置仍然可用。在旧 chart 中,配置位于 .config
下,新 chart 允许指定 .loki.config
或 .loki.structuredConfig
,后者具有更高优先级。
同样地,当使用 extraVolumes
时,如果您决定迁移到 Loki 可伸缩部署模式,配置现在嵌套在 .singleBinary.extraVolumes
或 .read.extraVolumes
+ .write.extraVolumes
下。
依赖项
grafana/loki
chart 仅用于安装 Loki。自 v3.x
起的新 chart 还捆绑了两个依赖项 - minio 和 grafana-agent-operator。如果您已独立安装其中任何一个并希望继续单独管理它们,您可以在 values.yaml
中显式禁用这些依赖项,如下例所示:
minio:
enabled: false
monitoring:
selfMonitoring:
enabled: false
grafanaAgent:
installOperator: false
从 grafana/loki-simple-scalable
升级
由于此 chart 主要基于 grafana/loki-simple-scalable
chart,您应该能够使用现有的 values.yaml
文件并仅升级到新的 chart 名称。例如,如果您将 grafana/loki-simple-scalable
chart 安装为 namespace loki
中的 loki
,则升级命令如下:
helm repo update grafana
helm upgrade loki grafana/loki \
--values values.yaml \
--namespace loki