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

Alibaba Cloud Service Mesh:ASMCircuitBreaker CRD リファレンス

最終更新日:Nov 09, 2025

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

構成例

例 1: クライアント側のサーキットブレーキング

説明

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

次の例は、クライアント側のサーキットブレーキングを構成する方法を示しています。sleep アプリケーションが httpbin アプリケーションにアクセスするときに、10 秒以内にリクエストの 60% 以上が失敗するか、10 件を超える低速リクエストが発生した場合、サーキットブレーカーがトリップします。状態コード 499 が返されます。

YAML ファイルを展開して表示

apiVersion: istio.alibabacloud.com/v1
kind: ASMCircuitBreaker
metadata:
  name: client-break
spec:
  workloadSelector:
    labels:
      app: sleep
  applyToTraffic: sidecar_outbound
  configs:
    - target_services:
      - name: httpbin
        port: 8000
      breaker_config:
        slow_request_rt: 0.1s # リクエストが低速と見なされるための応答時間のしきい値。
        break_duration: 90s # サーキットブレーカーが開いたままでいる期間。
        window_size: 10s # リクエスト統計のタイムウィンドウは 10 秒です。
        max_slow_requests: 10 # 低速リクエストの最大数は 10 です。
        min_request_amount: 3 # 3 つのリクエストの後にエラー率の計算を開始します。
        error_percent:
          value: 60 # リクエストの 60% 以上にエラーがあります。
        custom_response:
          header_to_add:
            x-envoy-circuitbreak: "true"
          body: "hello, break!"
          status_code: 499

例 2: Waypoint サーキットブレーキング

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

この例では、default という名前のウェイポイント上のアプリケーションに対してサーキットブレーキングルールを構成します。サーキットブレーキングルールは例 1 と同じです。

YAML ファイルを展開して表示

apiVersion: istio.alibabacloud.com/v1
kind: ASMCircuitBreaker
metadata:
  name: test
spec:
  workloadSelector:
    labels:
      gateway.networking.k8s.io/gateway-name: default
  applyToTraffic: waypoint
  configs:
    - target_services:
      - name: httpbin
        port: 8000
      breaker_config:
        slow_request_rt: 0.1s
        break_duration: 90s
        window_size: 10s
        max_slow_requests: 10
        min_request_amount: 3
        error_percent:
          value: 60
        custom_response:
          header_to_add:
            x-envoy-circuitbreak: "true"
          body: "hello, break!"
          status_code: 499

apiVersion

  • ASM インスタンスのバージョンが 1.15.3.105 以降の場合は、apiVersion: istio.alibabacloud.com/v1 を使用します。Alibaba Cloud Container Service for Kubernetes (ACK) クラスターでこれを構成している場合は、対応する ASMCircuitBreaker CRD の apiVersion: istio.alibabacloud.com/v1beta1 フィールドを apiVersion: istio.alibabacloud.com/v1 に変更してから、再デプロイします。

  • ASM インスタンスのバージョンが 1.15.3.105 より前の場合は、apiVersion: istio.alibabacloud.com/v1beta1 を使用します。

spec

次の表に、spec セクションのフィールドを示します。ASMCircuitBreaker の特徴とユースケースの詳細については、「ASM でのルートレベルのサーキットブレーキングの使用」をご参照ください。

フィールド

タイプ

必須

説明

applyToTraffic

string

いいえ

サーキットブレーキングポリシーが適用されるトラフィックのタイプ。有効な値:

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

  • sidecar_outbound: サイドカーからのアウトバウンドトラフィック。これは、サイドカープロキシがマウントされたアプリケーションによって送信されるトラフィックで、アプリケーションはクライアントとして機能します。

  • waypoint: アンビエントモードのウェイポイントプロキシによって処理されるトラフィック。

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

デフォルト値は sidecar_outbound です。

説明

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

ASMCircuitBreakerSpec

フィールド

タイプ

必須

説明

workloadSelector

map<string, string>

はい

