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

Alibaba Cloud Service Mesh:ASMGlobalRateLimiter CRD の説明

最終更新日:Nov 28, 2025

Service Mesh (ASM) では、カスタムリソース定義 (CRD) を使用して ASMGlobalRateLimiter 構成を宣言的に定義し、グローバルスロットリングを実装できます。このトピックでは、ASMGlobalRateLimiter CRD のフィールドについて説明します。

構成例

例 1:サーバーサイドスロットリング

説明

この例では、バージョン 1.25.6.74 以降の ASM インスタンスが必要です。

次の例では、httpbin アプリケーションへのアクセスを 1 分あたり 1 回に制限します。

クリックして YAML ファイルを表示

apiVersion: istio.alibabacloud.com/v1
kind: ASMGlobalRateLimiter
metadata:
  name: global-test
spec:
  configs:
  - limit:
      quota: 1
      unit: MINUTE
    target_services:
    - name: httpbin
      port: 8000
    name: default
  applyToTraffic: sidecar_inbound
  rateLimitService:
    host: ratelimit.default.svc.cluster.local # このサービスにクエリを実行して、現在のリクエストをスロットリングする必要があるかどうかを判断します。
    port: 8081
    timeout:
      seconds: 5
  workloadSelector:
    labels:
      app: httpbin

例 2:クライアントサイドスロットリング

説明

この例では、バージョン 1.25.6.74 以降の ASM インスタンスが必要です。

次の例では、sleep アプリケーションから httpbin サービスへのアクセスを 1 分あたり 1 回のみに制限します。

クリックして YAML ファイルを表示

apiVersion: istio.alibabacloud.com/v1
kind: ASMGlobalRateLimiter
metadata:
  name: global-test
spec:
  configs:
  - limit:
      quota: 1
      unit: MINUTE
    target_services:
    - name: httpbin
      port: 8000
    name: default
  applyToTraffic: sidecar_outbound
  rateLimitService:
    host: ratelimit.default.svc.cluster.local # このサービスにクエリを実行して、現在のリクエストをスロットリングする必要があるかどうかを判断します。
    port: 8081
    timeout:
      seconds: 5
  workloadSelector:
    labels:
      app: sleep

例 3:Waypoint スロットリング

この例は Ambient モードにのみ適用され、バージョン 1.25.6.74 以降の ASM インスタンスが必要です。

この例では、default Waypoint 上のアプリケーションに対してスロットリングルールを構成します。リクエストに x-user リクエストヘッダーが含まれている場合、ヘッダー値に基づいてバケットが割り当てられ、アクセスは 1 分あたり 1 回に制限されます。リクエストにヘッダーが含まれていない場合、アクセスは 1 分あたり 20 回に制限されます。

クリックして YAML ファイルを表示

apiVersion: istio.alibabacloud.com/v1
kind: ASMGlobalRateLimiter
metadata:
  name: global-test
spec:
  configs:
  - limit_overrides:
    - limit:
        quota: 1
        unit: MINUTE
      request_match:
        header_match:
        - distinct: true
          name: x-user
    limit:
      quota: 20
      unit: MINUTE
    target_services:
    - name: httpbin
      port: 8000
    name: default
  applyToTraffic: waypoint
  rateLimitService:
    host: ratelimit.default.svc.cluster.local # このサービスにクエリを実行して、現在のリクエストをスロットリングする必要があるかどうかを判断します。
    port: 8081
    timeout:
      seconds: 5
  workloadSelector:
    labels:
      gateway.networking.k8s.io/gateway-name: default

spec

フィールド

タイプ

必須

説明

workloadSelector

map<string, string>

はい

速度制限ルールが適用されるワークロードのセットを指定する 1 つ以上のラベル。ラベルベースの検索の範囲は、リソースが存在する名前空間に制限されます。詳細については、「Workload Selector」をご参照ください。

isGateway

bool

いいえ

速度制限ルールをゲートウェイに適用するかどうかを指定します。デフォルト値: false。

rateLimitService

RateLimitServiceConfig

はい

グローバル速度制限サービスの構成。

configs

GlobalRateLimiterConfig[]

はい

グローバルスロットリングルール。複数のルールを構成できます。

applyToTraffic

string

いいえ

