Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Description of ASMGlobalRateLimiter CRD

Dernière mise à jour :Aug 11, 2026

La ressource personnalisée (CRD) ASMGlobalRateLimiter configure la limitation globale du débit dans Service Mesh (ASM). Utilisez-la pour cibler des charges de travail spécifiques, vous connecter à un service global de limitation de débit et définir les règles applicables.

Vue d'ensemble de la structure

Le squelette suivant illustre l'imbrication des champs de la ressource ASMGlobalRateLimiter. Les champs obligatoires sont indiqués par un astérisque *.

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

Champ Type Obligatoire Par défaut Description
workloadSelector map Oui - Libellés permettant de sélectionner les charges de travail auxquelles s'applique cette règle de limitation. La portée est limitée au namespace de la ressource. Pour plus d'informations, consultez la documentation Workload Selector.
isGateway bool Non false Définissez ce champ sur true pour appliquer la règle de limitation à une passerelle.
rateLimitService RateLimitServiceConfig Oui - Paramètres de connexion au service global de limitation de débit.
configs GlobalRateLimiterConfig[] Oui - Règles de limitation de débit à appliquer.

RateLimitServiceConfig

Champ Type Obligatoire Par défaut Description
host string Oui - Nom de domaine du cluster hébergeant le service global de limitation de débit.
port int Oui - Port gRPC du service global de limitation de débit.
timeout Duration Non - Délai d'expiration pour la connexion du proxy mesh au service global de limitation. Spécifiez la valeur sous la forme seconds: <value> et nanos: <value>, où nanos représente les nanosecondes.

GlobalRateLimiterConfig

Champ Type Obligatoire Par défaut Description
name string Oui - Nom de la règle de limitation.
match RatelimitMatch Oui - Critères que les requêtes entrantes doivent satisfaire pour que cette règle s'applique.
limit GlobalServiceLimitConfig Oui - Seuil de limitation appliqué aux requêtes correspondantes.
limit_overrides GlobalRateLimitOverrideConfig[] Non - Remplacements du seuil de limitation appliqués par requête. Cette fonctionnalité permet de définir des limites distinctes pour des sous-ensembles spécifiques de requêtes correspondantes. Plusieurs remplacements sont pris en charge. Requiert ASM V1.19.0 ou version ultérieure.

RatelimitMatch

Champ Type Obligatoire Par défaut Description
vhost VirtualHostMatch Oui - Critères de correspondance pour l'hôte virtuel.

GlobalServiceLimitConfig

Champ Type Obligatoire Par défaut Description
unit string Oui - Unité de temps définissant la fenêtre de limitation. Valeurs valides : SECOND, MINUTE.
quota int Oui - Nombre maximal de requêtes autorisées par unité de temps.

GlobalRateLimitOverrideConfig

Champ Type Obligatoire Par défaut Description
request_match RequestMatcher Oui - Critères de sélection des requêtes auxquelles s'applique le seuil remplacé.
limit GlobalServiceLimitConfig Oui - Seuil de limitation appliqué aux requêtes correspondantes.

VirtualHostMatch

Champ Type Obligatoire Par défaut Description
name string Oui - Nom de l'hôte virtuel à faire correspondre.
port int Non - Port à faire correspondre.
route RouteMatch Non - Critères de correspondance de route pour le port spécifié.

RouteMatch

Champ Type Obligatoire Par défaut Description
name_match string Non - Nom d'une route spécifique dans un service virtuel à faire correspondre.
header_match HeaderMatcher[] Non - En-têtes HTTP à comparer avec les requêtes entrantes. Plusieurs en-têtes sont pris en charge. Obsolète depuis ASM V1.19.0. Utilisez plutôt GlobalRateLimitOverrideConfig.

RequestMatcher

Lorsque plusieurs champs sont spécifiés, la requête doit satisfaire tous les critères pour être considérée comme correspondante (logique ET).
Champ Type Obligatoire Par défaut Description
header_match HeaderMatcher[] Non - Correspondance basée sur les en-têtes HTTP. Plusieurs en-têtes sont pris en charge.
remote_address RemoteAddressMatcher Non - Correspondance basée sur l'adresse IP source.
query_match QueryParameterMatcher[] Non - Correspondance basée sur les paramètres de requête. Plusieurs paramètres sont pris en charge.

RemoteAddressMatcher

Champ Type Obligatoire Par défaut Description
address string Oui - Adresse IP source à faire correspondre.
v4_prefix_mask_len uint32 Non - Longueur du préfixe pour la correspondance de plage CIDR IPv4. Définissez le champ address avec une adresse IPv4 et ce champ avec la longueur du préfixe (par exemple, 24 pour un sous-réseau /24).
v6_prefix_mask_len uint32 Non - Longueur du préfixe pour la correspondance de plage CIDR IPv6. Définissez le champ address avec une adresse IPv6 et ce champ avec la longueur du préfixe.

HeaderMatcher

Chaque objet HeaderMatcher doit spécifier exactement un mode de correspondance parmi les suivants : regex_match, exact_match, prefix_match, suffix_match ou present_match.

Champ Type Obligatoire Par défaut Description
name string Non - Nom de l'en-tête.
regex_match string Non - Correspond si la valeur de l'en-tête satisfait cette expression régulière.
exact_match string Non - Correspond si la valeur de l'en-tête est strictement égale à cette chaîne.
prefix_match string Non - Correspond si la valeur de l'en-tête commence par cette chaîne.
suffix_match string Non - Correspond si la valeur de l'en-tête se termine par cette chaîne.
present_match bool Non - true : correspond si l'en-tête existe. false : correspond si l'en-tête n'existe pas.
invert_match bool Non false true : inverse le résultat de la correspondance (une requête non correspondante est traitée comme correspondante). false : comportement de correspondance standard.

QueryParameterMatcher

Chaque objet QueryParameterMatcher requiert un champ name et exactement un mode de correspondance parmi les suivants : exact_match, prefix_match, suffix_match, regex_match, contains_match ou present_match.

Champ Type Obligatoire Par défaut Description
name string Oui - Nom du paramètre de requête.
exact_match string Non - Correspond si la valeur du paramètre est strictement égale à cette chaîne.
prefix_match string Non - Correspond si la valeur du paramètre commence par cette chaîne.
suffix_match string Non - Correspond si la valeur du paramètre se termine par cette chaîne.
regex_match string Non - Correspond si la valeur du paramètre satisfait cette expression régulière.
contains_match string Non - Correspond si la valeur du paramètre contient cette chaîne.
present_match bool Non - true : correspond si le paramètre existe. Ne peut pas être défini sur false ; utilisez un autre mode de correspondance dans ce cas.
ignore_case bool Non - true : ignore la casse lors de la comparaison de la valeur du paramètre.

Exemple

Cet exemple limite le trafic entrant vers les charges de travail portant le libellé app: httpbin. Les requêtes adressées à l'hôte virtuel httpbin.example.com sur le port 80 sont limitées à 10 requêtes par seconde, tandis que les requêtes contenant l'en-tête x-plan: premium bénéficient d'une limite plus élevée de 100 requêtes par seconde.

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

Rubriques connexes