You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE集群部署Loki Helm Chart遇只读文件系统错误的解决咨询

解决Loki部署中"mkdir /loki/tsdb-shipper-active: read-only file system"错误

这个错误的核心原因是Loki的TSDB Shipper组件需要在本地文件系统创建可写目录,但容器内的/loki目录处于只读状态,无法完成写入操作。以下是具体解决步骤:

1. 给/loki目录挂载可写存储卷

默认情况下,Loki Helm Chart可能未为/loki路径挂载可写卷,需显式配置:

方案A:使用持久化卷(生产环境推荐)

在values.yaml中添加持久化配置:

persistence:
  enabled: true
  size: 10Gi
  # 替换为你的GCP存储类,比如GKE自带的standard-rwo
  storageClassName: "standard-rwo"
  accessModes:
    - ReadWriteOnce

方案B:使用临时emptyDir卷(测试环境适用)

如果不需要持久化本地数据,可挂载临时卷:

extraVolumes:
  - name: loki-temp-data
    emptyDir: {}
extraVolumeMounts:
  - name: loki-temp-data
    mountPath: /loki

2. 统一存储配置避免冲突

你的配置中同时存在storage和storageConfig字段,可能引发路径逻辑冲突。建议合并配置,保留storageConfig并移除重复的storage字段,调整后示例:

loki:
  auth_enabled: false

  commonConfig:
    ring:
      instance_addr: 127.0.0.1
      kvstore:
        store: inmemory
    replication_factor: 1
    path_prefix: /loki

  schemaConfig:
    configs:
      - from: 2024-07-22
        store: tsdb
        object_store: gcs
        schema: v13
        index:
          prefix: index_
          period: 24h

  storageConfig:
    tsdb_shipper:
      active_index_directory: /loki/index
      cache_location: /loki/index_cache
    gcs:
      bucket_name: ab7d14a0f02ac9ab-loki-logs-bucket

serviceAccount:
  annotations:
    iam.gke.io/gcp-service-account: "loki-sa@linear-reporter.iam.gserviceaccount.com"

3. 验证容器运行权限

确保Loki容器以拥有/loki目录读写权限的用户运行,可通过securityContext配置:

securityContext:
  runAsUser: 10001
  runAsGroup: 10001
  fsGroup: 10001

4. 确认GCS服务账号权限(附加检查)

虽然当前错误是本地文件系统问题,但需确保服务账号loki-sa@linear-reporter.iam.gserviceaccount.com拥有GCS存储桶ab7d14a0f02ac9ab-loki-logs-bucket的roles/storage.objectAdmin或等价权限,避免后续存储操作失败。

内容的提问来源于stack exchange,提问作者alex-shef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:42:40