すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:ASMLocalRateLimiter のフィールド

最終更新日:Jun 12, 2025

サービスメッシュ (ASM) では、カスタムリソース定義 (CRD) を使用して ASMLocalRateLimiter の構成を宣言的に定義することで、ローカルレート制限を実現できます。このトピックでは、ASMLocalRateLimiter のフィールドについて説明し、構成例を示します。

構成例

次の構成では、ゲートウェイにレート制限を適用して、ダウンストリームサービスが着信トラフィックによって過負荷にならないようにします。seconds を 1 に、quota を 100 に設定すると、1 秒あたり 100 トークンが許可されます。つまり、ゲートウェイは 1 秒あたり最大 100 リクエストを処理します。

説明

構成の limit.quota は、単一のゲートウェイインスタンスにのみ適用されます。 n 個のゲートウェイインスタンスがある場合、ルートのバックエンドサービスレート制限しきい値は n*quota になります。ゲートウェイインスタンスの数が変更された場合は、それに応じてしきい値を調整してください。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMLocalRateLimiter
metadata:
  name: for-api-test
  namespace: default
spec:
  workloadSelector:
    labels:
      app: istio-ingressgateway
  isGateway: true
  configs:
    - match:
        vhost:
          name: "www.example1.com" # ゲートウェイに複数の仮想ホストが構成されている場合は、最後の仮想ホストの名前を入力します。
          port: 80
          route:
            name_match: "test1" # 仮想サービスに構成されているルートの名前。仮想サービスに指定されたルートがない場合、レート制限は有効になりません。
      limit:
         fill_interval:
            seconds: 1
         quota: 10
    - match:
        vhost:
          name: "www.example2.com"
          port: 80
          route:
            name_match: "test1"
      limit:
         fill_interval:
            seconds: 1
         quota: 100

フィールドの説明

apiVersion

  • ASM 1.15.3.105 以降では、istio.alibabacloud.com/v1 の使用がサポートされています。 Container Service for Kubernetes (ACK) クラスタで ASMCircuitBreaker を構成したときに apiVersion フィールドを istio.alibabacloud.com/v1beta1 に設定している場合は、値を istio.alibabacloud.com/v1 に変更し、クラスタを再デプロイします。

  • 1.15.3.105 より前の ASM の場合は、apiVersion フィールドを istio.alibabacloud.com/v1beta1 に設定します。

spec

次の表は、spec セクションのフィールドについて説明しています。詳細については、「イングレスゲートウェイでローカルレート制限を設定する」をご参照ください。

フィールド

タイプ

必須

説明

workloadSelector

map<string, string>

はい

ラベルを使用して、レート制限ルールが有効になる Pod のセットを指定します。ラベルベースの検索の範囲は、リソースが存在する名前空間に制限されます。詳細については、「ワークロードセレクター」をご参照ください。

isGateway

bool

いいえ

レート制限ルールがゲートウェイで有効になるかどうかを指定します。デフォルト値: false

configs

LocalRateLimiterConfig[]

はい

ローカルレート制限ルール。

LocalRateLimiterConfig

フィールド

タイプ

必須

説明

name

string

はい

レート制限ルールの名前。

match

RatelimitMatch

はい

一致した条件。

limit

LimitConfig

はい

レート制限しきい値の構成です。

limit_overrides

RateLimitOverrideConfig[]

いいえ

設定済みのレート制限しきい値をオーバーライドするかどうかを指定します。 このフィールドを使用して、特定のリクエストのレート制限しきい値を指定できます。 V1.19.0 より前の ASM は、このフィールドをサポートしていません。

RatelimitMatch

フィールド

タイプ

必須

説明

vhost

VirtualHostMatch

いいえ

仮想ホストの一致基準。

LimitConfig

フィールド

タイプ

必須

説明

status

int

いいえ

トラフィックがレート制限を超えたときに返される状態コード。デフォルトは 429 です。 400 以上である必要があります。 V1.24.6.64 より前の ASM は、このフィールドをサポートしていません。

fill_interval

Duration

