执行迁移

如需开始迁移虚拟机,您需要使用能够执行以下操作的命令:生成目标容器工件,并使用您在安装 Migrate to Containers 中创建的处理集群提取这些工件。

本主题介绍如何执行迁移以实现下列目的:

  • 将虚拟机中的工作负载工件提取到容器映像和数据卷(适用于有状态工作负载)。
  • 将虚拟机的容器映像复制到容器注册表中。
  • 生成可用于生产部署的迁移部署工件。

完成此步骤后,您将能够执行以下操作:

  • 在处理集群上测试映像和数据卷(适用于有状态工作负载)。

    虽然您尚未将映像部署到单独的集群,但映像是可运行且可测试的。迁移完成后,映像并未与来源虚拟机关联。

  • 将映像和数据卷(适用于有状态工作负载)部署到其他集群。

准备工作

为确保迁移成功,您应首先完成以下操作:

执行迁移并生成工件

在处理虚拟机以进行迁移的过程中,使用 migctl migration generate-artifacts 命令或 Google Cloud 控制台生成目标容器工件。

migctl

  1. 执行迁移:

    migctl migration generate-artifacts my-migration
  2. 获取迁移状态:

    migctl migration status my-migration

控制台

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

    前往 Migrate to Containers 页面

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

  3. 在所需的迁移对应的行中,选择后续步骤下拉列表中的生成工件

  4. 通过以下方式查看迁移状态:

    • 查看迁移对应的行的状态列。

    • 点击迁移名称。系统会打开迁移详情标签页。点击监控标签页查看详细状态,或点击事件标签页以查看迁移事件。

  5. 当迁移状态已生成工件时,您可以继续执行下一步。

CRD

Linux、Windows 和 Tomcat

  1. 在创建迁移时,使用在 Migration yaml 中指定的名称获取 AppXGenerateArtifactsFlow 的名称:

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system my-migration  -o jsonpath={.status.migrationPlanRef.name}

  2. 创建 AppXGenerateArtifactsTask my-generate.yaml 文件以定义生成工件任务。

    在此文件中,migration 指定创建迁移时的迁移名称,flow 表示您在上一步中获得的迁移的 AppxGenerateArtifactsFlow

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: AppXGenerateArtifactsTask
    metadata:
     name: my-migration-task
     namespace: v2k-system
    spec:
     migration:
       name:  my-migration
     flow:
       name:  appx-generateartifactsflow-my-migration
  3. 应用此文件:

    kubectl apply -f my-generate.yaml

在为工作负载生成工件时,Migrate to Containers 会写入工件,然后将其上传到 Cloud Storage 存储桶。工件目录文件包含:

  • Dockerfile - 用于为迁移后的虚拟机构建映像的 Dockerfile。
  • deployment_spec.yaml - 用于配置工作负载的 YAML 文件。
  • secrets.yaml - 包含敏感数据的 Secret YAML 文件也可能会添加到工件目录中。

    您可以将 kubectl apply 与此文件搭配使用,将工作负载部署到集群(例如生产集群或测试集群)。

  • 从来源中提取并供 Dockerfile 使用的目录和文件。

下载生成的工件

如需下载此嵌套目录中生成的容器工件,请运行以下命令:

migctl migration get-artifacts my-migration

根据插件和迁移计划,生成的工件包含一个或多个用于构建容器映像的 dockerfile,以及一个或多个 Kubernetes 部署规范。

此外,Migrate to Containers 会生成 Skaffold 配置,您只需一步即可快速构建和部署所有生成的映像。

后续步骤