6.1 KiB
6.1 KiB
domainCheck 临时海外控制面联调清单
适用场景:
- 暂时不使用正式海外机器
- 先把大陆
controller + worker对接到当前测试海外机 - 先跑通“控制面 + 同步 + 观测”全链路,再切回正式海外环境
当前临时海外控制面:
- 节点编码:
overseas-control-01 - 节点角色:
overseas / control - 机器 IP:
152.53.37.118 - 后台地址:
http://152.53.37.118/ - API 基址:
http://152.53.37.118:8100
1. 当前目标拓扑
本次联调按下面的角色分工:
- 大陆 controller
- 承担 API 控制面
- 承担 Sync Agent
- 可以兼跑本机 Worker
- 大陆 worker
- 只承担检测执行
- 临时海外控制面
- 只承担 API 控制与同步接收
- 不承载本机 Worker
- 不承载 Sync Agent
2. 临时海外控制面应有状态
在临时海外控制面机器上执行:
bash domain-api/deploy/multi-region/check_temp_overseas_control.sh
预期:
domaincheck-api为active (running)domaincheck-worker为inactive (dead)或禁用runtime.status.data.nodecode=overseas-control-01region=overseasrole=control
runtime.status.data.worker.expected_on_this_node=falseruntime.status.data.sync_agent.expected_on_this_node=falseruntime.status.data.detect.phase_label=当前节点不承载
3. 大陆 controller 切到临时海外控制面
在大陆 controller 上执行:
sed -i 's#^SYNC_TARGET_API_BASE_URL=.*#SYNC_TARGET_API_BASE_URL=http://152.53.37.118:8100#' /etc/default/domaincheck-api
sed -i 's/^SYNC_PUSH_ENABLED=.*/SYNC_PUSH_ENABLED=true/' /etc/default/domaincheck-api
systemctl restart domaincheck-api
systemctl restart domaincheck-sync-agent
systemctl restart domaincheck-worker
sleep 3
然后检查:
curl -s http://127.0.0.1:8100/api/v1/runtime/readiness
echo
curl -s http://127.0.0.1:8100/api/v1/runtime/sync-summary
预期:
runtime/readiness至少不是大陆本机配置错误导致的blockingruntime/sync-summary.data.enabled=trueruntime/sync-summary.data.target_api_base_url=http://152.53.37.118:8100
4. 大陆 worker 检查项
在大陆 worker 上执行:
bash domain-api/deploy/multi-region/check_mainland_worker.sh
预期:
NODE_CODE=mainland-worker-01NODE_REGION=mainlandNODE_ROLE=workerdomaincheck-worker为active (running)
如果大陆 controller 也兼跑检测,再执行:
systemctl status domaincheck-worker --no-pager -l
echo
curl -s http://127.0.0.1:8100/api/v1/runtime/status
预期:
worker.running=trueworker.expected_on_this_node=true
5. 最短联调命令
5.1 在大陆 controller 上
bash domain-api/deploy/multi-region/check_temp_link.sh http://127.0.0.1:8100 http://152.53.37.118:8100
关注点:
push_sync返回code=0或幂等成功- 不再出现目标地址为空
- 不再出现
SYNC_PUSH_ENABLED=false
关注点:
cluster中至少能看到:overseas-control-01- 大陆
mainland-controller-01 - 大陆
mainland-worker-01
sync-summary中能看到来自大陆的接收记录readiness不再是“完全单节点海外态”
6. 后台页面应如何理解
打开:
http://152.53.37.118/
在运行中心里看到下面这些内容时,属于正常:
本机 Worker:当前节点不承载Sync Agent:当前节点不承载当前检测阶段:当前节点不承载代理运行态:不适用
这不是故障,而是因为当前节点就是临时海外控制面。
真正应该关注的是:
集群节点有效执行节点同步状态多机就绪度
7. 判断“到底有几台 Worker 在工作”
如果页面上“在线 Worker 数”和“实际正在跑检测的节点数”看起来不一致,以数据库为准。
在大陆 controller 上执行:
bash domain-api/deploy/multi-region/check_worker_participation.sh
判断规则:
detect_worker_nodes- 看谁在线
- 看谁是
worker_online=true - 看谁
detect_participating=true
detect_job_items- 看任务到底被哪台节点
claimed_by - 这才是“当前真正干活的节点”
- 看任务到底被哪台节点
8. 常见误判
8.1 海外控制面显示“本机 Worker 不承载”
这是正常,不是故障。
8.2 页面显示“在线 Worker 1”,但你部署了 2 台大陆机器
先区分:
- “有效执行节点”是可承担任务的在线节点数
- “当前参与检测节点”是当前真的在领任务、跑任务的节点
如果 controller 没兼跑检测,通常只会看到独立 worker 在真正执行。
8.3 controller 机器也开了 worker 服务,但没有领任务
这不一定是 bug,可能只是当前调度没有分到它。应以 detect_job_items.claimed_by 为准,不要只看服务在线。
9. 联调完成后的回滚
如果你后续要切回正式海外机器,在大陆 controller 上把目标地址改回正式值即可:
sed -i 's#^SYNC_TARGET_API_BASE_URL=.*#SYNC_TARGET_API_BASE_URL=http://正式海外控制面IP:8100#' /etc/default/domaincheck-api
systemctl restart domaincheck-api
systemctl restart domaincheck-sync-agent
sleep 3
如果临时海外控制面不再使用,可在该机器上保留 domaincheck-api 供后续调试,也可以停掉:
systemctl stop domaincheck-api
10. 本次临时海外控制面结论
当前这台测试海外机已经整理为:
- 纯
overseas-control - API 正常
- Worker 不承载
- Sync Agent 不承载
- 数据已清空并按首装态初始化
- 可直接作为大陆 controller 的临时同步接收端
11. 配套脚本
- 临时海外控制面自检:
domain-api/deploy/multi-region/check_temp_overseas_control.sh
- 大陆 controller -> 临时海外控制面联调检查:
domain-api/deploy/multi-region/check_temp_link.sh
- 三机拓扑总览检查:
domain-api/deploy/multi-region/check_temp_topology.sh
- 当前活跃任务由谁真正执行:
domain-api/deploy/multi-region/check_worker_participation.sh
- 大陆 worker 本机自检:
domain-api/deploy/multi-region/check_mainland_worker.sh