本主题介绍了如何将当前在 Linux 服务器云 (Linux Server Cloud, LSC) 上运行的虚拟服务、池、运行状况监控器和其他系统克隆到 GCP 云。

NSX Advanced Load Balancer 组件或子系统迁移到 GCP 云。

前提条件

  1. 设置新的 GCP 控制器。(可以将更新修补到任何未来版本)。

  2. 为 LSC 云集群禁用 cloud_reconcile,以避免克隆的虚拟服务因 NSX Advanced Load Balancer 云连接器运行的协调而发生中断。

过程

  1. 迁移到 LSC 云。
    1. 使用 GCP 的 NSX Advanced Load Balancer Controller 映像在 GCP 中创建新版本的控制器集群。
    2. 创建当前位于旧集群中的虚拟服务、池和其他对象。这两个集群将运行具有同一虚拟 IP (VIP) 的相同虚拟服务。

      来自客户端的流量仅流向 LSC 中旧集群的服务引擎。这是因为 LSC 中路由的优先级高于 LSC 中集群的优先级。

    3. 禁用 LSC 的虚拟服务,并在 GCP 云中测试虚拟服务。确保它继续处理来自 GCP 云服务引擎的流量。
    4. 验证后,删除旧集群。迁移工作流如下图所示:

      <插入图像>

  2. 从 LSC 启动迁移。
    1. 从 GCP 的 NSX Advanced Load Balancer Controller 映像创建新控制器。将在此控制器上创建新的 GCP 云。有关更多详细信息,请参阅 GCP 完全访问部署
    2. 对运行 LSC 的集群执行以下步骤。
    3. 导出集群配置。
      • 登录到 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
    4. 禁用旧集群中 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) 复制到新控制器。

  3. 配置 GCP 云:对将创建新 GCP 云的新集群执行以下步骤。
    1. 使用所需的配置创建 GCP 云。
    2. 为此云配置 SE 组。
      • 配置 SE 的大小(类型或 CPU、内存配置)和 HA 模式。

      • 保留 SE 组的计数和名称,就像在 LSC 中一样。

    3. 如果所导出配置的版本低于所需版本,请使用如下所示的命令更新配置:
      $ 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
    4. 将更新后的配置文件复制到将执行脚本的计算机,以将虚拟服务和从属对象从旧控制器上的 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

  4. 克隆虚拟服务:在 Linux 计算机上执行以下步骤。
    1. 安装以下 pip 要求以运行克隆脚本。
      $ sudo pip install networkx==2.2  avisdk==18.2.6  eventlet==0.25.1  ipaddress==1.0.22  urllib3==1.25.3
    2. 克隆 github.com/avinetworks/devops 存储库。
       git clone http://github.com/avinetworks/devops  cd devops/gcp/scripts
    3. 运行脚本以传递新的更新配置文件、新的控制器详细信息、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
      
      注:

      为所有云运行脚本。

结果

NSX Advanced Load Balancer 对象将迁移到 GCP 云。