1 つ以上のラベルを使用して、サーキットブレーキング構成が適用される Pod または仮想マシン (VM) の特定のセットを選択します。ラベル検索の範囲は、リソースが配置されている名前空間に限定されます。詳細については、「WorkloadSelector」をご参照ください。

isGateway

bool

いいえ

構成がゲートウェイに適用されるかどうかを指定します。true に設定すると、構成はゲートウェイに適用されます。デフォルト値は false です。

configs

CircuitBreakerConfig[]

はい

サーキットブレーキング構成。複数の構成を指定できます。

CircuitBreakerConfig

フィールド

タイプ

必須

説明

name

string

いいえ

単一のサーキットブレーキング構成の名前。

match

CircuitBreakerMatch

いいえ

一致条件。

breaker_config

BreakerConfig

いいえ

ルートレベルのサーキットブレーキング構成。

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 サービスのポート 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 という名前の HTTP ルーティングルールに適用されます。

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

CircuitBreakerMatch

フィールド

タイプ

必須

説明

vhost

VirtualHostMatch

いいえ

仮想ホストの一致条件。

BreakerConfig

フィールド

タイプ

必須

説明

window_size

Duration

いいえ

統計のタイムウィンドウ。デフォルト値は 10 秒です。最大値は 12 秒です。

break_duration

Duration

いいえ

サーキットブレーカーが開いたままでいる期間。デフォルト値は 30 秒です。

slow_request_rt

Duration

いいえ

低速リクエストの応答レイテンシのしきい値を定義します。リクエストの応答時間がこの値を超えると、低速と見なされます。

average_request_rt

Duration

  • 1.14 より前の ASM インスタンスの場合: はい

  • ASM インスタンス 1.14 以降の場合: いいえ

サービスの平均応答時間を定義します (例: 0.01 秒)。

max_slow_requests

uint32

いいえ

低速リクエストの最大数。これは整数でなければなりません (例: 1000)。この数を超えると、新しいリクエストは拒否されます。

error_percent

Percent

いいえ

エラー率。タイムウィンドウ内の 5xx エラーを持つリクエストの割合がこの値を超えると、新しいリクエストは拒否されます。

gateway_error_percent

Percent

いいえ

ゲートウェイエラー率。タイムウィンドウ内のゲートウェイエラー (502、503、504) を持つリクエストの割合がこの値を超えると、新しいリクエストは拒否されます。このフィールドは、バージョン 1.24.6.54 以降の ASM インスタンスでのみ有効です。

min_request_amount

uint32

いいえ

リクエストの最小数。このフィールドは error_percent 条件に対応します。デフォルト値は 0 です。少数の障害によってサーキットブレーカーがトリップするのを防ぐために、リクエストの最小数を構成できます。

custom_response

CustomResponse

いいえ

リクエストがサーキットブレーカーによって拒否されたときに返すカスタム応答。

CustomResponse

フィールド

タイプ

必須

説明

status_code

int32

いいえ

HTTP 応答の状態コード。

header_to_add

map[string]string

いいえ

カスタム応答に追加するヘッダー。

body

string

いいえ

カスタム応答の本文。

VirtualHostMatch

フィールド

タイプ

必須

説明

name

string

いいえ

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

port

int

いいえ

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

route

RouteMatch

はい

一致させる API ルーティングルールの名前。

RouteMatch

フィールド

タイプ

必須

説明

name_match

string

  • ゲートウェイ: はい

  • サイドカー: いいえ

一致させるルートの名前。これは VirtualService 内の単一のルート名に対応します。

header_match

HeaderMatcher[]

いいえ

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

重要

このフィールドを使用するには、ASM インスタンスがバージョン 1.16 以降であり、対応するゲートウェイインスタンスとサイドカーが最新バージョンである必要があります。ASM インスタンスのスペックアップ方法の詳細については、「ASM インスタンスのスペックアップ」をご参照ください。サイドカープロキシのアップグレード方法の詳細については、「サイドカープロキシのアップグレード」をご参照ください。

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 に設定した場合、元の一致結果が使用されます。