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
欄位 | 類型 | 是否必須 | 說明 |
name | string | 否 | 單條熔斷配置的名稱。 |
match | 否 | 匹配條件。 | |
breaker_config | 否 | 路由級熔斷配置。 |
CircuitBreakerMatch
欄位 | 類型 | 是否必須 | 說明 |
vhost | 否 | VirtualHost匹配條件。 |
BreakerConfig
欄位 | 類型 | 是否必須 | 說明 |
window_size | Duration | 否 | 統計時間視窗,預設10s,最大不能超過12s。 |
break_duration | Duration | 否 | 熔斷時間長度,預設30s。 |
slow_request_rt | Duration | 否 | 定義慢請求的響應延遲時間,超過該響應時間長度的請求則被認定為慢請求。 |
average_request_rt | Duration |
| 定義業務的平均回應時間,例如0.01s。 |
max_slow_requests | uint32 | 否 | 最大慢請求次數,必須為整數,例如:1000。超過該次數的新請求會被熔斷。 |
error_percent | 否 | 錯誤百分比,時間視窗內錯誤請求(5XX)比例超過該值,則新的請求會被熔斷。 | |
min_request_amount | uint32 | 否 | 最少請求次數,對應error_percent條件,預設為0。為了防止誤判定被熔斷,可配置請求最少次數。 |
custom_response | 否 | 當請求被熔斷時,自訂返回內容。 |
CustomResponse
欄位 | 類型 | 是否必須 | 說明 |
status_code | int32 | 否 | HTTP響應狀態代碼。 |
header_to_add | map[string]string | 否 | 自訂響應添加的Headers。 |
body | string | 否 | 自訂響應Body內容。 |
VirtualHostMatch
欄位 | 類型 | 是否必須 | 說明 |
name | string | 否 | 匹配的VirtualHost名稱。 |
port | int | 否 | 匹配的請求連接埠。 |
route | 是 | 匹配的請求介面對應的路由名稱。 |
RouteMatch
欄位 | 類型 | 是否必須 | 說明 |
name_match | string |
| 匹配的路由名稱,對應VirtualService下的單條路由名稱。 |
header_match | 否 | 匹配服務要求的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 | 否 |
| |
invert_match | bool | 否 | 預設為false。
|