本主题介绍了如何将当前在 Linux 服务器云 (Linux Server Cloud, LSC) 上运行的虚拟服务、池、运行状况监控器和其他系统克隆到 GCP 云。
将 NSX Advanced Load Balancer 组件或子系统迁移到 GCP 云。
前提条件
设置新的 GCP 控制器。(可以将更新修补到任何未来版本)。
为 LSC 云集群禁用 cloud_reconcile,以避免克隆的虚拟服务因 NSX Advanced Load Balancer 云连接器运行的协调而发生中断。
过程
- 迁移到 LSC 云。
- 使用 GCP 的 NSX Advanced Load Balancer Controller 映像在 GCP 中创建新版本的控制器集群。
- 创建当前位于旧集群中的虚拟服务、池和其他对象。这两个集群将运行具有同一虚拟 IP (VIP) 的相同虚拟服务。
来自客户端的流量仅流向 LSC 中旧集群的服务引擎。这是因为 LSC 中路由的优先级高于 LSC 中集群的优先级。
- 禁用 LSC 的虚拟服务,并在 GCP 云中测试虚拟服务。确保它继续处理来自 GCP 云服务引擎的流量。
- 验证后,删除旧集群。迁移工作流如下图所示:
<插入图像>
- 从 LSC 启动迁移。
- 从 GCP 的 NSX Advanced Load Balancer Controller 映像创建新控制器。将在此控制器上创建新的 GCP 云。有关更多详细信息,请参阅 GCP 完全访问部署。
- 对运行 LSC 的集群执行以下步骤。
- 导出集群配置。
登录到 NSX Advanced Load Balancer Shell。
使用以下命令导出完整的系统配置。
[admin:10-152-134-38]: > export configuration full_system recurse file old-config.json Please enter the passphrase to encrypt configuration: Retype passphrase: Downloaded the attachment to old-config.json Completed writing the export configuration to old-config.json
- 禁用旧集群中 VIP 与 LSC 云的协调。这是防止 LSC 云删除由新 GCP 云创建的 GCP 路由所必需的。
登录到 NSX Advanced Load Balancer Shell。
在控制器属性中禁用协调,如下所示:
[admin:10-152-134-38]: > configure controller properties [admin:10-152-134-38]: controllerproperties> no cloud_reconcile [admin:10-152-134-38]: controllerproperties> save
将此导出的配置文件 (old-config.json) 复制到新控制器。
- 配置 GCP 云:对将创建新 GCP 云的新集群执行以下步骤。
- 使用所需的配置创建 GCP 云。
- 为此云配置 SE 组。
配置 SE 的大小(类型或 CPU、内存配置)和 HA 模式。
保留 SE 组的计数和名称,就像在 LSC 中一样。
- 如果所导出配置的版本低于所需版本,请使用如下所示的命令更新配置:
$ export DJANGO_SETTINGS_MODULE=portal.settings_full $ export PYTHONPATH=/opt/avi/python/lib:/opt/avi/python/bin/portal $ python /opt/avi/python/bin/upgrade/config_migrator.py --config-file old-config.json --output-file new-config.json
- 将更新后的配置文件复制到将执行脚本的计算机,以将虚拟服务和从属对象从旧控制器上的 LSC 克隆到新控制器上的 GCP 云。如果存在任何不能向后兼容的配置,请修复错误并继续操作。需要更改配置的一些问题示例如下:
错误
解决方案
{“错误”:“公有云上不允许虚拟服务通告。”("error": "Virtual Service advertisement is not allowed on public clouds.”)}
对于所有虚拟服务,将 enable_rhi 设置为
False
。{“错误”:“池中设置了禁用端口转换。运行状况监控器系统 TCP 必须指定一个监控器端口。”("error": "Disable port translation is set in pool. Health monitor System-TCP must specify a monitor port.")}
为启用了 use_service_port 字段的所有运行状况监控器配置 monitor_port。
{“错误”:“无法为 L4 服务池启用请求队列”("error": "Cannot enable Request Queuing for L4 Service pool")}
对于所有 L4 服务池,将 request_queue_enabled 设置为
False
。
- 克隆虚拟服务:在 Linux 计算机上执行以下步骤。
- 安装以下 pip 要求以运行克隆脚本。
$ sudo pip install networkx==2.2 avisdk==18.2.6 eventlet==0.25.1 ipaddress==1.0.22 urllib3==1.25.3
- 克隆 github.com/avinetworks/devops 存储库。
git clone http://github.com/avinetworks/devops cd devops/gcp/scripts
- 运行脚本以传递新的更新配置文件、新的控制器详细信息、LSC 名称和 GCP 云名称。
$ python lsc_to_gcp_cloud_migration.py --from-cloud old-lsc-cloud --to-cloud new-gcp-cloud --controller 10.152.134.15 \ --password avi123$% --config-file new-config.json
注:为所有云运行脚本。
- 安装以下 pip 要求以运行克隆脚本。
结果
NSX Advanced Load Balancer 对象将迁移到 GCP 云。