更新时间:2025-08-19 GMT+08:00

AI推理网关插件

随着大规模语言模型(LLM)及人工智能(AI)推理服务的迅猛发展,云原生AI团队面临着愈加复杂的推理流量治理难题。在AI推理应用场景中,除了传统的基于HTTP路径和协议的流量路由外,还需根据“模型名称”、“推理优先级”以及“模型版本”等AI业务属性,灵活地进行流量分发与灰度发布,以满足日益多样化的业务需求。

为此,CCE Standard/Turbo集群提供AI推理网关插件(Gateway API Inference Extension),以简化前端与后端服务的交互,提高AI服务的性能、可靠性和安全性。该插件是Kubernetes社区基于Gateway API推出的推理流量治理解决方案,其具体优势如下:

  • 模型感知路由:支持根据模型名、模型版本、LoRA适配等业务属性进行流量分发,而不仅限于传统的HTTP路径匹配。
  • 推理优先级调度:支持为不同模型或业务场景设定Criticality,实现更灵活的任务调度和资源利用。
  • 模型灰度发布:支持基于模型名进行流量拆分,实现新模型版本的平滑上线。
  • 智能负载均衡:通过采集模型服务端的实时指标,实现基于负载、健康度的“端点选择”,从而优化推理延迟与资源利用率。
  • 标准开放、可扩展:完全遵循Kubernetes Gateway API生态,支持自定义推理路由扩展,便于和Istio等主流网关集成。

AI推理网关插件适用于需要灵活调度、稳定推理及多环境协同的AI生产化场景,具体如下:

  • 在大规模语言模型(LLM)在线推理场景中,AI推理网关插件能够通过“模型名”、“版本”和“优先级”实现智能流量治理与精确调度。
  • 在支持多模型、多版本共存的AI推理平台中,AI推理网关插件能够提供灰度发布和灵活的流量分配,确保资源的高效利用与推理性能的优化。
  • 在云原生AI平台中,AI推理网关插件能够无缝集成主流推理引擎(如vLLM、Triton),从而实现平台的高度可扩展性与灵活部署。

前提条件

  • 已安装v1.30及以上版本的CCE Standard/Turbo集群。
  • 请根据业务类型创建对应类型的节点和插件,且节点资源充足。
  • 已安装Istio(dev版本:1.26-alpha.80c74f7f43482c226f4f4b10b4dda6261b67a71f),并启用Gateway API相关能力,具体操作请参见Istio / Getting StartedIstio / Kubernetes Gateway API
    • 使用Istio作为基础路由能力,通过安装AI推理网关插件,在流量入口层实现AI场景下基于模型名等业务维度的智能流量分发和自定义路由策略,从而确保外部请求能够根据业务需求被正确转发到相应的AI模型服务实例。
    • 启用Gateway API相关能力,用于定义外部流量进入Kubernetes集群的入口,指定监听的端口、协议和绑定的网关地址,作为所有HTTP流量(如/v1/completions等API调用)进入AI推理服务的统一入口。
  • (可选)当用户业务有需求(例如业务流量较大时),建议提前创建LoadBalancer类型的Service,作为生产流量入口,具体操作请参见负载均衡(LoadBalancer)

注意事项

  • 该插件安装后不会影响现有Service、Ingress等Kubernetes原生流量入口资源。
  • 该插件属于实验性插件,功能随社区快速演进,升级或变更需关注版本兼容性。
  • 该插件当前正处于上线阶段,已发布区域请以控制台实际为准
  • 该插件处于公测阶段,您可体验最新插件特性,但需要注意该版本的稳定性未得到完全的验证,不适用于CCE服务SLA

安装插件

安装插件前,请确保已安装Istio(dev版本:1.26-alpha.80c74f7f43482c226f4f4b10b4dda6261b67a71f),并启用Gateway API相关能力,否则插件可能安装失败。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“插件中心”,在右侧找到AI推理网关插件,单击“安装”
  3. 在“插件安装”页面右下角单击“安装”。此时,插件将自动部署Inference Extension相关CRD(不含运行时容器)。当“插件中心 > AI推理网关插件”右上角变为“已安装”时,则说明安装成功。

    安装完成后,即可通过kubectl方式部署自定义HTTPRoute、InferenceModel、InferencePool等AI流量治理资源。

