转发策略配置
本章介绍通过IaC进行转发策略配置的管理,包括监听下的转发策略、健康检查、后端服务器及动态路由管理。对应的资源类型为WiseCloud::LoadBalancer::SLB::RouteRule。
参数名 |
是否必选 |
说明 |
---|---|---|
listenerGroupName |
是 |
SLB监听名称,一个转发策略实例只能绑定一个监听实例。 |
targetGroups |
否 |
后端集群 |
routes |
否 |
转发策略(Locations) |
dynamicRoutes |
否 |
动态路由 |
参数名 |
是否必选 |
说明 |
---|---|---|
name |
是 |
后端集群名,不超过150位,不包含特殊字符。 |
protocol |
是 |
协议,取值为:HTTP或HTTPS。 |
loadBalancer |
是 |
后端集群负载均衡类型 |
healthCheck |
否 |
健康检查 |
参数名 |
是否必选 |
说明 |
---|---|---|
strategy |
是 |
负载均衡算法,支持"roundRobin"、"protocolParam"、"IP_HASH"、"least_conn"。 |
slowStartDelay |
否 |
预热时延,不超过30。 |
slowStartPeriod |
否 |
预热周期,不超过30。 |
slowStartFactor |
否 |
预热因子,默认为10,不小于1,不超过100。 |
hashParam |
否 |
哈希转发字段名,Strategy类型为protocolParam时必填 长度不超过50,由字母加数字,下划线,横杠,点组成。 |
customParam |
否 |
自定义参数,不包含by_lua。 |
默认取第一个后端集群的健康检查配置,如果为空,使用默认值。
参数名 |
是否必选 |
说明 |
---|---|---|
switchStatus |
否 |
是否开启健康检查,取值为on或off,不填或者其他字符均为off。 |
protocol |
否 |
协议,默认HTTP,不可修改。 |
path |
否 |
检查路径,长度不超过500,由字母、数字、横杠、下划线和点组成。 |
successCodes |
否 |
成功码列表,100-600之间的数字,以逗号隔开。 |
healthyThreshold |
否 |
健康阈值,取值范围2-10,默认为2。 |
interval |
否 |
探测间隔时间,取值范围1-50,默认为5。 |
timeout |
否 |
探测超时时间,取值范围1-300,默认为10。 |
unhealthyThreshold |
否 |
不健康阈值,取值范围2-10,默认为3。 |
参数名 |
是否必选 |
说明 |
---|---|---|
location |
否 |
转发策略地址,长度不超过500,非中文。 |
targetGroup |
否 |
后端集群名,长度不超过150,由字母、数字、下划线、横杠和点组成。 |
grayServiceName |
否 |
灰度规则 |
degradeUrl |
是 |
降级url
只有值为defaultDegrade时才为默认降级,其他值均认为是不降级。 |
configs |
否 |
通用与高级配置 |
参数名 |
是否必选 |
说明 |
---|---|---|
name |
是 |
名称,长度不超过50,由字母、数字、下划线、横杠和点组成,不能包含-in-且不能以-in结尾。 |
switchStatus |
是 |
开关,取值为on或off。 |
defaultTargetGroup |
是 |
默认后端集群 |
enableGrey |
是 |
默认后端集群是否仍参考灰度进行分流,取值为on/off,默认为off,只有输入on才为打开状态。 |
rules |
否 |
动态路由规则 |
locations |
否 |
动态路由关联的转发策略列表。 |
参数名 |
是否必选 |
说明 |
---|---|---|
condition |
是 |
名称 |
targetGroup |
是 |
后端集群 |
enableGray |
是 |
是否仍参考灰度进行分流,取值为on或off,默认为off,只有输入on才为打开状态。 |
转发策略模板yaml
- name: hw_test // 必填项,不可修改,不可重复 type: WiseCloud::LoadBalancer::SLB::RouteRule // 资源类型为转发策略配置 properties: routes: // 非必填 - targetGroup: group1 grayServiceName: grayServce_hw location: /abc_hw1 degradeUrl: unDegrade // 必填项,unDegrade不降级,defaultDegrade默认降级 configs: hostSwitch: 'off' addHeaders: - value: b key: aaa clientConnectionFreeTime: 60 rewrites: - source: /test option: break target: /test_hw proxyReadTimeout: 60 setVals: - value: bbb key: aaa keepaliveSwitch: 'off' proxyBuffersSize: 2 m expiresSwitch: 'on' proxyBuffersSwitch: 'on' accessLogSwitch: 'on' clientMaxBodySize: 3 k clientBodyBufferSize: 2 k expiresSize: 2 m proxyNextUpstreamCondition: 'error,timeout' proxySendTimeout: 60 xForwardedForSwitch: 'off' proxyNextUpstreamSwitch: 'on' allowMethod: 'POST,PUT,DELETE' targetGroups: // 非必填 - protocol: HTTP // 必填项 loadBalancer: // 必填项,负载均衡类型 strategy: roundRobin // 必填项,负载均衡策略 healthCheck: // 非必填,健康检查 path: /abc_test protocol: HTTP // 固定项 successCodes: '200,302' healthyThreshold: '2' unhealthyThreshold: '3' switchStatus: 'on' // 默认关闭,on为打开,打开时,不传其他参数均使用默认值 name: group1 // 必填项,并且不可重复,长度不超过150,不包含特殊字符 - protocol: HTTP loadBalancer: hashParam: $xxx strategy: protocolParam customParam: $xxx healthCheck: switchStatus: 'off' name: group2 listenerGroupName: zwx_listener1 // 必填项,SLB监听名称,一个转发策略实例只能绑定一个监听实例 dynamicRoutes: // 非必填 - enableGrey: 'off' defaultTargetGroup: group1 // 必填并且存在于targetGroups中 name: /abc_test1_hw locations: - location: /abc_hw1 rules: - targetGroup: group1 enableGray: 'off' switchStatus: 'on'