Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Description of ASMGlobalRateLimiter CRD

Última atualização: Jun 28, 2026

O ASMGlobalRateLimiter é uma CustomResourceDefinition (CRD) que configura a limitação de taxa global no Service Mesh (ASM). Use este recurso para selecionar cargas de trabalho de destino, conectar-se a um serviço de limitação de taxa global e definir regras de limitação.

Visão geral da estrutura

O esqueleto a seguir mostra como os campos do ASMGlobalRateLimiter se aninham. Os campos obrigatórios estão marcados com *.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMGlobalRateLimiter
metadata:
  name: <name>
  namespace: <namespace>
spec:
  workloadSelector: *            # map<string, string>
    <label-key>: <label-value>
  isGateway:                     # bool (default: false)
  rateLimitService: *            # RateLimitServiceConfig
    host: *                      # string
    port: *                      # int
    timeout:                     # Duration
      seconds:                   # int
      nanos:                     # int
  configs: *                     # GlobalRateLimiterConfig[]
    - name: *                    # string
      match: *                   # RatelimitMatch
        vhost: *                 # VirtualHostMatch
          name: *                # string
          port:                  # int
          route:                 # RouteMatch
            name_match:          # string
            header_match:        # HeaderMatcher[] (deprecated in V1.19.0+)
      limit: *                   # GlobalServiceLimitConfig
        unit: *                  # string (SECOND | MINUTE)
        quota: *                 # int
      limit_overrides:           # GlobalRateLimitOverrideConfig[] (V1.19.0+)
        - request_match: *       # RequestMatcher
            header_match:        # HeaderMatcher[]
            remote_address:      # RemoteAddressMatcher
            query_match:         # QueryParameterMatcher[]
          limit: *               # GlobalServiceLimitConfig
            unit: *              # string
            quota: *             # int

spec

Campo

Tipo

Obrigatório

Padrão

Descrição

workloadSelector

map

Sim

-

Rótulos que selecionam as cargas de trabalho às quais esta regra de limitação se aplica. O escopo restringe-se ao namespace do recurso. Para mais informações, consulte Workload Selector.

isGateway

bool

Não

false

Defina como true para aplicar esta regra de limitação a um gateway.

rateLimitService

RateLimitServiceConfig

Sim

-

Configurações de conexão com o serviço de limitação de taxa global.

configs

GlobalRateLimiterConfig[]

Sim

-

Regras de limitação a aplicar.

RateLimitServiceConfig

Campo

Tipo

Obrigatório

Padrão

Descrição

host

string

Sim

-

Nome de domínio do cluster que hospeda o serviço de limitação de taxa global.

port

int

Sim

-

Porta gRPC do serviço de limitação de taxa global.

timeout

Duration

Não

-

Tempo limite para o proxy do mesh se conectar ao serviço de limitação de taxa global. Especifique como seconds: <value> e nanos: <value>, em que nanos está em nanossegundos.

GlobalRateLimiterConfig

Campo

Tipo

Obrigatório

Padrão

Descrição

name

string

Sim

-

Nome da regra de limitação.

match

RatelimitMatch

Sim

-

Critérios aos quais as requisições recebidas devem corresponder para aplicar esta regra.

limit

GlobalServiceLimitConfig

Sim

-

Limiar de limitação para requisições correspondentes.

limit_overrides

GlobalRateLimitOverrideConfig[]

Não

-

Substituições de limiar de limitação por requisição. Use este campo para definir limites diferentes para subconjuntos específicos de requisições correspondentes. Há suporte para múltiplas substituições. Requer ASM V1.19.0 ou posterior.

RatelimitMatch

Campo

Tipo

Obrigatório

Padrão

Descrição

vhost

VirtualHostMatch

Sim

-

Critérios de correspondência de host virtual.

GlobalServiceLimitConfig

Campo

Tipo

Obrigatório

Padrão

Descrição

unit

string

Sim

-

Unidade de tempo da janela de limitação. Valores válidos: SECOND, MINUTE.

quota

int

Sim

-

Número máximo de requisições permitidas por unidade de tempo.

GlobalRateLimitOverrideConfig

Campo

Tipo

Obrigatório

Padrão

Descrição

request_match

RequestMatcher

Sim

-

Critérios para selecionar requisições sujeitas ao limiar substituído.

limit

GlobalServiceLimitConfig

Sim

-

Limiar de limitação para requisições correspondentes.

VirtualHostMatch

Campo

Tipo

Obrigatório

Padrão

Descrição

name

string

Sim

-

Nome do host virtual a corresponder.

port

int

Não

-

Porta a corresponder.

route

