Pull Request已成功合入, 合并人@wangyang
(感谢 tobking 的贡献)变更摘要
引擎改为由 NodeManager 原生拉起 vLLM/SGLang、Engine Server 下线后,本 PR 清理了 Endpoint、配置、注册/心跳及 Controller 组装路径上残留的 mgmt_port 控制面端口字段(引擎侧仅保留业务 HTTP 端口),同时补齐不依赖 Controller/NodeManager/K8s 的 Coordinator 独立部署模式:新增注册 CLI python3 -m motor.coordinator.register、管理面实例查询接口 GET /instances 以及用户指南 docs/zh/user_guide/deployment/standalone.md,并同步对齐 grpcio/protobuf 依赖版本。
主要改动
-
删除残留控制面端口字段:从
Endpoint模型、RegisterMsg、EndpointConfig/NodeManagerConfig、LaunchContext、InstanceAssembler、RegisterManager、心跳上报及port_allocator端口分配中移除mgmt_port/mgmt_ports,引擎侧仅保留business_port/service_ports;Endpoint构造器通过**_unused兜底并新增 UT,保证旧注册/刷新 JSON 中残留的mgmt_port不再报错。 -
新增独立部署注册 CLI:新增
motor/coordinator/register.py,支持python3 -m motor.coordinator.register,默认set覆盖全表、add/del增量、list查询;实例id由role+ 首个IP:PORT经 CRC32 稳定派生,同一组 endpoint 可增可删,支持--prefill/--decode/--id/--model-name/--dry-run等参数。 -
新增管理面实例查询接口:
ManagementServer增加GET /instances,通过InstanceManager.snapshot_instances()汇总 available/unavailable/paused 实例,返回 id、role、job_name、model_name、status 及 endpoints 摘要,并配套补充接口说明与 UT。 -
新增独立部署资料:新增
docs/zh/user_guide/deployment/standalone.md用户指南,.nav.yaml、目录及部署概述增加「Coordinator 独立部署」入口;管理接口文档补充GET /instances,配置参考/NodeManager/Coordinator 开发者文档去掉mgmt_port相关说明。 -
依赖版本对齐:
scripts/generate_proto.sh与tests/run_tests.sh将grpcio/grpcio-tools最低版本提升至1.82.1、protobuf>=7.35.1,<8.0.0,避免 gencode/runtime 不匹配;PR 描述中同时移除了未使用的httpx2依赖。


- ❌ PR 未关联里程碑或 Issue
- ❌ PR 新增代码 2825 行超过 1000 行,且标题未标注"反合"
请修正后重新提交,或联系仓库管理员。


/lgtm


1. 合入背景
引擎改为由 NodeManager 原生拉起 vLLM/SGLang、Engine Server 下线后,Endpoint、配置及注册路径中仍残留不再使用的
mgmt_port控制面字段。同时,已有原生 Prefill/Decode 引擎的用户需要一种不依赖 Controller、NodeManager 和 Kubernetes、仅部署 Coordinator 的 PD 调度方式。本 PR 清理废弃字段,补齐 Coordinator 独立部署、实例管理和管理面安全能力,并根据检视意见加固实例注册一致性。
关联 ISSUE:#394。
2. 修改内容
清理废弃控制面字段
mgmt_port/mgmt_ports。mgmt_port、拼写错误字段等直接校验失败。Coordinator 独立部署与注册 CLI
python3 -m motor.coordinator.register,支持set、add、del、list。GET /instances检查已有冲突;按 endpoint 或 ID 删除时先获取真实注册身份,未知 ID 拒绝删除。/v1/models返回空列表时判定为不健康;可通过--no-health-check显式跳过探测。实例管理一致性加固
Controller 最终一致性兜底
管理面安全与可观测性
GET /instances,汇总 available、unavailable、paused 实例摘要。X-Motor-Management-Key保护管理接口。127.0.0.1,跨主机、Docker、Kubernetes 监听和 API Key 配置移至附录。依赖约束
0.100.0;Pydantic 限定为>=2.0.0,<3.0.0。3. 资料变更
涉及资料变更:
docs/zh/user_guide/deployment/standalone.md,并补充部署导航入口。GET /instances、管理 API Key 和同步升级要求。4. 接口变更
涉及客户面可见接口变更:
mgmt_port,未知字段严格拒绝;所有组件必须同步升级。GET /instances。X-Motor-Management-Key。python3 -m motor.coordinator.register。5. 测试结果
122 passed。25 passed。49 passed。git diff --check通过。6. CheckList
[x] 代码注释完备
[x] 正确记录维测日志
[x] 是否有 UT 用例
[x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题