添加迁移来源

在开始迁移之前,您需要创建一个迁移来源,该迁移来源代表您要从中迁移应用的来源平台。此操作包含在您的迁移计划中。本主题介绍如何为每个受支持的来源平台创建来源。

您可以将容器化应用部署到以下位置:

来源命名要求

将迁移来源添加到 Migrate to Containers 中时,您需要为其分配一个名称。名称必须符合以下要求:

  • 最多包含 63 个字符。
  • 只能包含小写字母数字字符或“-”(连字符)。
  • 以字母数字字符开头。
  • 以字母数字字符结尾。

添加迁移来源

通过运行 migctl source create 命令或使用 Google Cloud Console 来定义要迁移的迁移源。此过程添加了从您指定的来源(VMware、AWS、Azure、Compute Engine 或本地)迁移所需的详细信息。

Google Cloud 上的 migctl

Compute Engine

  1. 按照配置服务帐号中的说明,创建一个服务帐号,以使用 Compute Enginee 作为迁移源,并下载 JSON 密钥文件。

  2. 使用该服务帐号创建来源:

    migctl source create ce my-ce-src --project my-project --json-key=m2c-ce-src.json

    其中,m2c-ce-src.json 指定服务帐号。

VMware

migctl source create vmware my-vmware-src --manager-address 1.2.3.4 --cloud-extension my-cloud-extension

指定以下内容:

系统会提示您输入 Migrate to VMs 管理服务器的密码。

AWS

migctl source create aws my-aws-src --manager-address 1.2.3.4 --cloud-details cloud-details --cloud-extension cloud-extension

指定以下内容:

系统会提示您输入 Migrate to VMs 管理服务器的密码。

Azure

migctl source create azure my-azure-src --manager-address 1.2.3.4 --cloud-details cloud-details --cloud-extension cloud-extension

指定以下内容:

系统会提示您输入 Migrate to VMs 管理服务器的密码。

VMware 上的 migctl

VMware

migctl source create local-vmware local-vmware-src --vc '1.2.3.4' --username 'admin'

其中:

  • --vc 指定 vCenter DNS 名称或 vCenter IP 地址。
  • --username 指定有权访问 vCenter 的用户。系统会提示您输入用户的密码。

AWS 上的 migctl

AWS

  1. 创建来源:

    migctl source create local-aws local-aws-src --region my-region --access-key-id my-access-key-id

    或者:

    migctl source create local-aws local-aws-src --region my-region --credentials-file-path=credentials.csv

    其中:

    • --region 指定集群的 Google Cloud 区域。
    • --access-key-id 指定有权访问 AWS 的用户的 AWS 访问密钥 ID。系统会提示您输入访问密钥 ID 的 Secret。如需了解详情,请参阅管理 IAM 用户的访问密钥
    • --credentials-file-path 指定从 AWS 控制台下载的 CSV 文件的路径(该文件包含凭据)。如需详细了解如何创建 CSV 文件,请参阅配置 AWS IAM 组和实例角色

CRD

  1. 创建 SourceProvider my-source-provider.yaml 文件以创建迁移来源:

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: SourceProvider
    metadata:
      name: my-ce-src
    spec:
      gce:
        project: my-project
    
  2. 如果您将 Compute Engine 用作迁移来源,请执行以下操作:

    1. 按照配置服务帐号中的说明,创建服务帐号并下载 JSON 密钥文件

    2. 使用以下命令创建名为 my-secret 的 Secret:

      kubectl create secret generic my-secret -n v2k-system --from-file=cloud-platform-service-account-key=m2c-ce-src.json
    3. 在 SourceProvider 中添加 Secret:

      apiVersion: anthos-migrate.cloud.google.com/v1beta2
      kind: SourceProvider
      metadata:
       name: my-ce-src
      spec:
       gce:
         project: my-project
         serviceAccount:
           secretRef:
             name: my-secret
             namespace: v2k-system
  3. 如果您要对 AWS、Azure 或 VMware 执行迁移,请修改 SourceProvider 以指定以下内容:

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: SourceProvider
    metadata:
      name: migration-source-name
    spec:
      migrateForCE:
        management:
          address: manager-ip-address
          cloudDetails:
            platform: aws | azure | vmware
            name: Name of the source, as configured in Migrate to VMs
          cloudExtension: ID or name of the Migrate to Containers extension
          password:
            <-- Password for your Migrate to VMs management server. --->
            secretRef:
              name: secret-name
              namespace: v2k-system
  4. 如果要在 Anthos clusters on VMware 上执行迁移,您必须为 vCenter 凭据创建密钥,格式如下:

    kubectl create secret generic secret-vcenter -n v2k-system --from-literal='vc-password=pass1'

    然后纳入 secretRef

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: SourceProvider
    metadata:
      name: my-ce-src
    spec:
      localVmware:
        address: 1.2.3.4
        username: admin
        password:
          secretRef:
            name: secret-vcenter
            namespace: v2k-system
  5. 如果要在 Anthos clusters on AWS 上执行迁移,您必须为 AWS 凭据创建 Secret,格式如下:

    kubectl create secret generic secret-aws -n v2k-system --from-literal='AwsAccessKeyId=admin' --from-literal='AWS_SECRET_ACCESS_KEY=pass1'

    然后纳入 secretRef

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: SourceProvider
    metadata:
      name: my-ce-src
    spec:
      localAws:
        # Google Cloud region of cluster.
        region: my-region
        accessKeyId: admin
        secretAccessKey:
          secretRef:
            name: secret-aws
            namespace: v2k-system
  6. 应用此文件:

    kubectl apply -f my-source-provider.yaml

