全部產品
Search
文件中心

Alibaba Cloud Service Mesh:AverageLatencySchedulingPolicy CRD說明

更新時間:Jul 30, 2024

本文介紹AverageLatencySchedulingPolicy CRD說明。

AverageLatencySchedulingPolicySpec

名稱

類型

說明

load_scheduling_core

LoadSchedulingCore

調度器配置。

LoadSchedulingCore

名稱

類型

說明

aimd_load_scheduler

AimdLoadScheduler

加性增乘性減調度器。

Selector

基於control point、flow label、agent group以及service選擇流。

control_point: ingress
label_matcher:
  match_labels:
    user_tier: gold
  match_expressions:
    - key: query
      operator: In
      values:
        - insert
        - delete
  expression:
    label_matches:
      - label: user_agent
        regex: ^(?!.*Chrome).*Safari

名稱

類型

說明

control_point

string

control point在service中標識policy對流生效的位置。可以填寫ingress或egress或者指定的listener或filter chain,預設值為ingress。

label_matcher

LabelMatcher

基於流的label匹配。

service

string

預設是any。service的FQDN。

LabelMatcher

有三種定義需求的方式:

  1. label匹配

  2. 運算式匹配

  3. 任意匹配

多個匹配間是AND的關係。空匹配意味著ANY。

名稱

類型

說明

expression

Expression

運算式匹配。

match_labels

map[string]string

標籤匹配。

match_list

[]MatchRequirement

標籤匹配的列表。

Expression

Expression有多種變體,只能配置其中一個欄位。

名稱

類型

說明

all

ExpressionList

當所有的子運算式為true時這個運算式返回true,相當於AND。

any

ExpressionList

只要有一個運算式返回true,這個運算式就返回true,相當於OR

label_equals

EqualExpression

當指定label的值和配置的值相等時返回true

label_exists

string

指定名稱的label存在時返回true

label_matches

MatchesExpression

當指定label可以被這裡的Regex匹配中時返回true

not

Expression

子運算式取反。

ExpressionList

名稱

類型

說明

of

[]Expression

Expression列表。

EqualExpression

名稱

類型

說明

label

string

label key,必填。

value

string

label value。

MatchesExpression

名稱

類型

說明

label

string

label key,必填。

regex

string

Go的Regex,必填。參考:Go Regex

MatchRequirement

名稱

類型

說明

key

string

標籤key,必填。

operator

string枚舉

必須是In | NotIn | Exists | DoesNotExist之一,必填。

values

[]string

具體的標籤值。如果operator是存在匹配,values必須是空。

AimdLoadScheduler

名稱

類型

說明

gradient

GradientControllerParameters

梯度控制器的參數,必填。

load_multiplier_linear_increment

float64

最小值是0,預設值是0.025。當系統不處於過載狀態時,線性增的比例,每10s執行一次。直到達到max_load_multiplier

load_scheduler

LoadSchedulerParameters

Load Scheduler參數,必填。

max_load_multiplier

float64

最小值時0,預設值是2。

從過載狀態恢複時,可以達到的最大過載因子。

  • 防止突發的請求增長。

  • 一旦達到了這個值,調度器進入pass-through模式,所有請求都被bypass,直接發往服務。

  • 如果系統進入過載模式,pass-through模式立刻終止。

GradientControllerParameters

梯度參數

名稱

類型

說明

max_gradient

float64

預設值1。

min_gradient

float64

預設值0.1。

slope

float64

預設值-1。

slope控制梯度控制器的激進程度和方向,它以指數的形式生效於最終的梯度計算中。比如:

  • slope = 1:當輸入過大時,增加輸出。

  • slope = -1:當輸入過大時,減小輸出。

  • slope = -0.5:當輸入過大時,逐漸減小輸出。

通常建議slope的絕對值不超過1。

LoadSchedulerParameters

名稱

類型

說明

scheduler

Scheduler

Weighted Fair Queuing-based負載調度器的配置。

selectors

[]Selector

該組件的選取器。

workload_latency_based_tokens

bool

預設false。基於歷史延遲自動估計每個工作負載的流大小。每個工作負載的token數將被設定為該工作負載在最近幾秒的平均延遲(該平均值的確切期間可能發生變化)。這項設定在限制並發度的情境十分有效,並發度的計算公式是concurrency = (avg. latency * in-flight flows)。

這裡估算出來的token值相比workload定義和flow中定義的值的優先順序更低。

Scheduler

名稱

類型

說明

workloads

[]SchedulerWorkload

一些流集合的定義。

SchedulerWorkload

名稱

類型

說明

label_matcher

LabelMatcher

標籤匹配器。

Name

string

Workload名稱。

Parameters

SchedulerWorkloadParameters

調度器Workload參數。

SchedulerWorkloadParameters

名稱

類型

說明

priority

float64

優先順序。

queue_timeout

string

排隊逾時時間。

tokens

float64

tokens確定了在工作負載中處理單個流的成本,這通常定義為流延遲(回應時間或某功能的期間)的毫秒數,或者如果被訪問的資源受流的數量限制(例如第三方速率限制器),則簡單地等同於1。如果流的標籤中沒有指定tokens,那麼這個覆寫(override)才會適用。