サービスメッシュ (ASM) では、カスタムリソース定義 (CRD) を使用して ASMGlobalRateLimiter の構成を宣言的に定義することで、グローバルな速度制限を実現できます。このトピックでは、ASMGlobalRateLimiter のフィールドについて説明します。
spec
フィールド | タイプ | 必須 | 説明 |
workloadSelector | map<string, string> | はい | 速度制限ルールが適用されるワークロードのセットを指定する 1 つ以上のラベル。ラベルベースの検索の範囲は、リソースが存在する名前空間に制限されます。詳細については、「Workload Selector」をご参照ください。 |
isGateway | bool | いいえ | 速度制限ルールをゲートウェイに適用するかどうかを指定します。デフォルト値: false。 |
rateLimitService | はい | グローバル速度制限サービスの構成。 | |
configs | はい | グローバル速度制限ルール。 |
RateLimitServiceConfig
フィールド | タイプ | 必須 | 説明 |
host | string | はい | グローバル速度制限サービスが存在するクラスターのドメイン名。 |
port | int | はい | グローバル速度制限サービスの gRPC サービスポート。 |
timeout | Duration | いいえ | メッシュプロキシがグローバル速度制限サービスに接続するためのタイムアウト期間。例: |
GlobalRateLimiterConfig
フィールド | タイプ | 必須 | 説明 |
name | string | はい | 速度制限ルールの名前。 |
match | はい | 一致基準。 | |
limit | はい | 速度制限しきい値の構成。 | |
limit_overrides | いいえ | 構成済みの速度制限しきい値をオーバーライドするかどうかを指定します。このフィールドを使用して、特定のリクエストに対して個別に速度制限しきい値を指定できます。複数の速度制限しきい値オーバーライドを構成できます。 説明 このフィールドは、V1.19.0 以降の ASM インスタンスでのみサポートされています。 |
レート制限一致
フィールド | タイプ | 必須 | 説明 |
vhost | はい | 仮想ホストの一致基準です。 |
GlobalRateLimiterConfig
フィールド | 種類 | 必須 | 説明 |
単位 | 文字列 | はい | 速度制限時間の単位。有効な値:
|
クォータ | int | はい | 単位時間あたりに許可されるリクエストの総数。 |
GlobalRateLimitOverrideConfig
フィールド | タイプ | 必須 | 説明 |
request_match | はい | 速度制限しきい値のオーバーライド構成が適用される際にリクエストが一致する必要がある条件。オーバーライド構成で指定された速度制限しきい値は、条件に一致するリクエストにのみ適用されます。 | |
limit | はい | 速度制限しきい値のオーバーライド構成で指定された速度制限しきい値。 |
VirtualHostMatch
フィールド | タイプ | 必須 | 説明 |
name | string | はい | 一致させる仮想ホストの名前です。 |
port | int | いいえ | 一致させるリクエスト ポートです。 |
route | いいえ | 一致させるリクエスト ポートに対応するルートの名前です。 |
ルート一致
フィールド | タイプ | 必須 | 説明 |
name_match | string | いいえ | 一致させるルートの名前。このフィールドは、仮想サービス内の単一のルートを指定します。 |
header_match | いいえ | 一致させるサービスリクエストのヘッダー。複数のヘッダーを設定できます。 説明 V1.19.0 以降の ASM インスタンスでは、このフィールドは非推奨です。 GlobalRateLimitOverrideConfig を使用してリクエストを一致させることをお勧めします。 |
RequestMatcher
RequestMatcher セクションの複数のフィールドを同時に使用できます。複数のフィールドを同時に使用する場合、各フィールドの条件を満たすリクエストのみが一致します。
フィールド | タイプ | 必須 | 説明 |
header_match | いいえ | リクエストを照合するためのヘッダー。複数のヘッダーを設定できます。 | |
remote_address | いいえ | リクエストを照合するための送信元 IP アドレス。 | |
query_match | いいえ | リクエストを照合するためのクエリパラメーター。複数のクエリパラメーターを設定できます。 |
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 | いいえ |
| |
invert_match | bool | いいえ | 一致結果を反転するかどうかを指定します。 デフォルト値: false。
| |
QueryParameterMatcher
フィールド | タイプ | 必須 | 説明 | |
name | string | はい | クエリパラメーターの名前。 | |
一致モードに基づいていずれかのフィールドを指定します | exact_match | string | いいえ | クエリパラメーターの一致を実行するために使用される値。 クエリパラメーターの値は、指定された値と完全に一致する必要があります。 |
prefix_match | string | いいえ | クエリパラメーターの一致を実行するために使用されるプレフィックス。 クエリパラメーターの値は、指定された文字で始まる必要があります。 | |
suffix_match | string | いいえ | クエリパラメーターの一致を実行するために使用されるサフィックス。 クエリパラメーターの値は、指定された文字で終わる必要があります。 | |
regex_match | string | いいえ | クエリパラメーターの一致を実行するために使用される正規表現。 クエリパラメーターの値は、指定された正規表現と一致する必要があります。 | |
contains_match | string | いいえ | クエリパラメーターの一致を実行するために使用される内容。 クエリパラメーターの値には、指定された内容が含まれている必要があります。 | |
present_match | bool | いいえ |
| |
ignore_case | bool | いいえ | クエリパラメーターの一致を実行するときに、大文字と小文字を区別するかどうかを指定します。 | |
参照
ASMGlobalRateLimiter を使用して、イングレス ゲートウェイとサービスへのインバウンド トラフィックのグローバルな速度制限を構成する