使用ACK推理网关基于域名路由到不同模型服务

简介: 本文介绍如何在ACK推理网关中通过Gateway API配置基于不同域名的路由规则,实现将请求按域名分发至qwen和deepseek等不同模型服务,并提供完整的操作步骤与测试示例。

在实际使用场景中,基于网关的不同域名、将请求路由到不同的模型服务是常见的需求。本文简单介绍如何在ACK推理网关上使用Gateway API配置基于不同的域名路由到不同的模型服务。

前提条件

  • 已经在集群中部署了qwen和deepseek 模型服务,并声明了如下两个对应的InferencePool资源
apiVersion: inference.networking.x-k8s.io/v1alpha2
kind: InferencePool
metadata:
  name: qwen-inference-pool
  namespace: default
spec:
  selector:
    app: qwen
  targetPortNumber: 8000
---
apiVersion: inference.networking.x-k8s.io/v1alpha2
kind: InferencePool
metadata:
  name: deepseek-inference-pool
  namespace: default
spec:
  selector:
    app: deepseek
  targetPortNumber: 8000

操作步骤

1、创建Gateway资源,创建网关

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: inference-gateway
spec:
  gatewayClassName: ack-gateway
  infrastructure:
    parametersRef:
      group: gateway.envoyproxy.io
      kind: EnvoyProxy
      name: custom-proxy-config
  listeners:
    - allowedRoutes:
        namespaces:
          from: Same
      name: http-llm
      port: 8080
      protocol: HTTP

2、创建两个HTTPRoute资源,在网关上创建两条HTTP路由

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: qwen-inference-route
  namespace: default
spec:
  parentRefs:
    - group: gateway.networking.k8s.io
      kind: Gateway
      name: inference-gateway
  hostnames:
    - "qwen.test"
  rules:
    - backendRefs:
        - group: inference.networking.x-k8s.io
          kind: InferencePool
          name: qwen-inference-pool
          weight: 1
      matches:
        - path:
            type: PathPrefix
            value: /v1
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: deepseek-inference-route
  namespace: default
spec:
  parentRefs:
    - group: gateway.networking.k8s.io
      kind: Gateway
      name: inference-gateway
  hostnames:
    - "deepseek.test"
  rules:
    - backendRefs:
        - group: inference.networking.x-k8s.io
          kind: InferencePool
          name: deepseek-inference-pool
          weight: 1
      matches:
        - path:
            type: PathPrefix
            value: /v1

两条HTTPRoute分别具有不同的hostnames字段,以区分不同的域名。

3、测试路由效果

export GATEWAY_HOST=$(kubectl get gateway/inference-gateway -o jsonpath='{.status.addresses[0].value}')

将请求带上qwen.test域名

curl -XPOST $GATEWAY_HOST:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Host: qwen.test" \
  -d '{
    "model": "qwen",
    "messages": [{"role": "user", "content": "你是谁?"}],
    "temperature": 0.7
  }'

预期结果

{"id":"chatcmpl-30793fc0-35bc-470e-b622-73c44312f690","object":"chat.completion","created":1761530271,"model":"qwen","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"我是来自阿里云的大规模语言模型,我叫通义千问。","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":22,"total_tokens":39,"completion_tokens":17,"prompt_tokens_details":null},"prompt_logprobs":null}

将请求带上deepseek.test域名

curl -XPOST $GATEWAY_HOST:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Host: deepseek.test" \
  -d '{
    "model": "deepseek",
    "messages": [{"role": "user", "content": "你是谁?"}],
    "temperature": 0.7
  }'

预期结果

{"id":"chatcmpl-56027d40-0183-402c-8525-7858213573db","object":"chat.completion","created":1761530292,"model":"deepseek","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。\n</think>\n\n您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":null}],"usage":{"prompt_tokens":8,"total_tokens":81,"completion_tokens":73,"prompt_tokens_details":null},"prompt_logprobs":null}
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
运维 监控 网络协议
排障本身不慢,MTTR却一直降不下来?时间都耗在这三个流程断点上
本文剖析MTTR居高不下的三大非技术断点:信息传递失真、工单推进停滞、跨部门信号断档。指出问题本质是流程链路断裂,而非排障能力不足,并给出低成本、可落地的三步改进方案:加推进超时提醒、标准化服务台字段、打通业务上报与端到端探测。(239字)
658 1
排障本身不慢,MTTR却一直降不下来?时间都耗在这三个流程断点上
|
6月前
|
监控 NoSQL API
使用ASMGlobalRateLimiter实现基于调用来源和请求路径的精细化全局限流
本文介绍在阿里云ASM服务网格中,结合Lua Filter与ASMGlobalRateLimiter,基于调用方Service Account身份和API路径实现多维度精细化全局限流,满足不同客户端访问同一服务不同接口需差异化配额的业务需求。(239字)
|
人工智能 机器人 新能源
深化新工科建设 共探智能新未来 | 阿里云支持南京大学苏州校区“AI DAY”盛大启幕丨云工开物
9月12日,南京大学苏州校区举办“AI新视界:深化新工科建设进行式”活动,采用教师与学生双专场模式,通过主题分享、实践演练、产业课题发布等形式,搭建产教融合AI交流平台,助力未来产业科技人才培养。
|
人工智能 缓存 Kubernetes
ACK GIE配置建议
Gateway with Inference Extension是基于Kubernetes社区Gateway API及其扩展规范实现的增强型组件,支持四层/七层路由服务,并面向生成式AI推理场景提供负载均衡优化、服务管理简化等能力,适用于AI推理服务的高可用部署与性能优化。在不同的场景使用ACK Gateway with Inference Extension时,可能需要根据业务需求和高可用需要对网关和推理扩展进行不同的配置调整。本文主要介绍在实际业务场景中针对ACK GIE的配置建议,以获得更好的使用效果。
1118 23
|
6月前
|
Shell Python Windows
Python 3.14安装教程 Windows版:环境变量配置+IDLE启动+自定义路径指南
Python是成熟稳定的开源面向对象语言,简单易学、跨平台。本文详解Python 3.14安装:下载解压→管理员运行Setup→勾选添加PATH和“为所有用户安装”→自定义路径(如D:\Python314)→完成安装→通过IDLE验证成功。
|
9月前
|
弹性计算 人工智能 运维
2026年阿里云秒级部署OpenClaw(Clawdbot)并接入skills保姆级教程
2026年,OpenClaw(原Clawdbot,曾用名Moltbot)凭借轻量化架构、高适配性及强大的自动化能力,成为阿里云生态下最热门的AI自动化代理工具,其秒级部署方案彻底打破开源工具的技术门槛,无需复杂环境配置,零基础新手也能轻松上手。OpenClaw本身仅提供核心编排框架,而Skills作为其“能力扩展插件”,能赋予它网页浏览、邮件管理、数据统计、多平台联动等实操能力,二者结合可快速搭建专属智能助手,适配个人办公、企业运维、AI创意生产等多场景。
1241 6
|
缓存 负载均衡 监控
理解Envoy代理的线程模型与性能优化
理解Envoy代理的线程模型与性能优化
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
1030 5
|
运维 Kubernetes Java
Higress 开源一周年:新版本,新标准,新工具,新征程
Higress 开源一周年:新版本,新标准,新工具,新征程
1301 128