Todos los productos
Search
Centro de documentos

Alibaba Cloud Service Mesh:Description of ASMGlobalRateLimiter CRD

Última actualización: Sep 29, 2026

ASMGlobalRateLimiter es una definición de recurso personalizado (CRD) que configura el limitador de velocidad global en Service Mesh (ASM). Se utiliza para seleccionar las cargas de trabajo de destino, conectarse a un servicio de limitación de velocidad global y definir reglas de limitación.

Descripción general de la estructura

A continuación se muestra un esquema que indica cómo se anidan los campos de ASMGlobalRateLimiter. Los campos obligatorios se marcan con *.

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

Obligatorio

Predeterminado

Descripción

workloadSelector

map

Sí

-

Etiquetas que seleccionan las cargas de trabajo a las que aplica esta regla de limitación. Su alcance se restringe al namespace del recurso. Para obtener más información, consulte Workload Selector.

isGateway

bool

No

false

Establezca este valor en true para aplicar la regla de limitación a una puerta de enlace.

rateLimitService

RateLimitServiceConfig

Sí

-

Configuración de conexión del servicio de limitación de velocidad global.

configs

GlobalRateLimiterConfig[]

Sí

-

Reglas de limitación que se aplicarán.

RateLimitServiceConfig

Campo

Tipo

Obligatorio

Predeterminado

Descripción

host

string

Sí

-

Nombre de dominio del clúster que aloja el servicio de limitación de velocidad global.

port

int

Sí

-

Puerto gRPC del servicio de limitación de velocidad global.

timeout

Duration

No

-

Tiempo de espera para que el proxy de la malla se conecte al servicio de limitación de velocidad global. Especifíquelo como seconds: <value> y nanos: <value>, donde nanos se expresa en nanosegundos.

GlobalRateLimiterConfig

Campo

Tipo

Obligatorio

Predeterminado

Descripción

name

string

Sí

-

Nombre de la regla de limitación.

match

RatelimitMatch

Sí

-

Criterios que deben cumplir las solicitudes entrantes para que se aplique esta regla.

limit

GlobalServiceLimitConfig

Sí

-

Umbral de limitación para las solicitudes coincidentes.

limit_overrides

GlobalRateLimitOverrideConfig[]

No

-

Anulaciones del umbral de limitación por solicitud. Utilice este campo para establecer límites distintos en subconjuntos específicos de solicitudes coincidentes. Se admiten varias anulaciones. Requiere ASM V1.19.0 o posterior.

RatelimitMatch

Campo

Tipo

Obligatorio

Predeterminado

Descripción

vhost

VirtualHostMatch

Sí

-

Criterios de coincidencia del host virtual.

GlobalServiceLimitConfig

Campo

Tipo

Obligatorio

Predeterminado

Descripción

unit

string

Sí

-

Unidad de tiempo de la ventana de limitación. Valores válidos: SECOND, MINUTE.

quota

int

Sí

-

Número máximo de solicitudes permitidas por unidad de tiempo.

GlobalRateLimitOverrideConfig

Campo

Tipo

Obligatorio

Predeterminado

Descripción

request_match

RequestMatcher

Sí

-

Criterios para seleccionar las solicitudes que reciben el umbral anulado.

limit

GlobalServiceLimitConfig

Sí

-

Umbral de limitación para las solicitudes coincidentes.

VirtualHostMatch

Campo

Tipo

Obligatorio

Predeterminado

Descripción

name

string

Sí

-

Nombre del host virtual que se evaluará.

port

int

No

-

Puerto que se evaluará.

route

RouteMatch

No

-

Criterios de coincidencia de ruta para el puerto especificado.

RouteMatch

Campo

Tipo

Obligatorio

Predeterminado

Descripción

name_match

string

No

-

Nombre de una ruta específica dentro de un servicio virtual que se evaluará.

header_match

HeaderMatcher[]

No

-

Encabezados que se compararán con las solicitudes entrantes. Se admiten varios encabezados. Obsoleto en ASM V1.19.0 y posteriores. Utilice GlobalRateLimitOverrideConfig en su lugar.

RequestMatcher

Si se especifican varios campos, la solicitud debe cumplir todos los criterios para coincidir (lógica AND).

Campo

Tipo

Obligatorio

Predeterminado

Descripción

header_match

HeaderMatcher[]

No

-

Evalúa las solicitudes mediante encabezados HTTP. Se admiten varios encabezados.

remote_address

RemoteAddressMatcher

No

-

Evalúa las solicitudes mediante la dirección IP de origen.

query_match

QueryParameterMatcher[]

No

-

Evalúa las solicitudes mediante parámetros de consulta. Se admiten varios parámetros.

RemoteAddressMatcher

Campo

Tipo

Obligatorio

Predeterminado

Descripción

address

string

Sí

-

Dirección IP de origen que se evaluará.

v4_prefix_mask_len

uint32

No

-

Longitud del prefijo para la coincidencia de rangos CIDR IPv4. Establezca address con una dirección IPv4 y este campo con la longitud del prefijo (por ejemplo, 24 para una subred /24).

v6_prefix_mask_len

uint32

No

-

Longitud del prefijo para la coincidencia de rangos CIDR IPv6. Establezca address con una dirección IPv6 y este campo con la longitud del prefijo.

HeaderMatcher

Cada HeaderMatcher especifica exactamente un campo de modo de coincidencia (regex_match, exact_match, prefix_match, suffix_match o present_match).

Campo

Tipo

Obligatorio

Predeterminado

Descripción

name

string

No

-

Nombre del encabezado.

regex_match

string

No

-

Coincide si el valor del encabezado cumple esta expresión regular.

exact_match

string

No

-

Coincide si el valor del encabezado es exactamente igual a esta cadena.

prefix_match

string

No

-

Coincide si el valor del encabezado comienza con esta cadena.

suffix_match

string

No

-

Coincide si el valor del encabezado termina con esta cadena.

present_match

bool

No

-

true: coincide si el encabezado existe. false: coincide si el encabezado no existe.

invert_match

bool

No

false

true: invierte el resultado de la evaluación; una solicitud que no coincide se trata como coincidente. false: comportamiento de coincidencia normal.

QueryParameterMatcher

Cada QueryParameterMatcher requiere un campo name y exactamente un campo de modo de coincidencia (exact_match, prefix_match, suffix_match, regex_match, contains_match o present_match).

Campo

Tipo

Obligatorio

Predeterminado

Descripción

name

string

Sí

-

Nombre del parámetro de consulta.

exact_match

string

No

-

Coincide si el valor del parámetro es exactamente igual a esta cadena.

prefix_match

string

No

-

Coincide si el valor del parámetro comienza con esta cadena.

suffix_match

string

No

-

Coincide si el valor del parámetro termina con esta cadena.

regex_match

string

No

-

Coincide si el valor del parámetro cumple esta expresión regular.

contains_match

string

No

-

Coincide si el valor del parámetro contiene esta cadena.

present_match

bool

No

-

true: coincide si el parámetro existe. No se puede establecer en false; utilice otro modo de coincidencia en su lugar.

ignore_case

bool

No

-

true: ignora mayúsculas y minúsculas al evaluar el valor del parámetro.

Ejemplo

Este ejemplo limita el tráfico entrante hacia las cargas de trabajo etiquetadas con app: httpbin. Las solicitudes dirigidas al host virtual httpbin.example.com en el puerto 80 se limitan a 10 por segundo. Por su parte, las solicitudes que incluyen el encabezado x-plan: premium obtienen un límite mayor 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

Temas relacionados