レート制限ポリシーが適用されるトラフィックタイプ。オプションのパラメーター:

  • sidecar_inbound:サイドカーのインバウンドトラフィック。これは、サーバーとして機能するサイドカーがアタッチされたアプリケーションが受信するトラフィックです。

  • sidecar_outbound:サイドカーのアウトバウンドトラフィック。これは、クライアントとして機能するサイドカーがアタッチされたアプリケーションが送信するトラフィックです。

  • waypoint:アンビエントモードの Waypoint によって処理されるトラフィック。

  • gateway:ゲートウェイのトラフィック。

デフォルト値は sidecar_inbound です。

説明

このフィールドは ASM 1.25 以降のバージョンでのみサポートされます。

RateLimitServiceConfig

フィールド

タイプ

必須

説明

host

string

はい

グローバル速度制限サービスが存在するクラスターのドメイン名。

port

int

はい

グローバル速度制限サービスの gRPC サービスポート。

timeout

Duration

いいえ

メッシュプロキシがグローバルスロットリングサービスに接続するためのタイムアウト期間。例:seconds: 1 および nanos: 1000。nanos はナノ秒を示します。

GlobalRateLimiterConfig

フィールド

タイプ

必須

説明

name

string

はい

速度制限ルールの名前。

match

RatelimitMatch

はい

一致基準。

limit

GlobalServiceLimitConfig

はい

速度制限しきい値の構成。

limit_overrides

GlobalRateLimitOverrideConfig[]

いいえ

構成済みの速度制限しきい値をオーバーライドするかどうかを指定します。このフィールドを使用して、特定のリクエストに対して個別に速度制限しきい値を指定できます。複数の速度制限しきい値オーバーライドを構成できます。

説明

このフィールドは、V1.19.0 以降の ASM インスタンスでのみサポートされています。

target_services

TargetServiceRef[]

いいえ

スロットリングポリシーが適用されるサービス。

説明

このフィールドは ASM 1.25 以降のバージョンでのみサポートされます。

TargetServiceRef

説明

このフィールドは ASM 1.25 以降のバージョンでのみサポートされます。

フィールド

タイプ

必須

説明

kind

string

いいえ

レート制限ポリシーが適用されるサービスの種類。有効な値:

  • Service

  • ServiceEntry

  • VirtualService

デフォルト値は Service です。

name

string

はい

レート制限ポリシーが適用されるサービスの名前。

namespace

string

いいえ

レート制限ポリシーが適用されるサービスが存在する名前空間。デフォルト値は、レート制限ポリシーを定義する名前空間です。

port

int32

いいえ

レート制限ポリシーが適用されるサービスのポート。

section_name

string

いいえ

サービスの追加プロパティ。このフィールドは VirtualService の場合にのみ有効です。

  • VirtualService:値は VirtualService で定義されたルートの名前です。

例 1

次の例は、default 名前空間の httpbin Service のポート 8000 に適用されます。

target_services:
- kind: Service
  namespace: default
  name: httpbin
  port: 8000

例 2

現在のインスタンスに次の ServiceEntry が存在すると仮定します。

apiVersion: networking.istio.io/v1
kind: ServiceEntry
metadata:
  name: se-httpbin-external
spec:
  hosts:
  - httpbin.test.com
  location: MESH_EXTERNAL
  ports:
  - name: http
    number: 80
    protocol: HTTP
  - name: https
    number: 443
    protocol: HTTPS
  resolution: DNS

次のポリシーは、この ServiceEntry のポート 80 に適用されます。

target_services:
- kind: ServiceEntry
  namespace: default
  name: se-httpbin-external
  port: 80

例 3

現在のインスタンスに次の VirtualService が存在すると仮定します。

apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
  name: vs-httpbin
spec:
  hosts:
  - httpbin.test.com
  http:
  - name: default
    route:
    - destination:
        host: httpbin
        port:
          number: 8000

次のポリシーは、VirtualService 内の default という名前のルーティングルールに適用されます。

target_services:
- kind: VirtualService
  namespace: default
  name: vs-httpbin
  section_name: default

レート制限一致

フィールド

タイプ

必須

説明

vhost

VirtualHostMatch

はい

仮想ホストの一致基準です。

GlobalServiceLimitConfig

フィールド

種類

必須

説明

単位

文字列

はい

速度制限時間の単位。有効な値:

  • MINUTE:分

  • SECOND:秒

クォータ

int

はい

単位時間あたりに許可されるリクエストの総数。

GlobalRateLimitOverrideConfig

フィールド

タイプ

必須

説明

request_match

RequestMatcher

はい

速度制限しきい値のオーバーライド構成が適用される際にリクエストが一致する必要がある条件。オーバーライド構成で指定された速度制限しきい値は、条件に一致するリクエストにのみ適用されます。

