添加迁移来源

在开始迁移之前,请先创建一个迁移来源,该来源代表您要从中进行迁移的来源平台。此来源会添加到您的迁移计划中。

本主题介绍如何为每个受支持的来源平台创建来源。

准备工作

来源命名要求

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

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

添加迁移来源

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

Google Cloud 上的 migctl

Compute Engine

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

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

    migctl source create ce SOURCE_NAME --project PROJECT_ID --json-key=COMPUTE_KEY.json

    请替换以下内容:

    • SOURCE_NAME:您要用于来源的名称
    • PROJECT_ID:您的项目 ID
    • COMPUTE_KEY.json:用于 Compute Engine 服务的服务账号 JSON 密钥的路径

VMware

  1. 按照指定 Migrate to Virtual Machines 目标项目服务账号中的说明,创建服务账号并下载 Compute Engine JSON 密钥文件。

  2. 按照指定 Migrate to Virtual Machines 服务账号中的说明,创建服务账号并下载 Migrate to Virtual Machines JSON 密钥文件。

  3. 如需创建迁移来源,请运行以下命令:

    migctl source create m2vm SOURCE_NAME --project PROJECT_ID --json-key M2VM_KEY.json --target-json-key COMPUTE_KEY.json --location LOCATION --m2vm-source M2VM_SOURCE
    

    请替换以下内容:

    • SOURCE_NAME:您要用于迁移来源的名称
    • PROJECT_ID:Migrate to Virtual Machines 项目的 ID
    • M2VM_KEY.json:用于 Migrate to Virtual Machines 服务的服务账号 JSON 密钥的路径
    • COMPUTE_KEY.json:用于 Compute Engine 服务的服务账号 JSON 密钥的路径
    • LOCATION:Migrate to Virtual Machines 服务位置。例如 us-central1
    • M2VM_SOURCE:Migrate to Virtual Machines 来源名称

Google Distributed Cloud Virtual for Bare Metal 上的 migctl

VMware

migctl source create local-vmware local-vmware-src --vc 'VC' --username 'USERNAME' --dc VM_DC

请替换以下内容:

  • VC:vCenter DNS 名称或 vCenter IP 地址。例如 1.2.3.4
  • USERNAME:有权访问 vCenter 的用户。例如 admin。系统会提示您输入用户的密码。
  • VM_DClocal-vmware 来源的 vSphere 数据中心。在多 DC 环境中,此项是必需的。

CRD

Compute Engine

  1. 按照使用 Compute Engine 创建服务账号中的说明,创建服务账号并下载 JSON 密钥文件。

  2. 使用以下命令创建 Secret:

    kubectl create secret generic COMPUTE_SECRET -n v2k-system --from-file=cloud-platform-service-account-key=COMPUTE_KEY.json

    请替换以下内容:

    • COMPUTE_SECRET:您要用于 Compute Engine Secret 的名称
    • COMPUTE_KEY.json:Compute Engine JSON 文件的名称
  3. 如需创建迁移来源,请创建一个名为 my-source-provider.yamlSourceProvider 文件:

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: SourceProvider
    metadata:
      name: SOURCE_NAME
    spec:
      gce:
        project: PROJECT_ID
        serviceAccount:
          secretRef:
              name: COMPUTE_SECRET
              namespace: v2k-system
    

    请替换以下内容:

    • SOURCE_NAME:您要用于来源的名称
    • PROJECT_ID:您的项目 ID
    • COMPUTE_SECRET:Secret 的名称
  4. 应用此文件:

      kubectl apply -f my-source-provider.yaml

VMware

  1. 按照使用 Compute Engine 创建服务账号中的说明,创建服务账号并下载 Compute Engine JSON 密钥文件。

  2. 使用以下命令创建 Compute Engine Secret:

    kubectl create secret generic COMPUTE_SECRET -n v2k-system --from-file=cloud-platform-service-account-key=COMPUTE_KEY.json

    请替换以下内容:

    • COMPUTE_SECRET:您要用于 Compute Engine Secret 的名称
    • COMPUTE_KEY.json:Compute Engine JSON 文件的名称
  3. 按照指定 Migrate to Virtual Machines 服务账号中的说明,创建服务账号并下载 Migrate to Virtual Machines JSON 密钥文件。

  4. 使用以下命令创建 Migrate to Virtual Machines Secret:

    kubectl create secret generic M2VM_SECRET -n v2k-system --from-file=cloud-platform-service-account-key=M2VM_KEY.json

    请替换以下内容:

    • M2VM_SECRET:您要用于 Migrate to Virtual Machines Secret 的名称
    • M2VM_KEY.json:Migrate to Virtual Machines JSON 文件的名称
  5. 如需创建迁移来源,请创建一个名为 my-source-provider.yamlSourceProvider 文件:

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: SourceProvider
    metadata:
      name: SOURCE_NAME
    spec:
      gce:
        project: PROJECT_ID
        serviceAccount:
          secretRef:
            name: COMPUTE_SECRET
            namespace: v2k-system
      remoteSourceSpec:
        migrateForCEService:
          location: LOCATION
          project: PROJECT_ID
          serviceAccount:
            secretRef:
              name: M2VM_SECRET
              namespace: v2k-system
          sourceName: M2VM_SOURCE
    

    请替换以下内容:

    • SOURCE_NAME:您要用于来源的名称
    • PROJECT_ID:您的项目 ID
    • COMPUTE_SECRET:Compute Engine Secret 的名称
    • LOCATION:您的项目位置
    • M2VM_SECRET:Migrate to Virtual Machines Secret 的名称
    • M2VM_SOURCE:Migrate to Virtual Machines 来源名称
  6. 应用此文件:

  kubectl apply -f my-source-provider.yaml