いいえ

トークンが発行される間隔。例:seconds: 1 および nanos: 1000。 nanos はナノ秒を示します。

quota

int

いいえ

トークンの数。値は整数である必要があります。例:1000。

per_downstream_connection

bool

いいえ

トークンバケットを共有できる範囲を指定します。デフォルト値:false

有効な値:

  • false:トークンバケットはすべてのワーカースレッドで共有され、レート制限は各 Envoy プロセスに適用されます。

  • true:トークンバケットは各接続に割り当てられます。レート制限はすべての接続に適用されます。

V1.13.4 より前の ASM は、このフィールドをサポートしていません。

custom_response_body

string

いいえ

レート制限のためにリクエストが拒否されたときに返される本文コンテンツ。 V1.13.4 より前の ASM は、このフィールドをサポートしていません。

response_header_to_add

map[string]string

いいえ

レート制限のためにリクエストが拒否されたときに応答に追加されるカスタムヘッダー。 V1.13.4 より前の ASM は、このフィールドをサポートしていません。

RateLimitOverrideConfig

フィールド

タイプ

必須

説明

request_match

RequestMatcher

はい

一致ルール。

limit

LimitConfig

はい

一致したリクエストが制限されるレート制限。

RateLimitOverrideConfig で宣言されている場合、fill_interval と quota のみが有効になります。 per_downstream_connection、custom_response_body、response_header_to_add を含むその他のフィールドは、LocalRateLimiterConfig.limit のものと同じままです。

VirtualHostMatch

フィールド

タイプ

必須

説明

name

string

はい

一致する仮想ホストの名前。

port

int

いいえ

一致するリクエスト ポート。

route

RouteMatch

いいえ

一致するリクエスト ポートに対応するルートの名前。

RouteMatch

フィールド

タイプ

必須

説明

name_match

string

いいえ

一致するルートの名前。仮想サービス内の単一のルートを指定します。

header_match

HeaderMatcher[]

いいえ

一致するヘッダー。ASM V1.19.0 以降、このフィールドは非推奨です。 RateLimitOverrideConfig を代わりに使用してください。

RequestMatcher

説明

以下のフィールドが同時に宣言されている場合、両方のフィールドで指定されたルールを満たすリクエストのみが一致します。

フィールド

タイプ

必須

説明

header_match

HeaderMatcher[]

いいえ

一致したヘッダー。

query_match

QueryParameterMatcher[]

いいえ

一致したクエリ。

HeaderMatcher

フィールド

タイプ

必須

説明

name

string

いいえ

ヘッダーの名前。

一致モードに基づいてフィールドのいずれか 1 つを指定します

regex_match

string

いいえ

正規表現。

exact_match

string

いいえ

完全一致式。

prefix_match

string

いいえ

プレフィックス一致式。

suffix_match

string

いいえ

サフィックス一致式。

present_match

bool

いいえ

  • true は、値に関係なくヘッダーが存在する限りという意味です。

  • false は、ヘッダーが存在しないという意味です。

invert_match

bool

いいえ

デフォルト値: false

  • false は、指定された一致基準を満たすリクエストは一致したリクエストと見なされることを意味します。

  • true は、一致結果が反対になることを意味します。

QueryParameterMatcher

フィールド

タイプ

必須

説明

name

string

はい

クエリパラメーターの名前。

一致モードに基づいてフィールドのいずれか 1 つを指定します

exact_match

string

いいえ

完全一致式。

prefix_match

string

いいえ

プレフィックス一致式。

suffix_match

string

いいえ

サフィックス一致式。

regex_match

string

いいえ

正規表現一致式。

contains_match

string

いいえ

クエリパラメータ値には、指定された内容が含まれている必要があります。

present_match

bool

いいえ

  • true は存在一致を有効にします。これは、値を考慮せずに、指定されたクエリパラメータの存在を確認します。

  • false は許可されていません。設定しないことと同じであり、他の照合条件を指定する必要があります。

ignore_case

bool

いいえ

大文字と小文字を区別するかどうかを指定します。