limit

GlobalServiceLimitConfig

はい

速度制限しきい値のオーバーライド構成で指定された速度制限しきい値。

VirtualHostMatch

フィールド

タイプ

必須

説明

name

string

はい

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

port

int

いいえ

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

route

RouteMatch

いいえ

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

ルート一致

フィールド

タイプ

必須

説明

name_match

string

いいえ

一致させるルートの名前。このフィールドは、仮想サービス内の単一のルートを指定します。

header_match

HeaderMatcher[]

いいえ

一致させるサービスリクエストのヘッダー。複数のヘッダーを設定できます。

説明

V1.19.0 以降の ASM インスタンスでは、このフィールドは非推奨です。 GlobalRateLimitOverrideConfig を使用してリクエストを一致させることをお勧めします。

RequestMatcher

説明

RequestMatcher セクションでは、複数のフィールドを同時に使用できます。その場合、リクエストは指定されたすべてのフィールドの基準を満たした場合にのみ一致します。

フィールド

タイプ

必須

説明

header_match

HeaderMatcher[]

いいえ

リクエストを照合するためのヘッダー。複数のヘッダーを設定できます。

remote_address

RemoteAddressMatcher

いいえ

リクエストを照合するための送信元 IP アドレス。

query_match

QueryParameterMatcher[]

いいえ

リクエストを照合するためのクエリパラメーター。複数のクエリパラメーターを設定できます。

RemoteAddressMatcher

フィールド

タイプ

必須

説明

address

string

はい

リクエストを照合するための送信元 IP アドレス。

v4_prefix_mask_len

uint32

いいえ

IPv4 アドレス範囲を照合する場合、このフィールドに IPv4 アドレスのサブネットマスク長を入力し、address フィールドに IPv4 アドレスを入力します。 サブネットマスクを使用した後に計算されたアドレス範囲が照合されます。

v6_prefix_mask_len

uint32

いいえ

IPv6 アドレス範囲を照合する場合、このフィールドに IPv6 アドレスのサブネットマスク長を入力し、address フィールドに IPv6 アドレスを入力します。 サブネットマスクを使用した後に計算されたアドレス範囲が照合されます。

HeaderMatcher

フィールド

タイプ

必須

説明

name

string

いいえ

ヘッダーの名前。

次のいずれかを選択

regex_match

string

いいえ

ヘッダー照合に使用する正規表現。

exact_match

string

いいえ

完全一致照合に使用する値。

prefix_match

string

いいえ

プレフィックス照合に使用するプレフィックス。

suffix_match

string

いいえ

サフィックス照合に使用するサフィックス。

present_match

bool

いいえ

  • このパラメーターを true に設定すると、リクエストにヘッダーが存在するかどうかに基づいてヘッダー照合が実行されます。ヘッダー値は無視されます。

  • このパラメーターを false に設定すると、ヘッダーが存在しないかどうかに基づいてヘッダー照合が実行されます。

invert_match

bool

いいえ

デフォルト値は false です。

  • このパラメーターを true に設定すると、照合結果が反転します。

  • このパラメーターを false に設定すると、照合結果は反転しません。

QueryParameterMatcher

フィールド

タイプ

必須

説明

name

string

はい

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

次のいずれかを選択

exact_match

string

いいえ

クエリパラメーターとの完全一致に使用する値。

prefix_match

string

いいえ

クエリパラメーターとのプレフィックス一致に使用するプレフィックス。

suffix_match

string

いいえ

クエリパラメーターとのサフィックス一致に使用するサフィックス。

regex_match

string

いいえ

クエリパラメーターとの正規表現一致に使用する正規表現。

contains_match

string

いいえ

クエリパラメーターに部分一致させるための文字列。 クエリパラメーターの値には、この文字列が含まれている必要があります。

present_match

bool

いいえ

  • このパラメーターを true に設定すると、リクエスト内にクエリパラメーターが存在するかどうかで一致判定が行われます。 パラメーターの値は無視されます。

  • このパラメーターを false に設定することはできません。 このパラメーターを false に設定すると、構成は指定されず、他の一致基準を指定する必要があります。

ignore_case

bool

いいえ

クエリパラメーターの一致を実行するときに、大文字と小文字を区別するかどうかを指定します。

関連ドキュメント

詳細については、「ASMGlobalRateLimiter を使用したイングレスゲートウェイおよびサービスへのインバウンドトラフィックのグローバルスロットリング設定」をご参照ください。