容器连通性
当本地协议栈已启动但无法到达模型后端,或宿主机无法到达 Router、控制面板或指标端点时,使用本指南。
从失败的那一跳开始
一次路由请求会跨越多个网络边界。在默认的 standalone 模式下,Router 自己提供监听器;使用 --gateway extproc 时,Envoy 位于它前面:
client -> Router -> selected provider backend # standalone
client -> Envoy -> Router -> selected provider backend # --gateway extproc
按该顺序检查每一跳:
vllm-sr status
vllm-sr logs envoy # 仅限 --gateway extproc
vllm-sr logs router
curl -sS http://localhost:8899/v1/models
若 /v1/models 不可用,先关注本地协议栈和已发布端口。若它成功但 completions 失败,在响应/日志中检查所选提供方名称,并从 Router 的网络测试该提供方。
localhost 表示当前容器
常见配置错误是把提供方指向 localhost,而推理服务器实际运行在宿主机或另一个容器中。从 Router 容器看,127.0.0.1 和 localhost 指向 Router 容器自身。
配置运行时网络可达的地址:
providers:
models:
- name: local-model
provider_model_id: local-model
api_format: openai
backend_refs:
- name: local-vllm
endpoint: model-server:8000
protocol: http
provider: vllm
当两个服务共享同一网络时,使用容器 DNS 名。对于直接跑在宿主机上的模型服务器,使用容器运行时支持的主机网关名,或容器可达的宿主机 IP。在 Kubernetes 上使用 Service DNS 名,而不是 Pod IP。
vllm-sr serve 会把 host.docker.internal 映射到容器运行时的 host-gateway。Docker 从默认 bridge 网络推导该地址,因此在未配置默认 bridge 的守护进程上("bridge": "none"),CLI 会跳过该映射并记录一条警告。设置 VLLM_SR_HOST_GATEWAY_IP=<宿主机地址> 可在任意运行时上把该名称映射到显式地址。