配置 GatewayAPI Route
目录
概述前提条件配置通过 Web 控制台配置创建 HTTPRoute创建 TCP/UDP Route创建 GRPCRoute创建 TLSRoute通过 YAML 配置路由字段参考发布到监听器后端主机名规则HTTPRoute 参考GRPCRoute 匹配和过滤器参考TLSRoute 参考查看拓扑下一步相关任务概述
本文档说明了在 Gateway 就绪后如何配置 Route 资源。Route 绑定到一个或多个网关监听器,并定义匹配的流量如何转发到后端服务。
在推荐的工作流程中,本文档位于配置 GatewayAPI Gateway之后,配置 GatewayAPI Policy之前。
除了创建和更新操作外,本文档还介绍了 ACP Web 控制台提供的额外路由查看功能。
前提条件
请确保在继续之前完成以下操作:
- 阅读配置 GatewayAPI Gateway,了解监听器、绑定规则和
EnvoyProxy - 创建一个
Gateway,供您的Route绑定使用
本文档先分别介绍每种路由类型,然后提供 YAML 示例,最后在共享参考部分说明通用路由概念。
配置
Route 绑定到 Gateway 上的一个或多个监听器。您可以选择的监听器取决于路由类型、监听器协议以及监听器允许的路由命名空间设置。
通过 Web 控制台配置
- 进入
Alauda Container Platform -> Networking -> Gateway -> Routes - 点击
Create Route按钮 - 选择路由类型(HTTPRoute、TCPRoute、UDPRoute、GRPCRoute 或 TLSRoute)
创建 HTTPRoute
选项配置
Options 字段允许您配置高级流量管理设置:
创建 TCP/UDP Route
创建 GRPCRoute
创建 TLSRoute
通过 YAML 配置
以下最小示例创建了一个 HTTPRoute,绑定到 demo Gateway 的 https 监听器,并将匹配流量转发到后端 Service。
如果您需要更多路由类型和高级 HTTPRoute 选项,请使用以下完整示例:
路由字段参考
每个路由都是由 GatewayAPI 规范定义的 CR。有关每种路由类型的字段和配置选项的详细信息,请参阅官方文档:
发布到监听器
在 Web 控制台中
在 Web 控制台中,您可以选择多个监听器发布路由。可用的监听器候选项基于以下条件过滤:
- 用户权限:您必须有访问该网关命名空间的权限(项目必须包含该命名空间)。
- 路由命名空间白名单:网关监听器允许的路由命名空间必须包含路由所在的命名空间。
- 路由类型匹配:路由的类型(HTTPRoute、GRPCRoute 等)必须匹配监听器允许的路由类型。
对于更复杂的跨命名空间场景,请参阅绑定到另一个命名空间创建的网关。
在 YAML 中
sectionName是监听器名称。- 路由只能绑定到支持其特定类型的监听器。
- 默认情况下,路由只能绑定到与
Gateway同一命名空间的监听器。
跨命名空间绑定请参阅绑定到另一个命名空间创建的网关。
后端
定义匹配请求应转发到的目标服务。
每个服务可以有一个 weight 字段,用于指定流量分配比例。
主机名
hostnames 字段由 HTTPRoute、GRPCRoute 和 TLSRoute 支持。TCPRoute 和 UDPRoute 不使用此字段。
hostnames 是字符串数组,遵循主机名交集规则。
规则
每个路由可以包含多个规则。每条规则由以下部分组成:
匹配
定义请求被此规则路由的条件。
一条规则可以有多个匹配:
- 每个匹配包含多个条件(如路径、头部、查询参数、方法)
- 条件内部使用与(AND)逻辑(全部满足)
- 匹配之间使用或(OR)逻辑(任一匹配满足即可)
示例:如果匹配1要求 path=/api 且 header=v1,匹配2要求 query=test,则请求满足 (path=/api 且 header=v1) 或 (query=test) 之一即被路由。
匹配结构在路由类型间通用,但支持的匹配条件依路由类型不同而异。例如,HTTPRoute 和 GRPCRoute 支持不同的匹配条件集。
过滤器
指定对请求或响应应用的转换或修改。
过滤器概念在路由类型间通用,但支持的过滤器类型依路由类型不同而异。
HTTPRoute 参考
以下匹配条件、过滤器类型和高级选项用于 HTTPRoute。
匹配条件类型
匹配条件参考
过滤器类型
注意:
RequestRedirect和URLRewrite不能在同一规则中同时使用ReplacePrefixMatch仅兼容PathPrefix类型的 HTTPRouteMatch- 头部名称根据 RFC 7230 不区分大小写
- 同一头部的多个值必须使用 RFC 7230 逗号分隔格式
过滤器参考
选项
Options 部分为 HTTPRoute 提供了高级流量管理功能,包括超时、重试和会话保持设置。
超时
- 请求超时从接收完整客户端请求后开始计时,涵盖整个事务,可能包含多次后端调用(如重试时)。
- 指定时,后端请求超时必须小于等于请求超时。
- 选择“默认”时,字段设为 nil(使用实现默认)。
- 选择“无限制”时,字段设为 "0s"(最大可能值)。
重试
- 默认情况下,重试禁用。如果未配置或留空重试字段,网关不会重试失败请求。
- 必须显式配置重试次数和重试条件,才能启用重试功能。
- 在 Web 控制台配置重试时,若删除所有重试配置项,字段设为 nil。
会话保持
配置会话亲和性,确保来自同一客户端的请求路由到相同后端。
GRPCRoute 匹配和过滤器参考
以下匹配条件和过滤器类型用于 GRPCRoute。
GRPCRoute 匹配
GRPCRoute 支持以下匹配类型:
GRPCRoute 过滤器
GRPCRoute 仅支持 RequestHeaderModifier 过滤器:
GRPCRoute 不支持超时、重试或会话保持等选项。
TLSRoute 参考
以下行为特定于 TLSRoute。
TLSRoute的主机名是可选的。如果监听器有主机名但TLSRoute没有,则TLSRoute自动继承监听器的主机名。TLSRoute只能绑定到协议为TLS且模式为Passthrough的监听器。
查看
拓扑
以下功能是 ACP Web 控制台提供的额外查看能力。
拓扑标签页提供路由及其关联资源的可视化表示。它显示所有绑定到路由的策略,以及它们依赖的资源,如 SecurityPolicy 引用的 secret。
此功能目前仅支持 HTTPRoute。
下一步
路由绑定到监听器后,如需高级流量或安全策略,请继续配置配置 GatewayAPI Policy。更多操作示例请参阅Envoy Gateway 任务。