
# 原集群卸载重装方案
#### 前提
确保[准备工作](https://support.huaweicloud.com/bestpractice-asm/asm_bestpractice_1011.html#asm_bestpractice_1011__section8260108181414)已完成。
#### 移除集群
1. 登录[应用服务网格控制台](https://console.huaweicloud.com/asm/?locale=zh-cn)，单击待迁移的企业版网格名称进入网格详情页面，在网关管理页面删除网格内的所有网关资源。
   
   
   
   
2. 在网格详情页，单击"网格配置"进入基本信息页签，单击集群后面的"移除"按钮 。 
   
   
   
3. 是否重启已有服务选择"是"，勾选"取消注入sidecar会重启关联的Pod，将会暂时中断您的业务"，单击"确定"。 
   
   
   
 
#### （可选）升级集群版本
1. 参考[CCE集群升级指南](https://support.huaweicloud.com/usermanual-cce/cce_10_0197.html)进行集群版本升级，推荐升级到1.28版本。
 
#### 创建新网格
1. 根据如下支持列表选择创建基础网格。 
   表1ASM网格版本与集群版本适配规则 
   | ASM网格版本 | 集群版本                                                        |
   |:---|:---|
   | 1.3     | v1.13、v1.15、v1.17、v1.19                                     |
   | 1.6     | v1.15、v1.17                                                 |
   | 1.8     | v1.15、v1.17、v1.19、v1.21                                     |
   | 1.13    | v1.21、v1.23                                                 |
   | 1.15    | v1.21、v1.23、v1.25、v1.27、v1.28                               |
   | 1.18    | v1.25、v1.27、v1.28、v1.29、v1.30、v1.31、v1.32、v1.33、v1.34、v1.35 |
   | 1.28    | v1.30、v1.31、v1.32、v1.33、v1.34、v1.35                         |
      
   
   
2. 选择从企业版网格移除出来的集群创建基础版网格。建议创建istio最新版本的网格。 
   
   
   
3. 在网格详情页，依次单击"网格配置-sidecar管理-sidecar管理"，选择需要开启自动注入的命名空间（[准备工作中步骤11](https://support.huaweicloud.com/bestpractice-asm/asm_bestpractice_1011.html#asm_bestpractice_1011__li5411812381)中记录的命名空间），是否重启已有服务选择"是"，勾选"取消注入sidecar会重启关联的Pod，将会暂时中断您的业务"，单击"确定"。
   
   
   
   
   
 
#### 配置同步
1. 将准备工作中备份的配置文件在新网格中恢复，若未配置kubectl命令，可参考[CCE配置kubectl](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html#section1) 。
   
   ```
   kubectl create -f all-svc.yaml
   kubectl create -f all-vs.yaml
   kubectl create -f all-dr.yaml
   kubectl create -f all-gw.yaml
   kubectl create -f all-se.yaml
   kubectl create -f all-ef.yaml
   kubectl create -f all-sidecar.yaml
   kubectl create -f all-we.yaml
   kubectl create -f all-wg.yaml
   kubectl create -f all-pa.yaml
   kubectl create -f all-ra.yaml
   kubectl create -f all-ap.yaml
   kubectl create -f user-all-svc.yaml
   kubectl create -f user-all-secret.yaml
   ```
   ![](https://support.huaweicloud.com/bestpractice-asm/public_sys-resources/caution_3.0-zh-cn.png)
   若出现"Error from server (AlreadyExists): xxxxx already exists" 已存在的报错则忽略。
   
   
2. 删除新版本无用配置。 
   - 若源版本是1.6企业版则执行如下命令：
     ```
     kubectl -nistio-system delete svc istiod-remote
     kubectl -nistio-system delete svc istiod-elb
     kubectl -nistio-system delete vs istiod
     ```
     
   
   - 若源版本是1.8企业版则执行如下命令：
     ```
     kubectl -nistio-system delete envoyfilter metadata-exchange-1.6 
     kubectl -nistio-system delete envoyfilter metadata-exchange-1.7 
     kubectl -nistio-system delete envoyfilter metadata-exchange-1.8 
     kubectl -nistio-system delete envoyfilter stats-filter-1.6
     kubectl -nistio-system delete envoyfilter stats-filter-1.7
     kubectl -nistio-system delete envoyfilter stats-filter-1.8
     kubectl -nistio-system delete envoyfilter tcp-metadata-exchange-1.6
     kubectl -nistio-system delete envoyfilter tcp-metadata-exchange-1.7
     kubectl -nistio-system delete envoyfilter tcp-metadata-exchange-1.8
     kubectl -nistio-system delete envoyfilter tcp-stats-filter-1.6
     kubectl -nistio-system delete envoyfilter tcp-stats-filter-1.7
     kubectl -nistio-system delete envoyfilter tcp-stats-filter-1.8
     kubectl -nistio-system delete svc istiod-remote
     kubectl -nistio-system delete svc istiod-elb
     kubectl -nistio-system delete vs istiod
     ```
     
   
   
   
   
 
#### 功能验证
1. 查看console功能是否正常，如网关路由显示 ，网关访问等。 
   
   
   
2. 验证业务功能是否正常。
 
#### 异常回退
1. 登录[应用服务网格控制台](https://console.huaweicloud.com/asm/?locale=zh-cn)，在网格列表页面单击待删除网格右上角的卸载按钮卸载网格，是否重启已有服务选择"是"，勾选"取消注入sidecar会重启关联的Pod，将会暂时中断您的业务"，单击"确定"。
   
   
   
   
   
2. 在网格详情页，依次单击"网格配置-基本信息-添加集群"将卸载后集群重新添加回1.0企业版里面。 
   
   
   
3. 添加集群时，集群 选择"扁平网格"，选择需要开启自动注入的命名空间（[准备工作中步骤11](https://support.huaweicloud.com/bestpractice-asm/asm_bestpractice_1011.html#asm_bestpractice_1011__li5411812381)中记录的命名空间），是否重启已有服务选择"是"，勾选"取消注入sidecar会重启关联的Pod，将会暂时中断您的业务"，单击"确定"。
   
   
   
   
4. 使用控制面kubectl 执行如下命令。 
   ```
   kubectl create -f all-svc.yaml
   kubectl create -f all-vs.yaml
   kubectl create -f all-dr.yaml
   kubectl create -f all-gw.yaml
   kubectl create -f all-se.yaml
   kubectl create -f all-ef.yaml
   kubectl create -f all-sidecar.yaml
   kubectl create -f all-we.yaml
   kubectl create -f all-wg.yaml
   kubectl create -f all-pa.yaml
   kubectl create -f all-ra.yaml
   kubectl create -f all-ap.yaml
   ```
   
   
5. 使用数据面集群kubectl执行如下命令。 
   ```
   kubectl create -f user-all-svc.yaml
   kubectl create -f user-all-secret.yaml
   ```
   
   
6. 功能验证。 
   - 网关访问正常 
     
   
   - 路由显示正常 
     
   
   
   
   
 