RouteMatch

Não

-

Critérios de correspondência de rota para a porta especificada.

RouteMatch

Campo

Tipo

Obrigatório

Padrão

Descrição

name_match

string

Não

-

Nome de uma rota específica em um serviço virtual a corresponder.

header_match

HeaderMatcher[]

Não

-

Headers para correspondência com requisições recebidas. Há suporte para múltiplos headers. Obsoleto no ASM V1.19.0 e posteriores. Use GlobalRateLimitOverrideConfig em seu lugar.

RequestMatcher

Ao especificar vários campos, uma requisição deve satisfazer todos os critérios para haver correspondência (lógica AND).

Campo

Tipo

Obrigatório

Padrão

Descrição

header_match

HeaderMatcher[]

Não

-

Corresponde a requisições por headers HTTP. Há suporte para múltiplos headers.

remote_address

RemoteAddressMatcher

Não

-

Corresponde a requisições pelo endereço IP de origem.

query_match

QueryParameterMatcher[]

Não

-

Corresponde a requisições por parâmetros de consulta. Há suporte para múltiplos parâmetros.

RemoteAddressMatcher

Campo

Tipo

Obrigatório

Padrão

Descrição

address

string

Sim

-

Endereço IP de origem a corresponder.

v4_prefix_mask_len

uint32

Não

-

Comprimento do prefixo para correspondência de intervalo CIDR IPv4. Defina address como um endereço IPv4 e este campo como o comprimento do prefixo (por exemplo, 24 para uma sub-rede /24).

v6_prefix_mask_len

uint32

Não

-

Comprimento do prefixo para correspondência de intervalo CIDR IPv6. Defina address como um endereço IPv6 e este campo como o comprimento do prefixo.

HeaderMatcher

Cada HeaderMatcher especifica exatamente um campo de modo de correspondência (regex_match, exact_match, prefix_match, suffix_match ou present_match).

Campo

Tipo

Obrigatório

Padrão

Descrição

name

string

Não

-

Nome do header.

regex_match

string

Não

-

Correspondência se o valor do header atender a esta expressão regular.

exact_match

string

Não

-

Correspondência se o valor do header for exatamente igual a esta string.

prefix_match

string

Não

-

Correspondência se o valor do header começar com esta string.

suffix_match

string

Não

-

Correspondência se o valor do header terminar com esta string.

present_match

bool

Não

-

true: corresponde se o header existir. false: corresponde se o header não existir.

invert_match

bool

Não

false

true: inverte o resultado da correspondência — uma requisição sem correspondência é tratada como correspondente. false: comportamento normal de correspondência.

QueryParameterMatcher

Cada QueryParameterMatcher requer um name e exatamente um campo de modo de correspondência (exact_match, prefix_match, suffix_match, regex_match, contains_match ou present_match).

Campo

Tipo

Obrigatório

Padrão

Descrição

name

string

Sim

-

Nome do parâmetro de consulta.

exact_match

string

Não

-

Correspondência se o valor do parâmetro for exatamente igual a esta string.

prefix_match

string

Não

-

Correspondência se o valor do parâmetro começar com esta string.

suffix_match

string

Não

-

Correspondência se o valor do parâmetro terminar com esta string.

regex_match

string

Não

-

Correspondência se o valor do parâmetro atender a esta expressão regular.

contains_match

string

Não

-

Correspondência se o valor do parâmetro contiver esta string.

present_match

bool

Não

-

true: corresponde se o parâmetro existir. Não pode ser definido como false — use outro modo de correspondência.

ignore_case

bool

Não

-

true: ignora maiúsculas e minúsculas ao corresponder ao valor do parâmetro.

Exemplo

Este exemplo limita o tráfego de entrada para cargas de trabalho rotuladas com app: httpbin. As requisições para o host virtual httpbin.example.com na porta 80 têm limite de 10 por segundo, enquanto requisições com o header x-plan: premium obtêm um limite maior, de 100 por segundo.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMGlobalRateLimiter
metadata:
  name: httpbin-global-ratelimit
  namespace: default
spec:
  workloadSelector:
    app: httpbin
  rateLimitService:
    host: ratelimit.default.svc.cluster.local
    port: 8081
    timeout:
      seconds: 1
  configs:
    - name: httpbin-ratelimit
      match:
        vhost:
          name: httpbin.example.com
          port: 80
      limit:
        unit: SECOND
        quota: 10
      limit_overrides:                   # Requires ASM V1.19.0+
        - request_match:
            header_match:
              - name: x-plan
                exact_match: premium
          limit:
            unit: SECOND
            quota: 100

Tópicos relacionados