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

OpenShift部署Apache Ignite集群报/ignite/work目录无法创建问题

故障根因
  • 路径配置不匹配:Apache Ignite官方镜像默认工作目录固定为/ignite/work,你当前配置将工作目录卷挂载到了/tmp/work,既没有修改Ignite的工作目录指向,也没有把卷挂载到Ignite默认读取的路径,所以无论怎么调整挂载路径,Ignite都会优先找默认的/ignite/work路径,挂载自然不生效。日志开头的SLF4J提示只是日志实现缺失的警告,不是启动失败的核心原因。另外你PV配置里的权限注释是其他组件的遗留参考内容,照搬配置不适用于Ignite部署场景。
  • OpenShift权限限制:OpenShift默认使用随机非root UID运行容器,官方Ignite镜像内/ignite路径默认仅UID 1000的内置ignite用户有写入权限,随机UID没有目录操作权限,就算挂载路径正确,也会抛出无法创建目录的错误。另外你配置的hostPath类型PV如果没有提前给节点上的源目录配置开放写入权限,也会触发同类报错。
修复步骤

方案1:直接使用Ignite默认路径(配置改动最小)

  1. 修正卷挂载路径,将StatefulSet中work-vol的挂载点从/tmp/work调整为/ignite/work,其余存储、WAL、归档卷如果要被Ignite识别,要么挂载到Ignite默认对应子路径,要么显式配置路径参数。
  2. 解决目录权限问题:
    • 测试环境可直接给节点上hostPath对应的/opt/work等存储目录执行chmod 777 目录路径开放写入权限;
    • 生产环境可在StatefulSet的pod spec中添加securityContext配置,指定fsGroup让容器进程对挂载卷有写入权限,参考配置:
spec:
  securityContext:
    fsGroup: 1000
    runAsUser: 1000

如果OpenShift的SCC限制不允许固定UID,可加一个initContainer在启动前提前给挂载目录授权,参考:

initContainers:
- name: perm-fix
  image: apacheignite/ignite:2.13.0
  command: ["sh", "-c", "chmod -R 777 /ignite/work /tmp/storage /tmp/wal /tmp/walarchive"]
  volumeMounts:
  - name: work-vol
    mountPath: /ignite/work
  - name: storage-vol
    mountPath: /tmp/storage
  - name: wal-vol
    mountPath: /tmp/wal
  - name: walarchive-vol
    mountPath: /tmp/walarchive

方案2:自定义Ignite存储路径(保留你当前的挂载路径配置)

如果不想改现有挂载点,需要显式给Ignite传入路径参数覆盖默认配置,在容器的JVM_OPTS环境变量中追加路径定义,示例:

- name: JVM_OPTS
  value: "-DIGNITE_WAL_MMAP=false -DIGNITE_WORK_DIR=/tmp/work -DIGNITE_STORAGE_DIR=/tmp/storage -DIGNITE_WAL_DIR=/tmp/wal -DIGNITE_WAL_ARCHIVE_DIR=/tmp/walarchive"

配置后Ignite就会读取你挂载到/tmp下的各个路径,不会再去找默认的/ignite/work,注意同样要按上面的方法配置对应目录的写入权限。

注意:如果你在ignite-node-cfg.xml配置文件中单独配置了数据存储、WAL路径,需要保证配置的路径和实际卷挂载路径完全一致,否则配置不会生效。

内容的提问来源于stack exchange,提问作者Rameish

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:03:32