LoadRampingPolicy是服务网格ASM流量调度套件提供的一种预置策略,用于对新服务进行渐进式上线。本文介绍LoadRampingPolicy的CRD说明。
LoadRampingPolicy字段说明
LoadRampingPolicy指定了服务上线流程的若干阶段的相关参数,以及用作上线阶段转移决策的服务负载表现基准的相关参数。
LoadRampingPolicySpec
LoadRampingPolicySpec是LoadRampingPolicy的核心配置,即spec的部分。
字段 | 类型 | 是否必选 | 说明 |
drivers | 是 | 服务上线阶段迁移决策驱动。 | |
start | bool | 是 | 部署时需指定为true,代表上线流程开始。在上线流程运行过程中,此字段可被修改为false以暂停上线流程。 |
reset | bool | 否 | 部署时不能指定。在上线流程运行过程中,此字段可被置为true,以手动重置上线流程。 |
load_ramp | 是 | 上线过程执行器的相关配置。 |
Drivers
Drivers中可以定义不同种类的驱动,驱动可以通过指定的方式采集服务的负载指标、并通过预先定义的指标阈值来决策服务上线流程是否要进行下个阶段的迁移。
字段 | 类型 | 是否必选 | 说明 |
average_latency_drivers | AverageLatencyDriver | 否 | 平均迁移驱动。该驱动会定期检测服务的平均延迟,并通过延迟是否达到阈值来决策服务上线流程是否要向下个阶段进行迁移。 |
AverageLatencyDriver
字段 | 类型 | 是否必选 | 说明 |
selectors | []Selector | 是 | 基于选择器来选择驱动采集延迟的具体请求流。 |
criteria | DriverCriteria | 是 | 对上线阶段迁移进行决策的判断基准。驱动会将采集到的请求延迟和判断基准进行比较,进而决策是否要向下一个上线阶段进行迁移 |
DriverCriteria
字段 | 类型 | 是否必选 | 说明 |
forward | 是 | 决策是否要向下一个上线阶段进行迁移的基准,当驱动采集到的请求负载数值小于此基准时,向下一个上线阶段进行迁移。 | |
reset | 是 | 决策是否要重置上线流程的基准,当驱动采集到的请求负载数值大于此基准时,重置上线流程。 |
Criteria
Criteria指定一个基准阈值,驱动会将采集到的数值与该阈值进行比较,以进行上线阶段迁移决策。
字段 | 类型 | 是否必选 | 说明 |
threshold | float | 是 | 基准阈值数值。 |
LoadRamp
LoadRamp指定了上线流程执行器的相关配置,包括请求采样器以及若干上线阶段的配置。
字段 | 类型 | 是否必选 | 说明 |
sampler | 是 | 请求采样器配置。请求采样器会在整个上线流程中根据指定的比例来拒绝部分请求。 | |
steps | []Step | 是 | 多个上线阶段的定义,整个上线流程就是在多个上线阶段之间进行线性地迁移。 |
Sampler
字段 | 类型 | 是否必选 | 说明 |
selectors | []Selector | 是 | 基于选择器来选择采样器作用的请求流。 |
Step
Step定义了服务上线的一个阶段
字段 | 类型 | 是否必选 | 说明 |
duration | Duration | 是 | 上线阶段持续时间,需要指定一个以s结尾的时间,代表若干秒,如300s。 |
target_accept_percentage | float | 是 | 上线阶段的目标请求接受比例。在向该阶段迁移时,采样器接受的请求比例将线性地迁移至此阶段的目标请求接收比例。 |