前言:之前介绍了使用helm chart部署loki-stack的教程。但是很可惜,截止到2025年9月15日,loki-stack只更新到v2.9.+的版本就没有再继续提供更新。没有办法使用到v3.0的loki新特性,而且grafana也要被连带使用低版本才能兼容。所以研究了loki v3.0+版本的helm chart部署
1.使用helm chart部署v3版本loki
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
以安装v3.3.+的版本为例
helm search repo grafana/loki --versions | grep 3.3
grafana/loki 6.25.1 3.3.2 Helm chart for Grafana Loki and Grafana Enterpr...
grafana/loki 6.25.0 3.3.2 Helm chart for Grafana Loki and Grafana Enterpr...
grafana/loki 6.24.1 3.3.2 Helm chart for Grafana Loki and Grafana Enterpr...
grafana/loki 6.24.0 3.3.2 Helm chart for Grafana Loki and Grafana Enterpr...
grafana/loki 6.23.0 3.3.1 Helm chart for Grafana Loki and Grafana Enterpr...
grafana/loki 6.22.0 3.3.0 Helm chart for Grafana Loki and Grafana Enterpr...
grafana/loki 6.21.0 3.3.0 Helm chart for Grafana Loki and Grafana Enterpr...
下载特定版本的chart回来
helm pull grafana/loki --version 6.25.0
****安装命令
新建一个loki的namespace
helm install loki . -n loki -f single-binary-values.yaml
解压后就会出现下面这些文件:
其中single-binary-values.yaml的文件是比较关键的。如果直接使用values.yaml里面的配置运行则会报错。因为v3.+的版本跟v2.+的部署有一些明显的差异了。
Loki 3.x Chart 强制要求配置 loki.storage,用来决定存储后端(filesystem、s3、gcs、azure 等)。
而之前的老版本 chart 可能用的是 loki.persistence 或 loki.schemaConfig 之类的写法,导致现在 loki.storage 根本没定义,所以访问 .Values.loki.storage.type 时就报错。
所以用到单节点部署的这个single-binary-values.yaml文件就可以跳过选择存储后端的过程,不用去指定S3 bucket这些。直接使用本地存储就可以将服务拉起来。
注意的大坑:
single-binary-values.yaml文件虽然没有多租户的配置,但是没有这个配置就是默认开启了多租户模式。所有请求必须带 X-Scope-OrgID 头(默认是 “fake”)不然在容器网络层面已经确认端口,服务都没问题的情况下,grafana也会出现死活连不上loki的情况,相当恼人。
解决的方案:
在single-binary-values.yaml文件里,手动加上关闭多租户的配置
loki:
auth_enabled: false
然后重新部署一遍就发现grafana数据源的loki可以连上了。
2.promtail的部署
因为grafana/loki这个chart包跟 grafana/loki-stack不一样,没有集成promtail服务,所以这个服务也需要我们找到chart包进行安装。但是因为它调用loki的url是http://loki-gateway/loki/api/v1/push
所以安装promtail没有什么特别注意,只要跟loki在同一个namespace就行了。
因为没找到对应的版本,我就直接装新版的,这个采集服务倒没什么关系。
helm pull grafana/promtail
tar zvxf promtail-6.17.0.tgz
helm install promtail . -n loki
最后便成功连上了loki
评论区