卸载插件

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“插件中心”,在右侧找到AI推理网关插件,单击“卸载”
  3. 在“卸载插件”的弹窗中输入“DELETE”,单击“确定”。当“插件中心 > AI推理网关插件”右上角变为“未安装”时,则说明卸载成功。

    卸载该插件前,可以先清理相关自定义资源(如InferenceModel、InferencePool、HTTPRoute等)。

使用示例

根据Kubernetes Special Interest Groups (SIGs)提供的vLLM GPU部署用例,向您演示AI推理网关插件的典型用法。由于集群需要下载外部YAML文件,所以您需要为集群中任一节点绑定EIP。其中,EIP涉及一定费用,具体请参见EIP价格计算器

  1. 在已有的ECS中安装kubectl,并使用kubectl连接集群,具体操作请参见通过kubectl连接集群
  2. 依次执行以下命令,通过gpu-deployment.yaml部署vLLM(Vectorized Large Language Model)服务,以提供运行AI推理服务实例,为AI Gateway后续的流量分发、模型推理和负载均衡提供真实的后端服务目标。

    kubectl create secret generic hf-token --from-literal=token=<your-hf-token>
    kubectl apply -f https://github.com/kubernetes-sigs/gateway-api-inference-extension/raw/main/config/manifests/vllm/gpu-deployment.yaml

  3. 依次执行以下命令,通过inferencemodel.yamlinferencepool-resources.yaml部署InferenceModel和InferencePool。创建InferenceModel和InferencePool等资源,用于定义模型服务的业务属性、版本、优先级及其后端服务池,实现AI Gateway对多个模型/实例的统一编排和流量治理。

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api-inference-extension/refs/heads/release-0.3/config/manifests/inferencemodel.yaml
    kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api-inference-extension/refs/heads/release-0.3/config/manifests/inferencepool-resources.yaml

  4. 依次执行以下命令,通过destination-rule.yamlhttproute.yaml部署DestinationRule及自定义HTTPRoute。

    # 配置DestinationRule
    kubectl apply -f https://github.com/kubernetes-sigs/gateway-api-inference-extension/raw/main/config/manifests/gateway/istio/destination-rule.yaml
    # 部署自定义HTTPRoute
    kubectl apply -f https://github.com/kubernetes-sigs/gateway-api-inference-extension/raw/main/config/manifests/gateway/istio/httproute.yaml

    上述命令中,YAML文件的具体作用如下:

    • destination-rule.yaml:用于定义Istio在服务间流量转发时的连接策略和负载均衡行为。在本场景下,主要用于临时关闭TLS校验(因为推理扩展目前用自签名证书),确保流量能够顺利地在网关和后端推理服务之间转发,不被TLS拦截。
    • httproute.yaml:部署自定义HTTPRoute资源,定义流量在Gateway入口后的详细转发和路由规则。支持基于“模型名、API路径、请求头”等AI业务属性进行智能路由,实现“按需将请求分发到特定模型服务/版本/池”的AI场景流量治理。

  5. 执行以下命令,验证HTTPRoute状态。当回显结果显示“Accepted=True”和“ResolvedRefs=True”时,表示自定义HTTPRoute部署成功,流量治理已生效。

    kubectl get httproute llm-route -o yaml

  6. 执行以下命令,获取Gateway IP并发起推理请求,以使用推理服务。

    IP=$(kubectl get gateway/inference-gateway -o jsonpath='{.status.addresses[0].value}')
    PORT=80
    curl -i ${IP}:${PORT}/v1/completions -H 'Content-Type: application/json' -d '{
      "model": "food-review",
      "prompt": "Write as if you were a critic: San Francisco",
      "max_tokens": 100,
      "temperature": 0
    }'

版本记录

表1 AI推理网关插件版本记录

插件版本

支持的集群版本

更新特性

0.3.0

v1.30

v1.31

CCE Standard/Turbo集群支持使用AI推理网关插件