goedgede node容器配置持久化了, 但是每重建都会变成新节点

204 次阅读

本文最后更新于 2026年5月15日。

配置持久化了, 但是每重建都会变成新节点

 goedge-node | 2026-05-14T23:08:01.471120482Z ========================================
goedge-node | 2026-05-14T23:08:01.471150972Z EdgeNode 启动中...
goedge-node | 2026-05-14T23:08:01.471168010Z ========================================
goedge-node | 2026-05-14T23:08:01.471173772Z 检测到环境变量配置,生成 api_cluster.yaml...
goedge-node | 2026-05-14T23:08:01.473296404Z 已删除旧的 api_node.yaml
goedge-node | 2026-05-14T23:08:01.473347330Z 配置文件已生成: configs/api_cluster.yaml
goedge-node | 2026-05-14T23:08:01.473355733Z
goedge-node | 2026-05-14T23:08:01.473361935Z 配置信息:
goedge-node | 2026-05-14T23:08:01.473367477Z   API 地址: http://127.0.0.1:7789
goedge-node | 2026-05-14T23:08:01.473372458Z   Cluster ID: 6e7978b5c6fb36db10e4af9c3b37ac4c
goedge-node | 2026-05-14T23:08:01.473377508Z   Secret: czOAn0IDDtIIM9IBiYnwoCF3TUYVUgWz
goedge-node | 2026-05-14T23:08:01.473382328Z
goedge-node | 2026-05-14T23:08:01.473387244Z ========================================
goedge-node | 2026-05-14T23:08:01.473392356Z EdgeNode 服务启动中...
goedge-node | 2026-05-14T23:08:01.473397359Z ========================================
goedge-node | 2026-05-14T23:08:01.473458709Z 启动 EdgeNode(后台)...
goedge-node | 2026-05-14T23:08:01.473468601Z 等待 EdgeNode 注册并生成配置...
goedge-node | 2026-05-14T23:08:01.518881597Z 2026/05/15 07:08:01 [NODE]initializing ip library ...
goedge-node | 2026-05-14T23:08:02.489620349Z 2026/05/15 07:08:02 [NODE]init config ...
goedge-node | 2026-05-14T23:08:02.490129416Z 2026/05/15 07:08:02 [NODE]registering node to cluster ...
goedge-node | 2026-05-14T23:08:02.498985618Z 2026/05/15 07:08:02 [NODE]registered successfully
goedge-node | 2026-05-14T23:08:02.499020610Z 2026/05/15 07:08:02 [NODE]writing 'configs/api_node.yaml' ...
goedge-node | 2026-05-14T23:08:02.499244633Z 2026/05/15 07:08:02 [NODE]wrote 'configs/api_node.yaml' successfully
goedge-node | 2026-05-14T23:08:02.504331161Z 2026/05/15 07:08:02 [CACHE]add policy 1
goedge-node | 2026-05-14T23:08:02.507983706Z 2026/05/15 07:08:02 [CACHE]loading database from '/opt/cache/p1/.stores' ...
goedge-node | 2026-05-14T23:08:02.595552022Z 2026/05/15 07:08:02 [CACHE]init policy 1 from '/opt/cache', cost: 91.13 ms, size: 91.359 GiB, mmap: disabled
goedge-node | 2026-05-14T23:08:02.595635282Z 2026/05/15 07:08:02 [METRIC_MANAGER]start task '6'
goedge-node | 2026-05-14T23:08:02.611318821Z 2026/05/15 07:08:02 [METRIC_MANAGER]start task '5'
goedge-node | 2026-05-14T23:08:02.611350772Z 2026/05/15 07:08:02 [METRIC_MANAGER]start task '4'
goedge-node | 2026-05-14T23:08:02.611408298Z 2026/05/15 07:08:02 [METRIC_MANAGER]start task '3'
goedge-node | 2026-05-14T23:08:02.611423600Z 2026/05/15 07:08:02 [METRIC_MANAGER]start task '2'
goedge-node | 2026-05-14T23:08:02.611433222Z 2026/05/15 07:08:02 [METRIC_MANAGER]start task '1'
goedge-node | 2026-05-14T23:08:02.611439564Z 2026/05/15 07:08:02 [NODE][CPU]set max cpu to '4'
goedge-node | 2026-05-14T23:08:02.611447441Z 2026/05/15 07:08:02 [NODE][THREADS]set max threads to '20000'
goedge-node | 2026-05-14T23:08:02.611471694Z 2026/05/15 07:08:02 [NODE][TIMEZONE]change time zone to 'Asia/Shanghai'
goedge-node | 2026-05-14T23:08:02.611629290Z 2026/05/15 07:08:02 [FIREWALL]'nftables' should be installed on the system to enhance security (init failed: 'nft' not found)
goedge-node | 2026-05-14T23:08:02.611660835Z 2026/05/15 07:08:02 [AGENT_MANAGER]starting ...
goedge-node | 2026-05-14T23:08:02.611717226Z 2026/05/15 07:08:02 [LISTENER_MANAGER]listen 'http://*:180'
goedge-node | 2026-05-14T23:08:02.612047321Z 2026/05/15 07:08:02 [TRAFFIC_STAT_MANAGER]start ...
goedge-node | 2026-05-14T23:08:02.612070134Z 2026/05/15 07:08:02 [IP_LIST_MANAGER]starting from 'kvstore' version '0' ...
goedge-node | 2026-05-14T23:08:02.612076992Z 2026/05/15 07:08:02 [IP_LIST_MANAGER]initializing ip items ...
goedge-node | 2026-05-14T23:08:02.612095581Z 2026/05/15 07:08:02 [IP_LIST_MANAGER]rpc connection error: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp: lookup edge-api on 10.0.3.1:53: no such host"
goedge-node | 2026-05-14T23:08:02.612110977Z 2026/05/15 07:08:02 [IP_LIST_MANAGER]finished initializing ip items
goedge-node | 2026-05-14T23:08:02.612136500Z 2026/05/15 07:08:02 [HTTP_REQUEST_STAT_MANAGER]start ...
goedge-node | 2026-05-14T23:08:02.612145697Z 2026/05/15 07:08:02 [API_STREAM]rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp: lookup edge-api on 10.0.3.1:53: no such host"
goedge-node | 2026-05-14T23:08:02.612324693Z 2026/05/15 07:08:02 [LISTENER_MANAGER]listen 'https://*:1443'
goedge-node | 2026-05-14T23:08:02.630992980Z 2026/05/15 07:08:02 [AGENT_MANAGER]retrieve latest agent ip failed: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp: lookup edge-api on 10.0.3.1:53: no such host"
goedge-node | 2026-05-14T23:08:03.484171149Z 检测到 api_node.yaml 已生成
goedge-node | 2026-05-14T23:08:03.484209194Z 修改 api_node.yaml 中的 RPC 地址...
goedge-node | 2026-05-14T23:08:03.485897696Z 已修改 RPC 地址为: http://127.0.0.1:7789
goedge-node | 2026-05-14T23:08:03.485917944Z 停止 EdgeNode...
goedge-node | 2026-05-14T23:08:03.602711590Z 2026/05/15 07:08:03 [CACHE]quiting cache manager
goedge-node | 2026-05-14T23:08:03.602742978Z 2026/05/15 07:08:03 [CACHE]remove policy 1
goedge-node | 2026-05-14T23:08:03.622046594Z 2026/05/15 07:08:03 [CACHE]close memory storage '1'
goedge-node | 2026-05-14T23:08:03.629858489Z 2026/05/15 07:08:03 [METRIC_MANAGER]quit
goedge-node | 2026-05-14T23:08:03.644183908Z 重新启动 EdgeNode(前台)...
goedge-node | 2026-05-14T23:08:03.666361132Z 2026/05/15 07:08:03 [NODE]initializing ip library ...
goedge-node | 2026-05-14T23:08:04.451155996Z 2026/05/15 07:08:04 [NODE]init config ...
goedge-node | 2026-05-14T23:08:04.468013352Z 2026/05/15 07:08:04 [NODE]loading node config ...
goedge-node | 2026-05-14T23:08:04.468102740Z 2026/05/15 07:08:04 [CACHE]add policy 1
goedge-node | 2026-05-14T23:08:04.468259058Z 2026/05/15 07:08:04 [CACHE]loading database from '/opt/cache/p1/.stores' ...
goedge-node | 2026-05-14T23:08:04.551023101Z 2026/05/15 07:08:04 [CACHE]init policy 1 from '/opt/cache', cost: 82.78 ms, size: 91.359 GiB, mmap: disabled
goedge-node | 2026-05-14T23:08:04.551086981Z 2026/05/15 07:08:04 [METRIC_MANAGER]start task '6'
goedge-node | 2026-05-14T23:08:04.573423228Z 2026/05/15 07:08:04 [METRIC_MANAGER]start task '5'
goedge-node | 2026-05-14T23:08:04.573452158Z 2026/05/15 07:08:04 [METRIC_MANAGER]start task '4'
goedge-node | 2026-05-14T23:08:04.573526410Z 2026/05/15 07:08:04 [METRIC_MANAGER]start task '3'
goedge-node | 2026-05-14T23:08:04.573612380Z 2026/05/15 07:08:04 [METRIC_MANAGER]start task '2'
goedge-node | 2026-05-14T23:08:04.573642875Z 2026/05/15 07:08:04 [METRIC_MANAGER]start task '1'
goedge-node | 2026-05-14T23:08:04.573675123Z 2026/05/15 07:08:04 [NODE][CPU]set max cpu to '4'
goedge-node | 2026-05-14T23:08:04.573684598Z 2026/05/15 07:08:04 [NODE][THREADS]set max threads to '20000'
goedge-node | 2026-05-14T23:08:04.573735021Z 2026/05/15 07:08:04 [NODE][TIMEZONE]change time zone to 'Asia/Shanghai'
goedge-node | 2026-05-14T23:08:04.574033612Z 2026/05/15 07:08:04 [FIREWALL]'nftables' should be installed on the system to enhance security (init failed: 'nft' not found)
goedge-node | 2026-05-14T23:08:04.574142283Z 2026/05/15 07:08:04 [LISTENER_MANAGER]listen 'https://*:1443'
goedge-node | 2026-05-14T23:08:04.574252171Z 2026/05/15 07:08:04 [LISTENER_MANAGER]listen 'http://*:180'
goedge-node | 2026-05-14T23:08:04.574708995Z 2026/05/15 07:08:04 [TRAFFIC_STAT_MANAGER]start ...
goedge-node | 2026-05-14T23:08:04.574797757Z 2026/05/15 07:08:04 [HTTP_REQUEST_STAT_MANAGER]start ...
goedge-node | 2026-05-14T23:08:04.575125408Z 2026/05/15 07:08:04 [AGENT_MANAGER]starting ...
goedge-node | 2026-05-14T23:08:04.576813318Z 2026/05/15 07:08:04 [IP_LIST_MANAGER]starting from 'kvstore' version '0' ...
goedge-node | 2026-05-14T23:08:04.576853035Z 2026/05/15 07:08:04 [IP_LIST_MANAGER]initializing ip items ...
goedge-node | 2026-05-14T23:08:04.578214460Z 2026/05/15 07:08:04 [IP_LIST_MANAGER]finished initializing ip items
goedge-node | 2026-05-14T23:08:05.241589894Z 2026/05/15 07:08:05 [NODE]reloading node config ...

