使用Gateway with Inference Extension路由外部MaaS服务

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文介绍如何通过Gateway with Inference Extension对接百炼服务,实现请求路由时自动添加API Key并重写路径,包含操作步骤及验证方法。

本文以对接百炼为例,演示如何通过Gateway with Inference Extension路由至外部MaaS服务,在路由到指定MaaS服务时、自动添加请求API Key并修改请求路径。

前提条件

操作步骤

步骤一:在集群中创建包含API Key的Secret

执行以下指令,在集群中部署包含百炼API Key的Secret,用于网关路由请求时添加API Key验证信息。

TOKEN=<百炼 API Key>
kubectl create secret generic jwt-credential --from-literal=credential=" Bearer $TOKEN"

步骤二:创建用于自动添加请求API Key的HTTPRouteFilter资源

HTTPRouteFilter用于指定向请求中自动注入请求验证凭据的过程。默认情况下,凭据将被注入到 Authorization 头部中。您也可以通过在 HTTPRouteFilter 的 credentialInjection 部分指定头部字段,将凭据注入到其他头部。

如果请求中已经存在 Authorization 头部或指定的头部,则除非您将 overwrite 设置为 true,否则凭据不会被注入。

执行以下指令,创建HTTPRouteFilter资源。

kubectl apply -f- <<EOF
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: HTTPRouteFilter
metadata:
  name: credential-injection
spec:
  credentialInjection:
    overwrite: true
    credential:
      valueRef:
        name: bailian-credential
EOF

步骤三:创建外部MaaS服务后端声明

Backend资源向网关注册了外部后端服务dashscope.aliyuncs.com,BackendTLSPolicy 指定网关需要以https和百炼服务进行通信。

执行以下指令,创建Backend和BackendTLSPolicy资源。

kubectl apply -f- <<EOF
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: Backend
metadata:
  name: bailian
spec:
  endpoints:
    - fqdn:
        hostname: dashscope.aliyuncs.com
        port: 443
---
apiVersion: gateway.networking.k8s.io/v1alpha3
kind: BackendTLSPolicy
metadata:
  name: enable-backend-tls
spec:
  targetRefs:
  - group: gateway.envoyproxy.io
    kind: Backend
    name: bailian
  validation:
    hostname: dashscope.aliyuncs.com
    wellKnownCACertificates: System
EOF

步骤四:创建网关和网关路由规则

Gateway资源声明了在集群中创建一个带有8080端口监听的网关,HTTPRoute指定了网关上的路由规则:在转发到百炼服务dashscope.aliyuncs.com时,将请求中以/v1开头的路径的请求重写为/compatible-mode/v1开头的请求,以实现与百炼API的兼容。

执行以下指令,创建Gateway和HTTPRoute资源。

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: bailian-gateway
spec:
  gatewayClassName: ack-gateway
  listeners:
  - name: http-bailian
    protocol: HTTP
    port: 8080
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: bailian-route
spec:
  parentRefs:
    - name: bailian-gateway
  rules:
    - backendRefs:
        - group: gateway.envoyproxy.io
          kind: Backend
          name: bailian
      filters:
        - type: URLRewrite
          urlRewrite:
            hostname: dashscope.aliyuncs.com
            path:
              type: ReplacePrefixMatch
              replacePrefixMatch: /compatible-mode/v1
        - type: ExtensionRef
          extensionRef:
            group: gateway.envoyproxy.io
            kind: HTTPRouteFilter
            name: credential-injection
      matches:
        - path:
            type: PathPrefix
            value: /v1

步骤五:验证网关路由

  1. 获取网关公网IP
export GATEWAY_HOST=$(kubectl get gateway/qwen-inference-gateway -o jsonpath='{.status.addresses[0].value}')
  1. 验证网关在8080端口正常将请求转发到百炼服务,并自动添加API Key。
curl http://$GATEWAY_HOST:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-32b",
    "messages": [
      {"role": "user", "content": "你好,这是一个测试"}
    ],
    "enable_thinking": false
  }' -v
相关文章
|
1月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
人工智能 安全
使用Gateway with Inference Extension对接内容安全实现生成式AI内容审查
通过插入External Processing插件,Gateway with Inference Extension可对接阿里云内容安全,实现生成式AI输出的内容审查,确保AI应用合法合规。需先搭建环境并开通文本审核服务,再部署插件及配置策略,最后验证审查效果。
|
4月前
|
Java API Nacos
|
6月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
7月前
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
7月前
|
存储 人工智能 物联网
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
|
11月前
|
负载均衡 Java 应用服务中间件
Gateway服务网关
Gateway服务网关
294 1
Gateway服务网关
|
10月前
|
API
Istio 使用ingress和gateway两种方式公开服务
本文档指导您完成Istio网关的部署与配置。首先安装`istiod`(步骤略过)。接着,创建`ingress.yaml`文件,定义Istio入口网关的服务、部署及权限设置,通过`kubectl apply -f ingress.yaml`命令应用。最后,创建Ingress资源,指定主机名、后端服务及TLS配置,实现对外部请求的路由管理。
916 1
|
Java API 微服务
服务网关Gateway
该博客文章详细介绍了Spring Cloud Gateway的使用方法和概念。文章首先阐述了API网关在微服务架构中的重要性,解释了客户端直接与微服务通信可能带来的问题。接着,文章通过具体的示例代码,展示了如何在Spring Cloud Gateway中添加依赖、编写路由规则,并对路由规则中的基本概念如Route、Predicate和Filter进行了详细解释。最后,文章还提供了路由规则的测试方法。
服务网关Gateway
|
负载均衡 Java 应用服务中间件
Gateway服务网关
本节针对微服务中另一重要组件:网关 进行了实战性演练,网关作为分布式架构中的重要中间件,不仅承担着路由分发(重点关注Path规则配置),同时可根据自身负载均衡策略,对多个注册服务实例进行均衡调用。本节我们借助GateWay实现的网关只是技术实现的方案之一,后续大家可能会接触像:Zuul、Kong等,其实现细节或有差异,但整体目标是一致的。