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

GKE集群部署Erigon主网归档节点启动失败问题求助

故障根因

和你猜测的SSD挂载问题无关,核心错误看事件日志里的关键信息:

exec: "--datadir=/mainnet": stat --datadir=/mainnet: no such file or directory
容器运行时直接把你写在args里的第一个参数--datadir=/mainnet当成了要执行的入口程序,系统找不到叫这个名字的可执行文件,自然启动失败。
你之前部署Geth能直接传args运行,是因为Geth官方镜像默认把ENTRYPOINT设为geth可执行文件,args里的内容会自动作为启动参数传给geth。但你用的thorax/erigon镜像没有预置这个ENTRYPOINT配置,K8s会直接把args列表当成容器启动的执行命令,才会触发这个错误。
另外配置里还有个小笔误:" --http.corsdomain=*"前面多了个前导空格,就算入口命令配置正确,这个参数也会因为带前导空格识别失败。

修复方案

按以下顺序调整配置即可解决问题:

  • 给容器配置补上command字段,明确指定入口程序为erigon,同时删掉corsdomain参数前的多余空格,核心配置片段如下:
containers:
  - name: erigon
    image: docker.io/thorax/erigon
    command: ["erigon"] # 新增该行,明确指定启动的可执行文件
    ports:
      - containerPort: 8545
      - containerPort: 8546
      - { containerPort: 30303, protocol: TCP }
      - { containerPort: 30303, protocol: UDP }
    args:
      [
        "--datadir=/mainnet",
        "--chain=mainnet",
        "--http",
        "--http.addr=0.0.0.0",
        "--http.api=eth,net,web3",
        "--http.vhosts=*",
        "--http.corsdomain=*", # 删除参数前的多余空格
        "--ws",
        "--ws.addr=0.0.0.0",
        "--ws.api=eth,net,web3",
        "--ws.origins=*",
      ]
  • 调整健康检查配置:你现在配的livenessProbe初始延迟只有10秒,Erigon光初始化数据库就要数分钟,启动初期8545端口根本不会监听,kubelet会反复杀掉刚启动的容器,陷入CrashLoop。建议把存活检查初始延迟调到300秒以上,优先用exec方式做RPC检测,不要直接请求8545端口根路径:
livenessProbe:
  initialDelaySeconds: 300
  timeoutSeconds: 30
  exec:
    command:
      - /bin/sh
      - -c
      - "erigon attach --datadir /mainnet --exec 'eth.blockNumber' >/dev/null 2>&1"
readinessProbe:
  initialDelaySeconds: 120
  timeoutSeconds: 30
  exec:
    command:
      - /bin/sh
      - -c
      - "erigon attach --datadir /mainnet --exec 'eth.syncing == false' >/dev/null 2>&1"

如果镜像内没有预置sh或者erigon不在默认PATH里,可以先临时把httpGet检查的初始延迟调到600秒以上,等容器正常启动后再进容器确认路径、优化检查规则。

  • 调整资源配额:你现在给的16G内存上限完全不够跑Erigon主网归档节点,初始同步阶段内存占用至少要32G以上,建议把内存request调到16G、limit调到64G,CPU上限至少给到16核,否则同步速度会极慢,甚至会因为OOM被系统杀掉。
  • 调整副本数:Erigon是强状态应用,同一个StatefulSet配2个副本会导致节点互相抢对等节点连接、数据目录锁,直接把replicas改成1即可,要做多副本高可用需要单独搭跟随节点,不能直接复用同一份配置起多实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:39:17