请确保您已阅读安装文档后再继续操作。
Alauda Container Platform -> Networking -> RoutesCreate Route 按钮| 字段 | 说明 | YAML 路径 |
|---|---|---|
| Publish to Listener | 发布到监听器 | .spec.parentRefs |
| Hostnames | 主机名 | .spec.hostnames |
| Matches | 匹配规则 | .spec.rules[].matches |
| Filters | 过滤器 | .spec.rules[].filters |
| Backend Instance | 后端 | .spec.rules[].backendRefs |
| Session Affinity | 会话亲和 | .spec.rules[].sessionPersistence |
| 字段 | 说明 | YAML 路径 |
|---|---|---|
| Publish to Listener | 发布到监听器 | .spec.parentRefs |
| Backend Instance | 后端 | .spec.rules[].backendRefs |
每个路由都是由 GatewayAPI 规范定义的 CR。有关每种路由类型的字段和配置选项的详细信息,请参阅官方文档:
路由中的 hostnames 字段是字符串数组。
它遵循主机名交集规则。
sectionName 是监听器名称。Gateway 所在命名空间的监听器。跨命名空间附加请参阅附加到另一个命名空间创建的网关。每个路由可以包含多个规则。每条规则由以下组件组成:
定义请求被此规则路由时必须满足的条件。
一条规则可以有多个匹配:
示例:如果匹配1要求 path=/api 且 header=v1,匹配2要求 query=test,则请求满足 (path=/api 且 header=v1) 或 (query=test) 之一即被路由。
| 对象 | 方法 | 值类型 | 说明 | 值要求 |
|---|---|---|---|---|
| Path | ||||
Exact | 路径(字符串) | 精确匹配 URL 路径且区分大小写。即 /abc 只匹配 /abc,不匹配 /abc/、/Abc 或 /abcd。 | 必须以 / 开头,不允许连续 //。 | |
PathPrefix | 路径(字符串) | 基于 URL 路径前缀匹配,按 / 分割。匹配区分大小写,且按路径元素逐个匹配。例如 /abc、/abc/ 和 /abc/def 都匹配前缀 /abc,但 /abcd 不匹配。 | 必须以 / 开头,不允许连续 //。 | |
RegularExpression | 路径(字符串) | 正则表达式引擎:RE2。 | 例如 /api/v1/.*。 | |
| Header | ||||
Exact | 名称(请求头键)+值 | 精确匹配请求头值。 | ||
RegularExpression | 名称(请求头键)+值 | 正则表达式引擎:RE2。 | ||
| QueryParam | ||||
Exact | 名称(参数键)+值 | 精确匹配查询参数值。 | 参数值长度:1-1024 字符 | |
RegularExpression | 名称(参数键)+值 | 正则表达式引擎:RE2。 | ||
| Method | - | 方法名称 | HTTP 方法匹配。 | GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE、PATCH |
| 条件类型 | 官方文档链接 |
|---|---|
| Path | HTTPPathMatch |
| Headers | HTTPHeaderMatch |
| QueryParams | HTTPQueryParamMatch |
| Method | HTTPMethod |
指定对请求/响应进行的转换或修改。
| 类型 | 方法 | 值类型 | 说明 | 值要求 |
|---|---|---|---|---|
| RequestHeaderModifier | Set | 名称(字符串)+值(字符串) | 覆盖请求头指定名称和值 | 最多16项,值长度1-4096字符 |
Add | 名称(字符串)+值(字符串) | 添加请求头,追加到已有值 | 最多16项,值长度1-4096字符 | |
Remove | []string | 从请求中移除指定请求头(不区分大小写) | 最多16项 | |
| ResponseHeaderModifier | Set | 名称(字符串)+值(字符串) | 覆盖响应头指定名称和值 | 最多16项,值长度1-4096字符 |
Add | 名称(字符串)+值(字符串) | 添加响应头,追加到已有值 | 最多16项,值长度1-4096字符 | |
Remove | []string | 从响应中移除指定响应头(不区分大小写) | 最多16项 | |
| RequestRedirect | Scheme | 字符串 | Location 头的协议(http/https) | 可选,枚举:http | https |
Hostname | PreciseHostname | Location 头的主机名 | 可选 | |
ReplaceFullPath | 字符串 | 替换整个请求路径 | 可选,最大1024字符 | |
ReplacePrefixMatch | 字符串 | 替换匹配的路径前缀 | 可选,最大1024字符,仅支持 PathPrefix 匹配 | |
Port | PortNumber | Location 头的端口号 | 可选,范围:1-65535 | |
StatusCode | 整数 | HTTP 重定向状态码 | 可选,默认302,枚举:301 | 302 | |
| URLRewrite | Hostname | PreciseHostname | 请求中重写的主机名 | 可选 |
ReplaceFullPath | 字符串 | 替换整个请求路径 | 可选,最大1024字符 | |
ReplacePrefixMatch | 字符串 | 替换匹配的路径前缀 | 可选,最大1024字符,仅支持 PathPrefix 匹配 | |
| CORS | AllowOrigins | []string | CORS 请求允许的来源列表 | 可选 |
AllowMethods | []HTTPMethod | 允许的 HTTP 方法列表 | 可选,例如 GET、POST、PUT | |
AllowHeaders | []string | CORS 请求允许的请求头列表 | 可选 | |
ExposeHeaders | []string | 响应中暴露给客户端的请求头列表 | 可选 | |
MaxAge | Duration | CORS 预检请求的缓存时间 | 可选 | |
AllowCredentials | bool | 是否允许携带凭证的 CORS 请求 | 可选 |
注意:
RequestRedirect 和 URLRewrite 不能同时用于同一规则ReplacePrefixMatch 仅兼容 PathPrefix 类型的 HTTPRouteMatch| 过滤器类型 | 官方文档链接 |
|---|---|
| RequestHeaderModifier | HTTPHeaderFilter |
| ResponseHeaderModifier | HTTPHeaderFilter |
| RequestRedirect | HTTPRequestRedirectFilter |
| URLRewrite | HTTPURLRewriteFilter |
| CORS | HTTPCORSFilter |
| RequestMirror | HTTPRequestMirrorFilter |
| HTTPExternalAuthFilter | HTTPExternalAuthFilter |
定义匹配请求应转发到的目标服务。
每个服务可以设置 weight 字段,指定流量分配比例。
HTTPRoute 规则支持额外的配置字段,如重试策略、超时和其他流量管理参数。
| 字段 | 规范链接 |
|---|---|
.spec.rules[].timeouts | HTTPRouteTimeouts |
| 字段 | 规范链接 |
|---|---|
.spec.rules[].retry | HTTPRouteRetry |
配置会话亲和设置,确保来自同一客户端的请求被路由到同一后端。
| 字段 | 规范链接 |
|---|---|
.spec.rules[].sessionPersistence | SessionPersistence |