管理平台迁移

可以将管理平台或者其他节点迁移到别的服务器。

使用辅助功能迁移

从v0.3.5以后,可以在老的管理平台上使用迁移辅助功能将配置迁移到新的平台,在”系统设置” – “高级设置” – “迁移”里可以找到此功能。

手动迁移

原理

整个平台大致架构为:

  1. 数据库
  2. /|\
  3. |
  4. 管理平台 --> API节点 <-- 边缘节点
  5. /|\
  6. |
  7. |
  8. 其他节点

可以看出:

  1. 修改数据库时会影响API节点,所以需要同时修改API节点的数据库配置(见迁移步骤);
  2. API节点是处于所有节点的中心,修改了API节点的地址后,需要修改所有管理平台、边缘节点和其他节点的配置,以便于其他节点能连接到新的API节点地址。
  3. 如果只需要重新部署管理平台、边缘节点或者其他节点,则不需要修改API节点配置;

迁移步骤

  1. 如果要迁移管理平台,需要将老的管理平台安装目录 edge-admin/ 目录整体拷贝到新的服务器(尤其要注意其下的 configs/ 目录;
    1. 如果API节点是和管理平台一起安装的,那么迁移后,API节点的地址也会自动修改为新的服务器的IP地址,此时需要修改 edge-admin 目录下面的 configs/api.yaml 中的 endpoints 中的API地址为新的API地址;
    2. 如果API节点是和管理平台一起安装的,在修改api.yaml配置后,可以使用 EdgeAdmin安装目录/bin/edge-admin start 启动管理平台,并登录,然后在”系统设置” – “高级设置” – “API节点”中修改API节点的访问地址为新的地址;
    3. 如果管理平台无法登录,并提示API节点无法连接,请检查 configs/api.yaml 配置文件中的API地址是否正确,如有错误请修改成正确的;
  2. 如果要切换数据库,请将数据库复制到别的数据库,复制后,修改API节点中的 configs/db.yaml 中的 dbs.prod.dsn 参数,格式为 用户名:密码@tcp(主机地址:端口)/数据库名?charset=字符集&timeout=超时时间,通常只需要修改其中的用户名、密码、主机地址参数;修改后,重启API节点生效;
  3. 如果要迁移API节点,请将API节点安装目录 edge-api/ 拷贝到新的服务器上(尤其要注意其下的 configs/ 目录),并启动;需要确保 configs/db.yaml 中的数据库连接信息没有错误,请参考步骤1;
    1. 如果API节点地址已经修改,此时管理界面因无法连接到API节点而不能登录,可以修改管理平台下的 configs/api.yaml 中的 rpc.endpoints 中的地址为新的API节点地址,然后重启管理平台,重新登录管理平台后,在 “系统设置 – 高级设置 – API节点” 中修改GRPC访问地址为新的API节点地址;
    2. 修改所有边缘节点的 configs/api.yaml 中地址为新的API节点地址,并重启边缘节点让配置生效。
    3. 如果API节点无法连接,请先参考文档修复API节点错误。

严重注意:虽然名字叫api.yaml文件名的文件出现在多处,但是各处的内容不能通用,不能使用API节点配置下的相关内容代替,如果使用了错误的配置,会导致管理系统无法正常登录;如果你不理解api.yaml内容如何修改,请咨询专家指导。

迁移后确认

在迁移后,请确认:

  • 管理员可以正常登录管理平台;
  • 所有边缘节点在线;
  • 节点运行日志无异常。

数据库导出、导入

请参考 MySQL导出和恢复 一节内容。

常见问题

迁移过程中影响用户访问吗?

在管理平台和API节点过程迁移过程中,不影响边缘节点的正常运行,用户仍然可以正常访问到边缘节点上的网站。只是无法记录访问日志和统计数据。

管理平台无法进入怎么办?

如果是提示API错误的,请参考迁移步骤中的第2条。

其次要检查有没有启动管理平台节点、有没有在防火墙或者其他安全策略里放行对应端口。

再如果管理平台因为先前在Web服务绑定了固定的IP地址,而迁移后无法访问,可以手动修改 edge-admin/configs/server.yaml 文件,其中 httphttps 分别表示管理平台HTTP和HTTPS的访问地址;

另外如果因为安全设置,导致自己无法登录管理平台的,可以进入MySQL数据库,在 edgeSysSettings 表中删除 adminSecurityConfig 相关的记录:

  1. DELETE FROM edgeSysSettings WHERE code='adminSecurityConfig';

然后重启管理平台后进入重新设置安全设置。