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

容器服务

复制全文
下载 pdf
自定义转发规则配置示例
配置转发流量限速
复制全文
下载 pdf
配置转发流量限速
ALB Ingress 支持配置流量限速功能,当请求经过 ALB 时,ALB 可以将特定的访问请求进行 QoS 限速。​
注意​
配置 ALB Ingress 前,请务必仔细阅读 ALB Ingress 使用注意事项。​
前提条件​
  • 已安装 alb-ingress-controller 组件,并升级至 v0.35.0 及以上版本。详情请参见 升级组件。​
使用限制​
限速 转发动作必须与 转发至 转发动作同时配置。更多使用限制和注意事项,请参见 创建转发规则(标准版)、创建转发规则(基础版)。​
操作步骤​
通过控制台配置​
ALB Ingress 支持通过控制台配置转发流量限速。对接 ALB 标准版和基础版时的配置略有不同。​
​
ALB 标准版
ALB 基础版
​
  1. 单击左侧导航栏中的 集群。​
  1. 在集群列表页面,单击需要配置路由规则的目标集群。​
  1. 在集群管理页面的左侧导航栏中,选择 服务与路由 > 路由规则,单击 创建路由规则。​
  • 在 Ingress 类型 配置项中,选择 应用型负载均衡 ALB。​
  • 在 转发规则 配置项中,勾选 启用,开启自定义转发规则,并配置转发规则详情。​
​​​
​
配置项​
说明​
转发条件​
配置转发条件,包括 域名、路径 和 HTTP 标头。​
  • 转发条件允许单独配置,也可以组合配置。当配置多个转发条件组合时,这些转发条件之间是 且 的关系。例如,假设您在一条转发规则中同时配置了域名和路径,只有同时匹配指定域名和路径的请求,才会匹配这条转发规则。​
  • 同一转发条件下允许配置多个值,这些值之间是 或 的关系。例如,假设您在域名转发条件下配置了多个值,当请求的域名匹配其中任何一个值时,即满足该转发条件。​
转发动作​
配置转发动作。​
  • 配置转发动作 限速,并配置限速值 QPS。​
  • 配置转发动作 转发至,并选择集群中已存在的服务名称、端口号和权重。​
说明​
配置 限速 动作时,必须同时配置 转发至 动作,用于指定需要进行限速的转发链路。​
​
  1. 单击 确定,完成配置。​
​
通过 kubectl 命令行配置​
ALB Ingress 支持通过 Annotation 配置转发流量限速。对接 ALB 标准版和基础版时的配置略有不同。​
​
ALB 标准版
ALB 基础版
​
ALB 标准版的配置示例和注解说明,如下所示:​
注意​
注解中的{{service-name}}字段必须与spec.rules中配置的后端服务名称对应一致,例如在本例中,正确的注解为ingress.vke.volcengine.com/loadbalancer-actions.service-demo。​
​
apiVersion: networking.k8s.io/v1​
kind: Ingress​
metadata:​
name: alb-ingress # 自定义路由规则名称​
namespace: default # 路由规则所属的命名空间​
annotations:​
ingress.vke.volcengine.com/loadbalancer-actions.{{service-name}}: | # {{service-name}} 需要替换为服务的名称​
[​
{​
"type": "TrafficLimit",​
"trafficLimitConfig": {​
"qps": 100​
}​
}​
]​
spec:​
ingressClassName: alb # ALBInstance 的资源名称​
rules:​
- host: example.com # 需要对外提供访问的域名​
http:​
paths:​
- pathType: Prefix # 路径匹配规则,默认为 Prefix(前缀匹配)​
path: / # 请求匹配的路径​
backend:​
service:​
name: service-demo # 服务名称,注意需要和注解 loadbalancer-actions.{{service-name}} 里的 {{service-name}} 一致​
port: ​
number: 80 # 需要对接服务的端口号​
​
ingress.vke.volcengine.com/loadbalancer-actions.{{service-name}}注解中的参数说明如下表所示。​
​
字段​
类型​
描述​
默认值​
type​
String​
自定义转发规则的动作类型,当配置转发流量限速时,必须配置为TrafficLimit。​
无​
trafficLimitConfig.qps​
Integer​
该转发规则的 QPS(每秒请求数)。取值范围为 100~400000。​
无​
​
​
​
结果验证​
查看配置​
说明​
ALB 标准版和基础版的转发规则详情界面略有不同,本文以查看 ALB 标准版界面为例。​
  1. 单击左侧导航栏中 实例管理,在实例列表中选择目标 ALB 实例,在 操作 栏中单击 配置监听器。​
  • ​alt​​
  1. 在 监听器 页面中,选择目标监听器,在 操作 栏中单击 编辑转发规则,查看当前监听器的转发规则。可以看到新增的限速规则。​
  • ​​​
  1. 单击转发规则中的 ​alt​,支持查看规则详情。规则配置详情,应该与下发的规则一致。​
  • ​​​
访问验证​
说明​
  • 验证功能前,您需要在集群中部署应用和服务。本例中以 nginx 镜像,服务提供路径为/为例。部署方式可参见 使用 ALB Ingress 实现业务发布。​
  • 您可以使用多种工具验证流量限速功能,本文以 ab(Apache Bench) 为例,仅供参考。​
  1. (可选)在本地环境中配置域名和 IP 的 DNS 解析关系。其中14.***.***.***为 ALB 公网 IP 地址。​
  • ​
    echo "14.***.***.*** example.com" >> /etc/hosts​
    ​
  1. 执行 ab 压测命令,配置总请求数和并发数,超过限速阈值。其中,-n表示总请求数,-c表示并发数。​
  • ​
    ab -n 2000 -c 200 http://example.com/​
    ​
  • 预期结果如下,测试报告中的Requests per second参数为实际 QPS,可以看到与预期的一致。​
  • ​
    ...​
    Server Software: nginx/1.25.3​
    Server Hostname: example.com​
    Server Port: 80​
    ​
    Document Path: /​
    Document Length: 615 bytes​
    ​
    Concurrency Level: 200​
    Time taken for tests: 20.012 seconds # 压测时长约 20 秒​
    Complete requests: 2000 # 总请求数​
    Failed requests: 1002 # 超过限速的请求被拒绝(429 错误)​
    (Connect: 0, Receive: 0, Length: 0, Exceptions: 0)​
    Non-2xx responses: 1002 # 429 状态码的请求数​
    Total transferred: 1674306 bytes​
    HTML transferred: 1230000 bytes​
    Requests per second: 99.94 [sec] (mean) # 实际 QPS,与配置的限速值接近(100)​
    Time per request: 2001.183 [ms] (mean) # 单请求平均耗时(因排队升高)​
    Time per request: 10.006 [ms] (mean, across all concurrent requests)​
    Transfer rate: 81.70 [Kbytes/sec] received​
    ​
    Connection Times (ms)​
    min mean[+/-sd] median max​
    Connect: 0 1 2.3 0 20​
    Processing: 2 1980 345.2 2000 2500​
    Waiting: 2 1970 340.1 1990 2480​
    Total: 2 1981 345.0 2000 2520​
    ...​
    ​
​
最近更新时间:2026.04.07 14:19:46
这个页面对您有帮助吗?
有用
有用
无用
无用