控制台

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

    前往 Migrate to Containers 页面

  2. 如果您使用的是远程 GKE Enterprise 集群,这意味着您使用的是 Google Distributed Cloud Virtual for Bare Metal,并且尚未登录集群,请立即登录。

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

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

  4. 点击添加来源

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

  6. 点击下一步

  7. 指定来源的名称。

  8. 选择来源类型

  9. 点击下一步

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

    1. 对于 Compute Engine

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

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

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

  12. 选择添加来源

添加来源后,您的集群应该会获得一个新的 SourceProvider。

kubectl get SourceProvider

查看来源列表

您可以使用 migctl source list 命令或 Google Cloud 控制台查看迁移来源列表,以确认您已成功使用迁移来源配置了环境。

migctl

migctl source list

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

migctl source status SOURCE_NAME

控制台

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

    前往 Migrate to Containers 页面

  2. 如需显示包含可用来源的表,请点击管理来源

添加 Migrate to Virtual Machines 作为迁移来源

准备 Migrate to Virtual Machines 作为迁移来源

如需使用 Migrate to Virtual Machines 5.0 作为迁移来源,您必须先启用 Migrate to Virtual Machines 服务并安装连接器,具体步骤如下:

  1. 启用 Migrate to Virtual Machines 服务
  2. 安装 Migrate Connector

指定 Migrate to Virtual Machines 服务账号

如需使用 Migrate to Virtual Machines 作为迁移来源,请创建一个服务账号,并在服务项目上绑定 vmmigration.admin 角色:

  1. 创建 m2c-m2vm-src-service 服务账号:

    gcloud iam service-accounts create m2c-m2vm-src-service  --project=PROJECT_ID
    

    PROJECT_ID 替换为您的项目 ID。

  2. vmmigration.admin 角色授予服务账号:

    gcloud projects add-iam-policy-binding PROJECT_ID  \
    --member="serviceAccount:m2c-m2vm-src-service@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/vmmigration.admin"
    

    PROJECT_ID 替换为您的项目 ID。

  3. 下载服务账号的密钥文件:

    gcloud iam service-accounts keys create m2c-m2vm-src-service.json \
    --iam-account=m2c-m2vm-src-service@PROJECT_ID.iam.gserviceaccount.com \
    --project=PROJECT_ID
    

    PROJECT_ID 替换为您的项目 ID。

指定 Migrate to Virtual Machines 目标项目服务账号

如需使用 Migrate to Virtual Machines 作为迁移来源,请创建一个服务账号,并在目标项目上绑定 compute.instanceAdmin.v1compute.storageAdmin 角色:

  1. 创建 m2c-m2vm-src-gce 服务账号:

    gcloud iam service-accounts create m2c-m2vm-src-gce  --project=PROJECT_ID
    

    PROJECT_ID 替换为您的项目 ID。

  2. compute.instanceAdmin.v1 角色授予服务账号:

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID  \
    --member="serviceAccount:m2c-m2vm-src-gce@PROJECT_ID.iam.gserviceaccount.com
    --role="roles/compute.instanceAdmin.v1"
    

    PROJECT_ID 替换为您的项目 ID。

  3. compute.storageAdmin 角色授予服务账号:

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID  \
    --member="serviceAccount:m2c-m2vm-src-gce@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/compute.storageAdmin"
    

    PROJECT_ID 替换为您的项目 ID。

  4. 下载服务账号的密钥文件:

    gcloud iam service-accounts keys create m2c-m2vm-src-gce.json \
    --iam-account=m2c-m2vm-src-gce@PROJECT_ID.iam.gserviceaccount.com \
    --project=PROJECT_ID
    

    PROJECT_ID 替换为您的项目 ID。

在将服务账号密钥下载为 JSON 文件后,您可以创建用于迁移 Migrate to Virtual Machines 工作负载的来源。

后续步骤