把环境变量中自动注册的id注释后重建就不会新建节点了

# ============ EdgeNode 配置 ============
NODE_HTTP_PORT=180
NODE_HTTPS_PORT=1443
NODE_ADMIN_PORT=7790
NODE_IMAGE=goedge-edge-node:v1.0.0

# EdgeNode 连接 EdgeAPI 的凭证(从管理后台创建节点获取)
# NODE_ENDPOINTS=http://edge-api:7789
NODE_ENDPOINTS=http://127.0.0.1:7789 #host模式

# 节点容器重建前要注释掉,否则会自动注册为新节点
# NODE_CLUSTERID=6e7978b5c6fb36db10e4af9c3b37ac4c
# NODE_SECRET=czOAn0IDDtIIM9IBiYnwoCF3TUYVUgWz
goedge-node | 2026-05-14T23:16:50.594217535Z ========================================
goedge-node | 2026-05-14T23:16:50.594261183Z EdgeNode 启动中...
goedge-node | 2026-05-14T23:16:50.594268988Z ========================================
goedge-node | 2026-05-14T23:16:50.594274970Z 未检测到环境变量配置,使用默认配置
goedge-node | 2026-05-14T23:16:50.594280633Z
goedge-node | 2026-05-14T23:16:50.594285850Z ========================================
goedge-node | 2026-05-14T23:16:50.594291161Z EdgeNode 服务启动中...
goedge-node | 2026-05-14T23:16:50.594303811Z ========================================
goedge-node | 2026-05-14T23:16:50.594309545Z 启动 EdgeNode(后台)...
goedge-node | 2026-05-14T23:16:50.594469143Z 等待 EdgeNode 注册并生成配置...
goedge-node | 2026-05-14T23:16:50.594967352Z 检测到 api_node.yaml 已生成
goedge-node | 2026-05-14T23:16:50.594984554Z 修改 api_node.yaml 中的 RPC 地址...
goedge-node | 2026-05-14T23:16:50.595911259Z 已修改 RPC 地址为: http://127.0.0.1:7789
goedge-node | 2026-05-14T23:16:50.595938017Z 停止 EdgeNode...
goedge-node | 2026-05-14T23:16:50.596126693Z 重新启动 EdgeNode(前台)...
goedge-node | 2026-05-14T23:16:50.624831083Z 2026/05/15 07:16:50 [NODE]initializing ip library ...
goedge-node | 2026-05-14T23:16:51.508935843Z 2026/05/15 07:16:51 [NODE]init config ...
goedge-node | 2026-05-14T23:16:51.527034328Z 2026/05/15 07:16:51 [NODE]loading node config ...
goedge-node | 2026-05-14T23:16:51.527137510Z 2026/05/15 07:16:51 [CACHE]add policy 1
goedge-node | 2026-05-14T23:16:51.527316163Z 2026/05/15 07:16:51 [CACHE]loading database from '/opt/cache/p1/.stores' ...
goedge-node | 2026-05-14T23:16:51.615458091Z 2026/05/15 07:16:51 [CACHE]init policy 1 from '/opt/cache', cost: 88.19 ms, size: 91.360 GiB, mmap: disabled
goedge-node | 2026-05-14T23:16:51.615508387Z 2026/05/15 07:16:51 [METRIC_MANAGER]start task '6'
goedge-node | 2026-05-14T23:16:51.634200956Z 2026/05/15 07:16:51 [METRIC_MANAGER]start task '5'
goedge-node | 2026-05-14T23:16:51.634260261Z 2026/05/15 07:16:51 [METRIC_MANAGER]start task '4'
goedge-node | 2026-05-14T23:16:51.634282507Z 2026/05/15 07:16:51 [METRIC_MANAGER]start task '3'
goedge-node | 2026-05-14T23:16:51.634365518Z 2026/05/15 07:16:51 [METRIC_MANAGER]start task '2'
goedge-node | 2026-05-14T23:16:51.634406746Z 2026/05/15 07:16:51 [METRIC_MANAGER]start task '1'
goedge-node | 2026-05-14T23:16:51.634440816Z 2026/05/15 07:16:51 [NODE][CPU]set max cpu to '4'
goedge-node | 2026-05-14T23:16:51.634448895Z 2026/05/15 07:16:51 [NODE][THREADS]set max threads to '20000'
goedge-node | 2026-05-14T23:16:51.634492379Z 2026/05/15 07:16:51 [NODE][TIMEZONE]change time zone to 'Asia/Shanghai'
goedge-node | 2026-05-14T23:16:51.634723425Z 2026/05/15 07:16:51 [FIREWALL]'nftables' should be installed on the system to enhance security (init failed: 'nft' not found)
goedge-node | 2026-05-14T23:16:51.635225581Z 2026/05/15 07:16:51 [LISTENER_MANAGER]listen 'http://*:180'
goedge-node | 2026-05-14T23:16:51.635393263Z 2026/05/15 07:16:51 [LISTENER_MANAGER]listen 'https://*:1443'
goedge-node | 2026-05-14T23:16:51.636057977Z 2026/05/15 07:16:51 [AGENT_MANAGER]starting ...
goedge-node | 2026-05-14T23:16:51.636283088Z 2026/05/15 07:16:51 [TRAFFIC_STAT_MANAGER]start ...
goedge-node | 2026-05-14T23:16:51.636314220Z 2026/05/15 07:16:51 [HTTP_REQUEST_STAT_MANAGER]start ...
goedge-node | 2026-05-14T23:16:51.636605723Z 2026/05/15 07:16:51 [IP_LIST_MANAGER]starting from 'kvstore' version '0' ...
goedge-node | 2026-05-14T23:16:51.636626731Z 2026/05/15 07:16:51 [IP_LIST_MANAGER]initializing ip items ...
goedge-node | 2026-05-14T23:16:51.638526113Z 2026/05/15 07:16:51 [IP_LIST_MANAGER]finished initializing ip items

