Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Service Mesh:Description of ASMGlobalRateLimiter CRD

Son Güncelleme:Oct 07, 2026

ASMGlobalRateLimiter, Service Mesh (ASM) içinde genel kısıtlamayı yapılandıran bir Özel Kaynak Tanımıdır (CustomResourceDefinition - CRD). Bu kaynağı kullanarak hedef iş yüklerini seçebilir, genel kısıtlama hizmetine bağlanabilir ve kısıtlama kurallarını tanımlayabilirsiniz.

Yapıya genel bakış

Aşağıdaki taslak, ASMGlobalRateLimiter alanlarının iç içe yerleşimini gösterir. Zorunlu alanlar * ile işaretlenmiştir.

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

Alan Tür Zorunlu Varsayılan Açıklama
workloadSelector map Evet - Kısıtlama kuralının uygulanacağı iş yüklerini seçen etiketler. Kaynağın ad alanı kapsamında değerlendirilir. Daha fazla bilgi için bkz. Workload Selector.
isGateway bool Hayır false Kısıtlama kuralını ağ geçidine uygulamak için true değerini ayarlayın.
rateLimitService RateLimitServiceConfig Evet - Genel kısıtlama hizmetine yönelik bağlantı ayarları.
configs GlobalRateLimiterConfig[] Evet - Uygulanacak kısıtlama kuralları.

RateLimitServiceConfig

Alan Tür Zorunlu Varsayılan Açıklama
host string Evet - Genel kısıtlama hizmetini barındıran kümenin alan adı.
port int Evet - Genel kısıtlama hizmetinin gRPC bağlantı noktası.
timeout Duration Hayır - Mesh proxy'nin genel kısıtlama hizmetine bağlanması için zaman aşımı. seconds: <değer> ve nanos: <değer> şeklinde belirtin; burada nanos nanosaniye cinsindendir.

GlobalRateLimiterConfig

Alan Tür Zorunlu Varsayılan Açıklama
name string Evet - Kısıtlama kuralının adı.
match RatelimitMatch Evet - Bu kuralın uygulanması için gelen isteklerin eşleşmesi gereken kriterler.
limit GlobalServiceLimitConfig Evet - Eşleşen istekler için kısıtlama eşiği.
limit_overrides GlobalRateLimitOverrideConfig[] Hayır - Kısıtlama eşiğine yönelik istek başına geçersiz kılmalar. Eşleşen isteklerin belirli alt kümeleri için farklı sınırlar belirlemek amacıyla kullanın. Birden fazla geçersiz kılma desteklenir. ASM V1.19.0 veya sonraki sürümler gerektirir.

RatelimitMatch

Alan Tür Zorunlu Varsayılan Açıklama
vhost VirtualHostMatch Evet - Sanal ana bilgisayar eşleştirme kriterleri.

GlobalServiceLimitConfig

Alan Tür Zorunlu Varsayılan Açıklama
unit string Evet - Kısıtlama penceresi için zaman birimi. Geçerli değerler: SECOND, MINUTE.
quota int Evet - Zaman birimi başına izin verilen maksimum istek sayısı.

GlobalRateLimitOverrideConfig

Alan Tür Zorunlu Varsayılan Açıklama
request_match RequestMatcher Evet - Geçersiz kılınan eşiğin uygulanacağı istekleri seçme kriterleri.
limit GlobalServiceLimitConfig Evet - Eşleşen istekler için kısıtlama eşiği.

VirtualHostMatch

Alan Tür Zorunlu Varsayılan Açıklama
name string Evet - Eşleştirilecek sanal ana bilgisayarın adı.
port int Hayır - Eşleştirilecek bağlantı noktası.
route RouteMatch Hayır - Belirtilen bağlantı noktası için rota eşleştirme kriterleri.

RouteMatch

Alan Tür Zorunlu Varsayılan Açıklama
name_match string Hayır - Eşleştirilecek sanal hizmetteki belirli rotanın adı.
header_match HeaderMatcher[] Hayır - Gelen isteklere karşı eşleştirilecek üstbilgiler. Birden fazla üstbilgi desteklenir. ASM V1.19.0 ve sonraki sürümlerde kullanım dışı bırakılmıştır. Bunun yerine GlobalRateLimitOverrideConfig kullanın.

