对于任何一个线上应用来说,发布、扩容、缩容、重启等操作不可避免。MSE支持无损上下线方案,为应用启动和下线的多个阶段提供相应的保护能力,例如服务预热、服务延迟注册等。本文介绍如何通过YAML方式配置无损上线。
步骤一:开通权限
找到ACK集群角色(包含KubernetesWorkerRole字样),然后授予ACK集群请求MSE上线接口的权限。具体操作,请参见为Worker RAM角色授予权限策略。
创建自定义权限策略时,您需要修改策略内容。在创建权限策略页面,单击脚本编辑页签,将以下内容添加到策略内容。
{
"Action": [
"mse:ModifyLosslessRule"
],
"Resource": "*",
"Effect": "Allow"
}
步骤二:配置无损上下线变量
配置无损上线变量前,将ACK微服务应用接入MSE治理中心。具体操作,请参见ACK微服务应用接入MSE治理中心。
您可以参照下文,配置字段信息。具体操作,请参见配置无损上线。
字段方式位置。
spec > template > metadata > labels
字段含义说明。
字段
含义
默认值
mse.lossless.warmupTime
预热时长,单位为秒。
2
mse.lossless.funcType
预热曲线预热过程QPS所呈现曲线形状,如2表示曲线形状呈2次曲线形状。
2
mse.lossless.delayTime
延迟注册时间,单位为秒。相较于正常状态,应用启动将延迟x(x指所设的值)秒后再向注册中心注册应用或服务。
30
mse.lossless.enable
是否开启规则。
true:开启。
false:关闭。
false
mse.lossless.aligned
就绪检查关联服务注册,即打开后就绪检查会在当前节点服务注册完成后通过。
true
mse.lossless.related
就绪检查关联服务预热,即打开后就绪检查会在当前节点服务预热完成后通过。
false
mse.lossless.detail
是否显示无损上下线处理明细。
false
mse.lossless.notice
是否开启服务提供者主动通知。
false
字段配置样例。
mse.lossless.aligned: 'false' mse.lossless.delayTime: '30' mse.lossless.enable: 'true' mse.lossless.funcType: '2' mse.lossless.related: 'false' mse.lossless.warmupTime: '60'
结果验证
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片。
在左侧导航栏,单击流量治理,在无损上下线页签查看无损上线规则配置已变更,同时对应的无损上线功能已生效。
- 本页导读 (1)