Gateway API 推理扩展
Gateway API Inference Extension(GAIE)和 Semantic Router 解决路由的不同部分:
- Semantic Router 根据请求含义、策略和配方状态选择逻辑模型或池。
- GAIE 将该池表示为
InferencePool,并让 endpoint picker 选择就绪副本。
当一个公开模型 ID 可以在多个模型池之间选择,且每个池包含多个可互换的服务副本时,将两者一起使用。若每个模型直接映射到一个 Kubernetes Service,请改用更简单的网关集成,例如 Istio。
client
-> Gateway
-> Semantic Router ExtProc
-> HTTPRoute chosen by x-selected-model
-> InferencePool
-> endpoint picker
-> model replica
选择并安装网关栈
使用平台支持的网关实现安装并验证 GAIE。使用上游项目的同一兼容集合;不要混用从不同版本复制的 CRD、chart 和示例。
加入 Semantic Router 之前,确认:
Gateway报告Programmed=True;- 每个
HTTPRoute报告已接受且引用已解析; - 每个
InferencePool有就绪端点;以及 - 直接请求能到达预期的池。
Semantic Router 不安 装、也不拥有网关控制器、GAIE CRD、endpoint picker 或模型服务器。
定义名称约定
Semantic Router 所选的提供商模型会成为 Gateway API 路由使用的请求头。该精确值必须在以下三个对象中一致:
# Router config fragment
providers:
defaults:
model: local/general
models:
- name: local/general
provider_model_id: served-general
api_format: openai
backend_refs:
- name: general-pool
endpoint: general-pool.inference.svc.cluster.local:8000
protocol: http
provider: vllm
weight: 100
# Gateway API fragment
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: general-pool
namespace: inference
spec:
parentRefs:
- name: inference-gateway
rules:
- matches:
- headers:
- type: Exact
name: x-selected-model
value: local/general
backendRefs:
- group: inference.networking.k8s.io
kind: InferencePool
name: general-pool
port: 8000
Router 在请求上写入 x-selected-model。它在响应上以 x-vsr-selected-model 向客户端暴露逻辑选择。GAIE 负责随后在 general-pool 内选择端点。