Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Description of ASMGlobalRateLimiter CRD

Última atualização: Sep 29, 2026

O ASMGlobalRateLimiter é uma CustomResourceDefinition (CRD) que configura a limitação de taxa global no service mesh (ASM). selecione as workloads de destino, conecte-se a um service de limitação de taxa global e defina regras de limitação.

Visão geral da estrutura

A estrutura 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 selecione as workloads às quais essa regra de limitação se aplica. O escopo é restrito ao namespace do recurso. Para mais informações, consulte Workload Selector.

isGateway

bool

Não

false

defina como true para aplicar essa regra de limitação a um gateway.

rateLimitService

RateLimitServiceConfig

Sim

-

Configurações de conexão para o service de limitação de taxa global.

configs

GlobalRateLimiterConfig[]

Sim

-

Regras de limitação de taxa a aplicar.

RateLimitServiceConfig

Campo

Tipo

Obrigatório

Padrão

Descrição

host

string

Sim

-

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

port

int

Sim

-

Porta grpc do service de limitação de taxa global.

timeout

Duration

Não

-

Tempo limite para o proxy do mesh se conectar ao service de limitação de taxa global. especifique no formato 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 de taxa.

match

RatelimitMatch

Sim

-

Critérios que as requisições de entrada devem atender para que essa regra seja aplicada.

limit

GlobalServiceLimitConfig

Sim

-

Limiar de limitação de taxa para as requisições compatíveis.

limit_overrides

GlobalRateLimitOverrideConfig[]

Não

-

Substituições do limiar de limitação de taxa por requisição. defina limites diferentes para subconjuntos específicos de requisições compatíveis. Há suporte a várias substituições. Requer o 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 para a 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 que você selecione as requisições que recebem o limiar substituído.

limit

GlobalServiceLimitConfig

Sim

-

Limiar de limitação de taxa para as requisições compatíveis.

VirtualHostMatch

Campo

Tipo

Obrigatório

Padrão

Descrição

name

string

Sim

-

Nome do host virtual para correspondência.

port

int

Não

-

Porta para correspondência.

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 service virtual para correspondência.

header_match

HeaderMatcher[]

Não

-

Headers para correspondência nas requisições de entrada. Há suporte a múltiplos headers. Descontinuado no ASM V1.19.0 e posteriores. Use GlobalRateLimitOverrideConfig como alternativa.

RequestMatcher

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

Campo

Tipo

Obrigatório

Padrão

Descrição

header_match

HeaderMatcher[]

Não

-

Corresponde às requisições com base nos headers HTTP. Há suporte a múltiplos headers.

remote_address

RemoteAddressMatcher

Não

-

Avalia as requisições com base no endereço IP de source.

query_match

QueryParameterMatcher[]

Não

-

Corresponde às requisições com base nos parâmetros de consulta. Há suporte a múltiplos parâmetros.

RemoteAddressMatcher

Campo

Tipo

Obrigatório

Padrão

Descrição

address

string

Sim

-

Endereço IP de source para correspondência.

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

-

Corresponde se o valor do header atender a essa expressão regular.

exact_match

string

Não

-

Há correspondência se o valor do header for exatamente igual a essa string.

prefix_match

string

Não

-

Corresponde quando o valor do header começa com essa string.

suffix_match

string

Não

-

Há correspondência caso o valor do header termine com essa 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 que não atende aos critérios é tratada como correspondente. false: comportamento de correspondência normal.

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

-

Corresponde se o valor do parâmetro for exatamente igual a essa string.

prefix_match

string

Não

-

Há correspondência quando o valor do parâmetro começa com essa string.

suffix_match

string

Não

-

Corresponde caso o valor do parâmetro termine com essa string.

regex_match

string

Não

-

Há correspondência se o valor do parâmetro atender a essa expressão regular.

contains_match

string

Não

-

Corresponde se o valor do parâmetro contiver essa string.

present_match

bool

Não

-

true: corresponde se o parâmetro existir. Não é possível que você defina como false -- use outro modo de correspondência.

ignore_case

bool

Não

-

true: ignora a diferenciação entre maiúsculas e minúsculas ao corresponder ao valor do parâmetro.

Exemplo

Este exemplo limita a taxa de tráfego de entrada para workloads com o rótulo app: httpbin. As requisições para o host virtual httpbin.example.com na porta 80 têm o limite de 10 por segundo, enquanto as requisições com o header x-plan: premium tê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