ASMGlobalRateLimiter CRD说明

ASM通过ASMGlobalRateLimiter实现全局限流的声明式配置。本文介绍ASMGlobalRateLimiter的字段说明。

spec

字段

类型

是否必选

说明

workloadSelector

map<string, string>

通过一个或多个标签,指明限流配置生效的一组特定的工作负载。标签搜索的范围限制在资源所在的配置命名空间。更多信息,请参见Workload Selector

isGateway

bool

限流配置生效的工作负载是否为网关,默认为false。

rateLimitService

RateLimitServiceConfig

限流服务配置。

configs

GlobalRateLimiterConfig[]

全局限流配置,可配置多条。

RateLimitServiceConfig

字段

类型

是否必选

说明

host

string

限流服务Service的集群域名。

port

int

限流服务的Service gRPC端口。

timeout

Duration

网格代理连接限流服务的超时时间。例如seconds: 1nanos: 1000。nanos表示纳秒。

GlobalRateLimiterConfig

字段

类型

是否必选

说明

name

string

单条限流配置的名称。

match

RatelimitMatch

匹配条件。

limit

GlobalServiceLimitConfig

限流阈值配置。

limit_overrides

GlobalRateLimitOverrideConfig[]

限流阈值覆盖配置。可通过该字段针对特定的请求指定单独的限流阈值。支持配置多个覆盖配置。

说明

仅支持ASM 1.19.0及以上版本。

RatelimitMatch

字段

类型

是否必选

说明

vhost

VirtualHostMatch

VirtualHost匹配条件。

GlobalServiceLimitConfig

字段

类型

是否必选

说明

unit

string

限流计量时间单位。取值:

  • MINUTE:分

  • SECOND:秒

quota

int

单位时间内允许的请求总量。

GlobalRateLimitOverrideConfig

字段

类型

是否必选

说明

request_match

RequestMatcher

限流阈值覆盖配置指定的请求匹配条件。只有匹配条件的请求会应用覆盖配置中的限流阈值。

limit

GlobalServiceLimitConfig

限流阈值覆盖配置指定的请求限流阈值。

VirtualHostMatch

字段

类型

是否必选

说明

name

string

匹配的VirtualHost名称。

port

int

匹配的请求端口。

route

RouteMatch

匹配的请求接口对应的路由名称。

RouteMatch

字段

类型

是否必选

说明

name_match

string

匹配的路由名称,对应VirtualService下的单条路由名称。

header_match

HeaderMatcher[]

匹配服务请求的Header,支持配置多个。

说明

在ASM 1.19.0及以上版本,该字段被标注为废弃(Deprecated),请使用GlobalRateLimitOverrideConfig对请求进行匹配。

RequestMatcher

说明

RequestMatcher中的多个字段可以同时使用。同时使用时,请求必须同时符合每个字段的匹配条件才会被匹配。

字段

类型

是否必选

说明

header_match

HeaderMatcher[]

匹配请求的header,支持配置多个。

remote_address

RemoteAddressMatcher

匹配请求的源IP。

query_match

QueryParameterMatcher[]

匹配请求的查询参数(query params),支持配置多个。

RemoteAddressMatcher

字段

类型

是否必选

说明

address

string

匹配的请求源的IP地址。

v4_prefix_mask_len

unit32

如果需要匹配IPv4地址范围,在此字段填写IPv4地址子网掩码长度,并在address处填写IPv4地址。将会匹配address在掩码后的地址范围。

v6_prefix_mask_len

unit32

如果需要匹配IPv6地址范围,在此字段填写IPv6地址子网掩码长度,并在address处填写IPv6地址。将会匹配address在掩码后的地址范围。

HeaderMatcher

字段

类型

是否必选

说明

name

string

Header名称。

任选其一

regex_match

string

正则表达式匹配。

exact_match

string

精确匹配。

prefix_match

string

前缀匹配,以什么开头进行匹配。

suffix_match

string

后缀匹配,以什么结尾进行匹配。

present_match

bool

  • 配置为true,表示存在Header即可,无需关注Header Value的取值。

  • 配置为false,表示不存在Header。

invert_match

bool

默认为false。

  • 配置为true,表示上述匹配结果取反。

  • 配置为false,表示遵循上述匹配结果。

QueryParameterMatcher

字段

类型

是否必选

说明

name

string

查询参数的名称。

任选其一

exact_match

string

精确匹配查询参数的内容。

prefix_match

string

前缀匹配查询参数的内容。

suffix_match

string

后缀匹配查询参数的内容。

regex_match

string

正则表达式匹配查询参数的内容。

contains_match

string

包含匹配查询参数的内容,即要求查询参数的内容必须包含某个子串。

present_match

bool

  • 配置为true,表示进行存在性匹配,即存在指定的查询参数即可,不关注内容。

  • 不能配置false,配置为false等同于不配置,需要指定其它匹配条件。

ignore_case

bool

是否在匹配查询参数时忽略大小写。

相关文档

使用ASMGlobalRateLimiter对入口网关和应用服务入口流量配置全局限流