Skip to content

故障排查

节点接入层为 HashiCorp Nomad client(非 NATS)。服务名为 nomad,由 systemd 托管。

节点无法上线

症状:控制台显示节点 offline 或一直 pending_confirm

排查步骤:

bash
# 1. 查看 Nomad 客户端日志
sudo journalctl -u nomad -n 80 --no-pager

# 2. 检查到 API 的连通性
curl -v https://api.arkcore.cloud/api/v1/health

# 3. 验证 node-secret 格式
sudo cat /etc/ark/node-secret | grep -E "^ns_[0-9a-f]{64}$" && echo "OK"

# 4. 查看本节点是否已加入 Nomad 集群
nomad node status -self 2>/dev/null

常见原因:

现象原因解决
日志反复 retry_join 失败出站到 Nomad Server 的 RPC :4647 / Serf :4648 被防火墙拦截放行出站 4647/4648
invalid node secretnode-secret 损坏或被改控制台重置 secret,重跑 setup.sh
节点在线但不接单节点被暂停 / 维护窗口 / 价格过高控制台恢复节点、检查维护计划与定价
交互式实例无法打开cloudflared 隧道未起 / token 失效查看 journalctl -u cloudflared,重跑 setup.sh 注入新 token

节点缺少 CNI / pause 镜像导致实例起不来

bridge 网络需要 CNI 插件,pause 镜像在国内需换源——这两项已由 setup.sh 处理。若手动改过环境,重跑 setup.sh 修复。

bash
ls /opt/cni/bin            # 应有 bridge、host-local 等插件

实例一直 provisioning / pending

可能原因:

  • 节点 GPU 已占满(多租户下被其他租用占用)。
  • 镜像拉取超时(大镜像 / 网络慢)。

排查:

bash
# 当前运行的容器
docker ps

# GPU 占用
nvidia-smi

# 本节点上的 Nomad 分配
sudo nomad node status -self

GPU 不可用

症状:日志出现 no NVIDIA GPU found 或 CUDA 错误。

bash
# 验证 Docker 能访问 GPU
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi

# 重启 NVIDIA 持久化服务
sudo systemctl restart nvidia-persistenced

# 重新配置 NVIDIA Container Toolkit
nvidia-ctk --version
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

磁盘空间不足

bash
df -h
# 清理 Docker 无用资源(不影响运行中的容器)
docker system prune -f
du -sh /var/lib/docker/*

重启 / 重置节点

bash
# 重启 Nomad 客户端
sudo systemctl restart nomad

# 完全重新注册(重置 node-secret)
sudo systemctl stop nomad
sudo rm -f /etc/ark/node-secret
# 回控制台生成新 join-token,重跑 setup.sh

联系支持

基于 MIT License 发布