从你提供的日志来看,问题的根源在于你使用了 环境变量(Environment Variables) 来配置 EdgeNode。

日志中这两行暴露了原因:

检测到环境变量配置,生成 api_cluster.yaml...

已删除旧的 api_node.yaml

为什么会变成新节点?

GoEdge 容器的启动脚本有一套逻辑:如果检测到环境变量中存在 CLUSTER_IDSECRET,它会认为这是一个“待自动注册”的新节点。

  1. 自动覆盖: 每次容器重建启动时,脚本检测到环境变量,就会强制删除现有的 api_node.yaml(这个文件才存着旧节点的身份 ID)。

  2. 强制注册: 脚本根据环境变量生成 api_cluster.yaml,然后调用程序去集群中“注册自己”。

  3. 产生新 ID: 既然是去“注册”,Admin 端就会把它当成一个新请求,分配一个新的 Node ID 并存入新生成的 api_node.yaml

解决方案

你现在处于“自动注册模式”,要解决这个问题,有两种方法:

方法 A:移除环境变量(推荐)

一旦你完成了第一次注册,并且确认 configs 目录已经挂载并持久化,你就不再需要通过环境变量来启动了。

  1. 修改你的 docker-compose.ymldocker run 命令。

  2. 删除以下环境变量:

    • EDGE_NODE_CLUSTER_ID (或类似名称)

    • EDGE_NODE_SECRET

  3. 保留挂载卷:-v /your-path/configs:/opt/edge-node/configs

结果: 重建容器时,脚本找不到环境变量,就不会去删除旧的 api_node.yaml。程序启动后会直接读取持久化的旧配置,节点保持不变。


方法 B:固定 NodeID(如果你必须使用环境变量)

如果你希望通过环境变量来启动,但又不想生成新节点,你需要让容器知道自己的身份 ID。

检查你的镜像文档,部分 GoEdge 容器封装版本支持传入 NODE_ID。但最稳妥的方式还是停止使用自动注册变量

总结你的操作建议:

  1. 先清理: 在 Admin 界面删除那些多出来的重复节点。

  2. 改配置: 去掉 Docker 配置文件里的 Cluster IDSecret 环境变量。

  3. 保挂载: 确保挂载路径依然指向你之前持久化 api_node.yaml 的位置。

  4. 重启: 再次重建容器,日志里如果不出现 检测到环境变量配置,就说明成功了。


顺便提醒:

日志中还提到了 lookup edge-api ... no such host。这说明容器在启动瞬间可能还没连上网络或 DNS 还没准备好,不过它后面自动重试成功了。如果你使用的是内网 API 地址,确保容器网络(如 Docker Network)是互通的。