You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
自定义转发规则配置示例
配置基于请求方法的流量转发
复制全文
下载 pdf
配置基于请求方法的流量转发
ALB Ingress 在对接 ALB 标准版时,支持配置基于 Header 的流量分发策略,支持通过不同的 HTTP 请求方法来确定转发的后端 Service。​
注意​
配置 ALB Ingress 前,请务必仔细阅读 ALB Ingress 使用注意事项。​
前提条件​
  • 已安装 alb-ingress-controller 组件,并升级至 v0.36.0 及以上版本。详情请参见 升级组件。​
使用限制​
仅在 ALB Ingress 对接 ALB 标准版实例时,支持该配置。更多详情,请参见 ALB 实例类型概述。​
操作步骤​
通过控制台配置​
  1. 单击左侧导航栏中的 集群。​
  1. 在集群列表页面,单击需要配置路由规则的目标集群。​
  1. 在集群管理页面的左侧导航栏中,选择 服务与路由 > 路由规则,单击 创建路由规则。​
  • 在 Ingress 类型 配置项中,选择 应用型负载均衡 ALB。​
  • 在 转发规则 配置项中,勾选 启用,开启自定义转发规则,并配置转发规则详情。​
​​​
​
配置项​
说明​
转发条件​
配置转发条件,本文中选择 HTTP 请求方法,表示基于 HTTP 请求方法进行流量转发。​
在 请求方法 下拉菜单中选择需要匹配的 HTTP 请求方法,包括:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。​
  • 转发条件允许单独配置,也可以组合配置。当配置多个转发条件组合时,这些转发条件之间是 且 的关系。例如,假设您在一条转发规则中同时配置了域名和路径,只有同时匹配指定域名和路径的请求,才会匹配这条转发规则。​
  • 同一转发条件下允许配置多个值,这些值之间是 或 的关系。例如,假设您在 HTTP 请求方法转发条件下配置了多个方法,当请求匹配其中任何一个请求方法时,即满足该转发条件。​
转发动作​
配置转发动作,本例中选择 转发至,即将请求转发到的目标服务和端口。​
​
  1. 单击 确定,完成配置。​
通过 kubectl 命令行配置​
ALB Ingress 支持通过 Annotation 配置基于请求头的转发策略。示例和注解说明如下:​
  • 注解中的{{service-name}}字段必须与spec.rules中配置的后端服务名称对应一致,例如在本例中,正确的注解为ingress.vke.volcengine.com/loadbalancer-conditions.service-demo。​
  • 注解中配置的Method会和spec.rules中的host合并。例如在本例中,转发规则合并后,host为example.com,请求方法为GET或POST的请求,均会转发到service-demo服务中。​
​
apiVersion: networking.k8s.io/v1​
kind: Ingress​
metadata:​
name: alb-ingress # 自定义路由规则名称​
namespace: default # 路由规则所属的命名空间​
annotations:​
ingress.vke.volcengine.com/loadbalancer-conditions.{{service-name}}: | # {{service-name}} 需要替换为服务的名称​
[​
{​
"type": "Method",​
"methodConfig": {​
"values": [​
"GET",​
"POST"​
]​
}​
}​
]​
spec:​
ingressClassName: alb # ALBInstance 的资源名称​
rules:​
- host: example.com​
http:​
paths:​
- pathType: Prefix​
path: / # 请求匹配的路径​
backend:​
service:​
name: service-demo # 需要对接的服务名称​
port:​
number: 80 # 需要对接服务的端口号​
​
ingress.vke.volcengine.com/loadbalancer-conditions.{{service-name}}注解中的参数说明如下表所示。​
​
字段​
类型​
描述​
默认值​
type​
String​
负载均衡转发策略配置类型,本文中为Method,表示配置基于请求方法的转发策略。​
无​
methodConfig.value​
Array of String​
转发策略中的 HTTP 请求方法,包括:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。​
允许配置多个请求方法,多个请求方法之间为 或 关系。​
无​
​
结果验证​
查看配置​
  1. 单击左侧导航栏中 实例管理,在实例列表中选择目标 ALB 实例,在 操作 栏中单击 配置监听器。​
  1. 在 监听器 页面中,选择目标监听器,在 操作 栏中单击 编辑转发规则,查看当前监听器的转发规则。确认请求方法与配置的一致。​
  • ​​​
访问验证​
说明​
验证功能前,您需要在集群中部署后端应用和服务。本例中以 nginx 镜像,服务提供路径为/为例。部署操作方式,请参考 使用 ALB Ingress 实现业务发布。​
  1. 使用 ALB Ingress 中配置的域名访问服务。其中14.***.***.***为 ALB 公网 IP 地址。​
  • ​
    curl -X OPTIONS -H "Host: example.com" http://14.***.***.***​
    ​
  • 预期结果如下,由于访问时使用了未允许的 HTTP 方法,无法正确访问到后端服务。​
  • ​
    <html>​
    <head><title>503 Service Temporarily Unavailable</title></head>​
    <body bgcolor="white">​
    <center><h1>503 Service Temporarily Unavailable</h1></center>​
    </body>​
    </html>​
    ​
  1. 再次使用以下命令,使用允许的 HTTP 请求方法访问服务。​
  • ​
    curl -X GET -H "Host: example.com" http://14.***.***.***​
    ​
  • 预期结果如下,由于使用了允许的 HTTP 请求方法,满足转发规则要求,可以正确访问到后端服务。​
  • ​
    <!DOCTYPE html>​
    <html>​
    <head>​
    <title>Welcome to nginx!</title>​
    <style>​
    html { color-scheme: light dark; }​
    body { width: 35em; margin: 0 auto;​
    font-family: Tahoma, Verdana, Arial, sans-serif; }​
    </style>​
    </head>​
    <body>​
    <h1>Welcome to nginx!</h1>​
    <p>If you see this page, the nginx web server is successfully installed and​
    working. Further configuration is required.</p>​
    ​
    <p>For online documentation and support please refer to​
    <a href="http://nginx.org/">nginx.org</a>.<br/>​
    Commercial support is available at​
    <a href="http://nginx.com/">nginx.com</a>.</p>​
    ​
    <p><em>Thank you for using nginx.</em></p>​
    </body>​
    </html>​
    ​
最近更新时间:2026.04.07 14:19:46
这个页面对您有帮助吗?
有用
有用
无用
无用