控制台

  1. 打开 Google Cloud 控制台中的 Migrate to Containers 页面。

    前往 Migrate to Containers 页面

  2. 如果您使用的是远程 Anthos 集群,这意味着您使用的是 Anthos clusters on VMware 或 Anthos clusters on AWS 并且尚未登录集群,请立即登录。

    如需详细了解如何访问远程集群,请参阅从 Google Cloud 控制台登录集群

  3. 点击来源标签页以显示包含可用来源的表。

  4. 点击添加来源

  5. 从下拉列表中选择已在其中安装 Migrate to Containers 组件的集群。

  6. 点击下一步

  7. 指定来源的名称,例如 my-ce-source1

  8. 选择来源类型

  9. 点击下一步

  10. 根据您选择的来源类型配置来源:

    1. 对于 Compute Engine

      1. 选择包含要迁移的虚拟机的项目。

      2. 选择服务帐号。您可以执行以下任一操作:

        1. 创建新的服务帐号。系统会提示您输入新服务帐号的名称。
        2. 如果您已按照创建将 Compute Engine 用作迁移来源的服务帐号中的说明创建了一个服务帐号,请使用该服务帐号。选择此选项后,系统会提示您输入与该服务帐号关联的 JSON 密钥文件的内容。
    2. 对于 VMwareAWSAzure

      1. 指定 Migrate to VMs Manager 的 IP 地址或网址。

      2. 指定 Migrate to VMs Manager 的密码。

      3. 指定 Migrate to VMs Extension 的名称。

      4. (仅限 AWSAzure)指定 Migrate to VMs 中配置的 Cloud Details 名称。

    3. 对于本地 VMware

      1. 指定 vCenter DNS 名称或 vCenter IP 地址。

      2. 指定有权访问 vCenter 的 vCenter 用户的名称和密码。

    4. 对于本地 AWS

      1. 指定集群的区域。

      2. 使用以下任一方式指定 AWS 凭据:

        • 有权访问 AWS 的用户的访问密钥 ID 和 Secret。
        • 从 AWS 控制台下载的凭据 CSV 文件,其中包含凭据。如需详细了解如何创建 CSV 文件,请参阅配置 AWS IAM 组和实例角色
  11. 点击下一步

  12. 选择添加来源

添加来源后,您的集群应该会获得一个以来源名称(此处为 my-vmware-src)命名的新 SourceProvider:

kubectl get SourceProvider
NAME                 STATE
my-vmware-src        READY

查看来源列表

您可以使用 migctl source list 命令查看迁移来源列表,并使用该命令的输出来确认您已成功为自己的环境配置了迁移来源。

migctl

migctl source list
NAME            TYPE    STATE   PROJECT     CLOUD-DETAILS   CLOUD-EXTENSION     VCENTER/MANAGER-ADDRESS
my-vmware-src   VMware  READY my-project  VMware        my-cloud-extension  1.2.3.4

其中,VCENTER/MANAGER-ADDRESS 指定以下内容:

  • 对于 Cloud 迁移,您的 Migrate to VMs 管理服务器的地址。
  • 对于本地迁移,vCenter DNS 名称或 vCenter IP 地址。

如果来源未处于 READY 状态,您可以使用以下命令获取有关来源的更多信息,包括所有错误消息:

migctl source status my-vmware-src

控制台

  1. 打开 Google Cloud 控制台中的 Migrate to Containers 页面。

    前往 Migrate to Containers 页面

  2. 点击来源标签页以显示包含可用来源的表。

    VCENTER/MANAGER-ADDRESS 表中,指定 Migrate to VMs 管理服务器的地址。

删除来源

在验证迁移后的工作负载并对其进行测试以确保它正常运行后,您应该删除该迁移。删除迁移将释放该迁移使用的所有资源。如果您想要更改来源然后重新创建它,也可以删除来源。

migctl source delete my-tomcat-src

后续步骤

创建迁移