全部產品
Search
文件中心

Alibaba Cloud Service Mesh:ASMCircuitBreaker CRD說明

更新時間:Jun 30, 2024

ASM通過ASMCircuitBreaker CRD實現熔斷的聲明式配置。本文介紹ASMCircuitBreaker的欄位說明。

apiVersion

  • 若ASM執行個體版本為1.15.3.105及以上,支援使用apiVersion: istio.alibabacloud.com/v1。若您在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路由級熔斷功能

ASMCircuitBreakerSpec

欄位

類型

是否必須

說明

workloadSelector

map<string, string>

通過一個或多個標籤,指明限流配置生效的一組特定的Pod或VM。標籤搜尋的範圍限制在資源所在的配置命名空間。更多資訊,請參見WorkloadSelector

isGateway

bool

配置為true,表示配置作用於網關。預設為false。

configs

CircuitBreakerConfig[]

熔斷配置,可配置多條。

CircuitBreakerConfig

欄位

類型

是否必須

說明

name

string

單條熔斷配置的名稱。

match

CircuitBreakerMatch

匹配條件。

breaker_config

BreakerConfig

路由級熔斷配置。

CircuitBreakerMatch

欄位

類型

是否必須

說明

vhost

VirtualHostMatch

VirtualHost匹配條件。

BreakerConfig

欄位

類型

是否必須

說明

window_size

Duration

統計時間視窗,預設10s,最大不能超過12s。

break_duration

Duration

熔斷時間長度,預設30s。

slow_request_rt

Duration

定義慢請求的響應延遲時間,超過該響應時間長度的請求則被認定為慢請求。

average_request_rt

Duration

  • ASM執行個體版本為1.14以下:是

  • ASM執行個體版本為1.14及以上:否

定義業務的平均回應時間,例如0.01s。

max_slow_requests

uint32

最大慢請求次數,必須為整數,例如:1000。超過該次數的新請求會被熔斷。

error_percent

Percent

錯誤百分比,時間視窗內錯誤請求(5XX)比例超過該值,則新的請求會被熔斷。

min_request_amount

uint32

最少請求次數,對應error_percent條件,預設為0。為了防止誤判定被熔斷,可配置請求最少次數。

custom_response

CustomResponse

當請求被熔斷時,自訂返回內容。

CustomResponse

欄位

類型

是否必須

說明

status_code

int32

HTTP響應狀態代碼。

header_to_add

map[string]string

自訂響應添加的Headers。

body

string

自訂響應Body內容。

VirtualHostMatch

欄位

類型

是否必須

說明

name

string

匹配的VirtualHost名稱。

port

int

匹配的請求連接埠。

route

RouteMatch

匹配的請求介面對應的路由名稱。

RouteMatch

欄位

類型

是否必須

說明

name_match

string

  • 網關:是

  • Sidecar:否

匹配的路由名稱,對應VirtualService下的單條路由名稱。

header_match

HeaderMatcher[]

匹配服務要求的Header,支援配置多個。

重要

使用該欄位需ASM執行個體為1.16及以上版本,且對應的網關執行個體和Sidecar都為最新版。關於如何升級ASM執行個體和網關執行個體,請參見升級ASM執行個體;關於如何升級Sidecar,請參見升級Sidecar代理

HeaderMatcher

欄位

類型

是否必須

說明

name

string

Header名稱。

任選其一

regex_match

string

Regex匹配。

exact_match

string

精確匹配。

prefix_match

string

首碼匹配,以什麼開頭進行匹配。

suffix_match

string

尾碼匹配,以什麼結尾進行匹配。

present_match

bool

  • 配置為true,表示存在Header即可,無需關注Header Value的取值。

  • 配置為false,表示不存在Header。

invert_match

bool

預設為false

  • 配置為true,表示上述匹配結果取反。

  • 配置為false,表示遵循上述匹配結果。