Table of Contents

Guardian 守护进程

guardian = 节点守护进程(traffic-guardian),与 worker 构成每台节点的双进程模型: guardian 只管 worker 的命(保活/版本仓/滚动/迁移),不管 raft、不碰流量、不解释配置内容。

双进程的分工

归属 职责
guardian worker 保活与重启、系统服务安装、配置版本仓+LKG(最后已知良好配置)、校验调度(干跑)、五态上报、滚动听令、迁移执行体
worker 全部业务能力(数据面/管理面/raft)——崩了就崩,由 guardian 拉起

为什么需要 guardian:worker 自重启是悖论(崩了就不能自己拉自己);而滚动升级需要 一个与配置版本无关的常驻进程来执行「停旧起新」。guardian 极简、与配置解耦—— worker 起不来时按版本仓里的 LKG 反复拉起,不会把坏配置永久烙进节点。

命令面

traffic-guardian service-run                 # 守护态运行(服务安装的注册动词)
traffic-guardian status                      # 节点状态(worker 进程/版本/五态)
traffic-guardian worker start|stop|restart|drain|pid|query|versions
traffic-guardian config list|apply|show|rollback   # 配置版本仓(rev 目录+LKG 标记)
traffic-guardian key list|rotate             # 控制口密钥
traffic-guardian migration tasks|status|cancel
traffic-guardian service install|uninstall   # 系统服务双形态安装
traffic-guardian upgrade                     # 滚动升级执行(听 CP 编排器令)

部分动词(restart/drain/install/rollback 等)有交互确认,脚本化时注意。

系统服务安装(开机自启+崩溃兜底)

traffic-guardian service install --exe /opt/traffic/traffic-guardian
  • Linux:注册 systemd unit(Restart=always——系统级保活兜底);
  • Windows:注册 SCM 服务;崩溃自动重启(sc failure 策略对应物)。

安装器把 service-run 动词与守护旗标写入服务定义(ExecStart/binPath),开机自启。 安装后 traffic-guardian service-run 由服务管理器拉起,人工不直接跑。

guardian 控制口

guardian↔worker 的本机控制走 IPC(Unix domain socket / Windows 命名管道, 数据根下 guardian.sock)——--bind 三态:

形态 地址
IPC(缺省) unix:///<path>.sock 或 pipe://traffic-guardian
TCP+Bearer http://host:port(远程管理网场景,配系统密钥)

CP 的滚动编排器逐台下指令到各节点 guardian 控制口执行升级序列——详见滚动升级。

无 guardian 的形态

K8s 部署省略 guardian(探针直接指向 worker 管理口,保活交给编排器); 裸跑 worker(traffic-worker run)也可以,只是没有自愈与服务化。