文档

AHAS应用迁移至MSE(Agent 接入方式)

更新时间:

对于AHAS应用以及规则数较多的用户,推荐使用平滑迁移方案。本文介绍AHAS应用迁移至MSE(Agent接入方式)。

概述

为了保证平稳迁移以及迁移过程中系统始终处于保护之下,迁移过程整体上分为如下三个步骤:

  1. 应用接入:应用接入MSE,在MSE和AHAS控制台均能看到应用,流量防护能力由AHAS侧生效。

  2. 规则迁移:将AHAS侧应用的流量防护规则迁移至MSE侧对应的应用中。

  3. 应用迁移:应用去除AHAS接入,完全接入MSE,流量防护能力由MSE侧生效。

前置条件

  • 开通MSE微服务治理企业版,请参见微服务治理企业版

  • AHAS侧为Java Agent接入方式,登录AHAS控制台左侧导航栏中选择流量防护>应用防护,单击应用卡片,然后在左侧导航栏单击应用管理>接入节点确认。

    说明

    接入类型也可以在AHAS控制台的左侧导航栏的探针管理页面中选择限流降级探针进行查看。

迁移步骤

应用接入

MSE侧提供多种接入方式,具体接入步骤可参见ACK微服务应用接入MSE治理中心,推荐的接入方式对应关系如下。

AHAS

MSE

通过Java Agent接入

ECS微服务应用接入MSE治理中心

接入容器服务Kubernetes版应用

ACK微服务应用接入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等流量防护相关指标。

    image

  • 观察MSE侧规则配置的接口是否能够在接口详情查询到指标,名称是否完全一致。

    image

    image

步骤四:去除ack-ahas-sentinel-pilot(仅K8s 接入方式需要)

在所有应用完成迁移后,建议在ACK控制台对应集群的集群详情页,左侧导航栏的应用>Helm中删除ack-ahas-sentinel-pilot。