新建集群和网格迁移方案
- 请务必确保准备工作完成。
- 请根据自身需求选择集群版本和网格版本,推荐使用最新集群和网格版本。
新建集群和网格
配置同步
方案一 手动同步网格配置(推荐)
手动在新建的网格上添加网关路由,并同步1.0企业版网格配置。
方案二 使用备份网格资源还原配置
- 查看企业版网格网关使用了几个ELB,使用新建的几个ELB进行替换,如下图所示使用了两个ELB:
ELB1:(3dbb4787-75c1-42f0-897a-1f683f7e89a0)* .*.*.*
ELB2:(e60fdaa7-3398-4a19-8bd1-d53598c6917e)* .*.*.*
新建两个ELB。
newELB1:(caf6ec4a-2fa8-42ae-bdfb-388f8b13778a)* .*.*.*
newELB2:(792c0a3d-190d-413d-a5b9-5c1ac3fe3705)* .*.*.*
将准备工作中备份的istio 配置文件拷贝一份到新集群节点上, 执行如下命令:
#查看老ELB IP grep -i "老ELB IP" *.yaml #ELB IP 替换 sed -i 's/老ELB IP/新ELB IP/g' *.yaml #ELB ID 替换 sed -i 's/老ELB ID/新ELB ID/g' *.yaml #替换clusterID sed -i 's/老clusterID/新clusterID/g' *.yaml #替换CluseterName sed -i 's/老CluseterName/新CluseterName/g' *.yaml #替换完成后查看 grep -i "新ELB IP" *.yaml grep -i "新ELB ID" *.yaml grep -i "新clusterID" *.yaml grep -i "新CluseterName" *.yaml
替换完成后如下所示:
- 将准备工作中备份的配置文件在新网格中恢复,若未配置kubectl命令,可参考CCE配置kubectl 。
kubectl create -f all-svc.yaml //kubectl create -f all-secret.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
若出现“Error from server (AlreadyExists): xxxxx already exists” 已存在的报错则忽略。
- 删除新版本无用配置。
- 若源版本是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
- 验证业务功能若出现服务异常场景,单击处理,查看异常错误。
在CCE service页面修改
业务切流
业务切流有两种方案,可根据需要进行选择。
方案一 使用DNS切换后端ELB IP
- 在本地host将域名对应的ELB IP地址改为新的ELB IP。
- 本地验证功能,验证成功后修改DNS 配置,将域名解析IP地址改为新ELB的IP。
方案二 使用ServiceEntry和WorkloadEntry进行灰度切流(待定,感觉没使用场景)
功能验证
- 业务切流进行全面功能验证。
异常回退
若在迁移过程中出现异常,可按照如下步骤回退
- 将DNS 配置复原。
- 将新建网格集群删除。