RequestMatcher

Birden fazla alan belirttiğinizde, bir isteğin eşleşmesi için tüm kriterleri karşılaması gerekir (VE mantığı).
Alan Tür Zorunlu Varsayılan Açıklama
header_match HeaderMatcher[] Hayır - İstekleri HTTP üstbilgilerine göre eşleştirir. Birden fazla üstbilgi desteklenir.
remote_address RemoteAddressMatcher Hayır - İstekleri kaynak IP adresine göre eşleştirir.
query_match QueryParameterMatcher[] Hayır - İstekleri sorgu parametrelerine göre eşleştirir. Birden fazla parametre desteklenir.

RemoteAddressMatcher

Alan Tür Zorunlu Varsayılan Açıklama
address string Evet - Eşleştirilecek kaynak IP adresi.
v4_prefix_mask_len uint32 Hayır - IPv4 CIDR aralığı eşleştirmesi için ön ek uzunluğu. address alanını bir IPv4 adresine ve bu alanı ön ek uzunluğuna ayarlayın (örneğin, /24 alt ağ için 24).
v6_prefix_mask_len uint32 Hayır - IPv6 CIDR aralığı eşleştirmesi için ön ek uzunluğu. address alanını bir IPv6 adresine ve bu alanı ön ek uzunluğuna ayarlayın.

HeaderMatcher

Her HeaderMatcher tam olarak bir eşleştirme modu alanı (regex_match, exact_match, prefix_match, suffix_match veya present_match) belirtir.

Alan Tür Zorunlu Varsayılan Açıklama
name string Hayır - Üstbilgi adı.
regex_match string Hayır - Üstbilgi değeri bu düzenli ifadeyle eşleşiyorsa eşleştirir.
exact_match string Hayır - Üstbilgi değeri bu dizeyle tam olarak aynıysa eşleştirir.
prefix_match string Hayır - Üstbilgi değeri bu dizeyle başlıyorsa eşleştirir.
suffix_match string Hayır - Üstbilgi değeri bu dizeyle bitiyorsa eşleştirir.
present_match bool Hayır - true: üstbilgi mevcutsa eşleştirir. false: üstbilgi mevcut değilse eşleştirir.
invert_match bool Hayır false true: eşleştirme sonucunu tersine çevirir -- eşleşmeyen bir istek eşleşmiş olarak kabul edilir. false: normal eşleştirme davranışı.

QueryParameterMatcher

Her QueryParameterMatcher bir name ve tam olarak bir eşleştirme modu alanı (exact_match, prefix_match, suffix_match, regex_match, contains_match veya present_match) gerektirir.

Alan Tür Zorunlu Varsayılan Açıklama
name string Evet - Sorgu parametresi adı.
exact_match string Hayır - Parametre değeri bu dizeyle tam olarak aynıysa eşleştirir.
prefix_match string Hayır - Parametre değeri bu dizeyle başlıyorsa eşleştirir.
suffix_match string Hayır - Parametre değeri bu dizeyle bitiyorsa eşleştirir.
regex_match string Hayır - Parametre değeri bu düzenli ifadeyle eşleşiyorsa eşleştirir.
contains_match string Hayır - Parametre değeri bu dizeyi içeriyorsa eşleştirir.
present_match bool Hayır - true: parametre mevcutsa eşleştirir. false olarak ayarlanamaz -- bunun yerine başka bir eşleştirme modu kullanın.
ignore_case bool Hayır - true: parametre değerini eşleştirirken büyük/küçük harf duyarlılığını yoksayar.

Örnek

Bu örnekte, app: httpbin etiketiyle işaretlenen iş yüklerine gelen trafik kısıtlanır. 80 bağlantı noktasındaki httpbin.example.com sanal ana bilgisayarına yönelik istekler saniyede 10 ile sınırlanırken, x-plan: premium üstbilgisine sahip istekler için saniyede 100 gibi daha yüksek bir sınır uygulanır.

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

İlgili konular