执行迁移

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

本主题介绍如何执行迁移来:

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

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

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

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

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

准备工作

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

执行迁移并生成工件

在处理虚拟机的过程中,使用 migctl migration generate-artifacts 命令或 GCP Console 生成目标容器工件。

migctl

migctl migration generate-artifacts my-migration

控制台

  1. 在 Cloud Console 中打开 Migrate for Anthos 页面。

    转到 Migrate for Anthos 页面

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

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

    • 点击迁移名称。迁移详情面板随即会打开,以显示迁移状态和其他信息。

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

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

CRD

  1. 创建 GenerateArtifactsTask my-generate.yaml 文件来定义迁移。

    在此文件中,将 migrationname 字段的值设置为您在创建迁移时在 Migration yaml 中指定的名称:

    apiVersion: anthos-migrate.cloud.google.com/v1beta2
    kind: GenerateArtifactsTask
    metadata:
     name: my-migration-task
     namespace: v2k-system
    spec:
     migration:
       name:  my-migration
  2. 应用此文件:

    kubectl apply -f my-generate.yaml

生成工件时,Migrate for Anthos 会:

  • 将表示虚拟机的文件和目录复制到 Container Registry,作为映像。

    Migrate for Anthos 会创建两个映像:一个是要部署到其他集群的可运行映像;一个是将来可用于更新容器映像的不可运行映像层。如需了解如何识别这些映像,请参阅自定义迁移计划

  • 生成配置 YAML 文件,可用于将提取的工作负载部署到另一个 GKE 集群。这些文件会作为中间位置复制到 Cloud Storage 存储分区中。以后您可以下载这些文件。

如需查看 migctl 和 CRD 迁移的迁移进度,您可以轮询状态:

migctl

migctl migration status my-migration

NAME            CURRENT-OPERATION       PROGRESS        STEP            STATUS  AGE
my-migration    GenerateArtifacts       [1/1]           ExtractImage    Running 12m2s

迁移完成后,当您使用 migctl migration status 请求状态时,应该会看到如下所示的消息。

migctl migration status my-migration

NAME            CURRENT-OPERATION       PROGRESS        STEP            STATUS    AGE
my-migration    GenerateArtifacts       [1/1]           ExtractImage    Completed 14m23s

您还可以添加 -v 标志以获取错误和警告信息。如需了解详情,请参阅监控迁移

控制台

  1. 在 Cloud Console 中打开 Migrate for Anthos 页面。

    转到 Migrate for Anthos 页面

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

    • 点击迁移名称。迁移详情面板随即会打开,以显示迁移状态和其他信息。

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

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

CRD

使用 kubectl 通过指定必填字段的 JSONPath 来获取执行信息和状态。

  1. 获取迁移操作:

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

    返回 GenerateArtifacts

  2. 获取迁移状态:

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

    如果状态显示操作已完成,您可以继续下一步。

后续步骤