对于AHAS应用以及规则数较多的用户,推荐使用平滑迁移方案。本文介绍AHAS应用迁移至MSE(Agent接入方式)。
概述
为了保证平稳迁移以及迁移过程中系统始终处于保护之下,迁移过程整体上分为如下三个步骤:
应用接入:应用接入MSE,在MSE和AHAS控制台均能看到应用,流量防护能力由AHAS侧生效。
规则迁移:将AHAS侧应用的流量防护规则迁移至MSE侧对应的应用中。
应用迁移:应用去除AHAS接入,完全接入MSE,流量防护能力由MSE侧生效。
前置条件
迁移步骤
应用接入
MSE侧提供多种接入方式,具体接入步骤可参见ACK微服务应用接入MSE治理中心,推荐的接入方式对应关系如下。
AHAS | MSE |
步骤中MSE侧应用名称请保持和AHAS侧一致,方便后续规则的迁移。接入时需要通过-D
或者环境变量的方式增加mse.degrade.sentinel=true
的配置来降级MSE侧流量防护,接入后如果在MSE控制台能够看到对应应用以及监控指标(此阶段MSE侧指标数据仅为部分内容,自定义埋点以及CPU指标在MSE侧不可见,指标数据均以AHAS侧为准),且在AHAS控制台仍能看到该应用以及监控指标,两侧应用数量一致,则表示该步骤操作完成,此时应用接入MSE,但流量防护能力由AHAS侧生效。
规则迁移
借助迁移工具完成规则迁移,在正式开始应用完整迁移前,请检查MSE侧应用的流量防护规则是否与AHAS侧一致,且符合预期。
应用迁移
步骤一:去除接入
AHAS侧Agent接入方式去除接入可参见如何卸载应用防护的Java Agent和SDK埋点。
AHAS侧K8s接入方式需要在YAML中去除以下参数。
# spec > template > metadata
annotations:
ahasPilotAutoEnable: "on"
ahasAppName: "<your-deployment-name>"
ahasNamespace: "default"
ahasLicenseKey: "<your-license>"
ahasRegionId: "cn-public"
步骤二:关闭MSE侧流量防护降级
需要去除通过-D
或者环境变量的方式增加的mse.degrade.sentinel=true
的配置以开启MSE侧流量防护。
步骤三:重启应用
在去除了AHAS接入后,还需要重启应用才能完成应用的迁移,应用重启后需要关注以下检查项。
登录AHAS控制台,如果应用不存在则表示去除AHAS接入成功。如果应用仍存在,选择流量防护 > 应用防护,单击应用卡片,然后在左侧导航栏单击应用管理。在接入节点页签可以看到节点的健康状态为失联,同时QPS统计也会缺失对应的统计数据。这样代表去除 AHAS 接入成功。
观察MSE控制台各处指标是否正常,流量相关指标是否包含通过QPS以及拒绝QPS等流量防护相关指标。
观察MSE侧规则配置的接口是否能够在接口详情查询到指标,名称是否完全一致。
步骤四:去除ack-ahas-sentinel-pilot(仅K8s 接入方式需要)
在所有应用完成迁移后,建议在ACK控制台对应集群的集群详情页,左侧导航栏的应用>Helm中删除ack-ahas-sentinel-pilot。