聚石塔华东1(杭州)地域于2019年10月1日下线,原EWS聚石塔杭州的服务不能再运行在聚石塔华东1(杭州)的ECS主机上,需要迁移至华北3(张家口)。对应的EWS服务需要从聚石塔杭州迁移至聚石塔张北。为避免杭州区服务停止运行后原域名无法继续访问的问题,特此提供张北迁移辅助功能,不仅EWS服务层面的数据可以一键迁移,还可以通过切流功能保留使用原域名。
备注 :
前期准备:确认哪些服务需要迁移,不需要的服务可以直接删除;梳理是否需要保留原域名;梳理需要购买的张家口ECS数量和规格;
后期清理:对于成功迁移至聚石塔华北3(张家口)的服务,杭州的服务可以删除了。切流完成后杭州服务最好仍保留一段时间,之后再删除;
需要保留原域名的,才需要切流操作,我们会帮助配置DNS(此操作有风险,详情请看文档最后Q&A)从而达到 ”访问原域名->请求新服务“ 的目的;
不需要保留原域名的,服务一键迁移后,直接确认完成,新服务的域名为新的张北域名,使用新域名访问服务即可;
主要步骤说明:
购买聚石塔张家口的ECS资源,并且添加到资源池,可以与第2步同时进行。
状态为“未开始”的任务点击“发起迁移”按钮为每个服务提交迁移任务。如下图所示:
开始执行后页面状态为“数据准备中”,完成之后,刷新页面可以看到任务状态变为“数据准备完成”。如下图所示:
注意事项:
此步骤会在张北创建同名同配置的新服务,同时会拷贝原服务的git仓库、代码包等;
ECS上的数据和容器不会迁移,需要自己迁移相关数据以及扩容容器(步骤3);
新服务名与原来一致,之后用户可以自己修改;
新服务的历史包版本与原来相同;
新服务的域名前缀与原来相同,如原域名为mydomain.ews.m.jaeapp.com,则新域名为mydomain.ewszjk.m.jaeapp.com;
新服务的git仓库url与原来相同,不影响代码仓库操作
进入服务列表页面,在聚石塔张北TAB下找到系统自动为您创建的新服务,点击容器管理->增加容器。云服务器选择第1步中准备好的张北机器,为新服务扩容,此时服务会自动进行部署。
注意事项:
因为主机和容器都变化了,服务如果依赖了数据库、REDIS等,新服务可能因连接不通导致启动失败,需要自己去进行相应的排查和配置,保证服务部署启动成功
使用新服务的域名,测试功能。如 mytest.ewszjk.m.jaeapp.com
不需要保留杭州域名的,请跳过次步骤。
回到张北迁移页面,点击“流量切换”按钮,切换成功后,任务状态为“已切流”。
操作后,访问原杭州域名,请求会转发到张北的新服务中。如遇访问异常等意外情况,点击“流量回滚”按钮进行回退操作,并及时向我们反馈。
注意事项:
切流前请先确保张北服务正常,以避免切流产生问题后又回滚;
切流后请先确认流量已经切到了张北,杭州服务同时继续维护,持续观察几天,没问题之后再对杭州服务进行下线或删除等操作。
建议不要频繁地操作切流和回滚,操作后不符合预期,请先按照下方的Q&A排查,仍然有问题的及时提EWS工单;
不需要保留原杭州域名的,这里可以直接确认完成,如下图所示:
确认功能正常,杭州域名(切流后)和张北新域名可以继续访问。之后可以点击“完成迁移”按钮,页面状态变为“迁移完成”。
此时整个服务的迁移完成,原杭州服务可以进行处理。
切流操作会设置DNS以及后台相关接入层配置,由于DNS缓存的原因,切流后,有可能存在少量客户不能正常访问原地址的情况。
具体原因如下:
DNS有多级缓存,每一级的缓存时间均不相同。比如本地浏览器、不同层级的DNS服务器、某些ISP(如**联通)等。通常情况下,切流之后10分钟左右DNS都会生效,但是不排除某些DNS服务器缓存时间比较长(比如某个海南联通的手机用户,ta在访问杭州域名时,使用的DNS仍是旧的,域名就会解析到杭州,如果此时杭州服务下线了,则会提示"找不到应用")。如果是电脑端访问有这个问题,可以通过清理本地的DNS缓存解决。
如果能够不保留原域名,最好还是直接使用新服务的zjk域名,将使用杭州域名的地方都改为新域名;如果保留原域名更方便,请知晓上述风险,自行评估是否切流。
A:原杭州的服务需要删除,如果需要保留原域名,进行了切流操作,最好保留一段时间之后再删除杭州服务。
如果操作了切流,杭州服务删除之后原来域名依然可以访问。
第5步中切流工作已经将原来的域名请求转发到张北的服务上。工作原理如下:
自己配置过CNAME:外部域名——>杭州EWS域名——>张北EWS域名
没有配置CNMAE:杭州EWS域名——>张北EWS域名
①访问杭州域名,检查张北服务的日志/访问日志中是否有对应的请求;
②终端上执行 nslookup 杭州域名,看输出中是否有
杭州域名 canonical name = 张北域名.
如果有,则说明杭州域名->张北域名的CNAME DNS配置已经生效。
A:DNS设置有一定的缓存延迟,5-10分钟,请先等待;仍然没有生效,请提EWS工单。
① 确认下杭州服务的容器,运行中的容器数量是否>0
② 请先不要操作切流或者回滚,等待5-10分钟再尝试。仍然有问题,请提EWS工单
注:流量回滚之后,访问杭州域名,正常情况下会访问到杭州服务。DNS的解析有5-10min的TTL,即可能会有延迟,这种情况下CNAME没有及时清理,dns依然cname到张北域名,但是EWS接入层的解析已回滚,所以找不到杭州域名(最初始的原域名)对应的张北容器,页面提示“找不到应用,请尝试重新部署”,所以这种情况需要等待回滚DNS生效
A:使用websocket域名的需求较少,所以上述步骤没有进行保留。如果需要,麻烦提EWS工单
① 检查下是否是张北的EWS服务,访问的还是杭州的RDS,如果是,
张北ECS访问杭州RDS是很慢的,比原来从杭州ECS访问要慢10-20倍,数据库响应慢导致服务运行异常,那么解决方案是先迁移RDS,再修改张北EWS服务中的数据库连接,最后再切流
② 检查应用日志,如/acs/log,看是否是应用问题。
java类应用,请检查容器规格和服务-配置管理-jvm相关参数,看是否是内存不足导致java进程被kill。参考:
dmesg |grep java egrep -i -r 'killed process' /var/log