检查已生成的部署文件

使用处理集群迁移工作负载后,下载在迁移过程中生成的 YAML 文件。

生成这些文件是为了(称为迁移工件)将迁移后的工作负载容器部署到其他集群,例如测试集群或生产集群。

本主题介绍了如何下载并检查已生成的文件,以供在其他集群中自行使用。

准备工作

关于生成的工件文件

迁移过程中生成的工件文件包括:

  • deployment_spec.yaml - 用于配置工作负载的 YAML 文件。

    您可以将 kubectl apply 与该文件配合使用,将工作负载部署到其他集群,例如生产集群或测试集群。

  • Dockerfile - 用于为迁移后的虚拟机构建映像的 Dockerfile。

  • blocklist.yaml - 根据迁移方案中的设置停用的容器服务列表。修改此文件以控制服务列表。请参阅自定义服务列表

  • migration.yaml - 迁移计划的副本。

    您可以使用此文件来验证迁移过程中执行的操作。

  • logs.yaml - 在来源虚拟机上检测到的日志文件的列表。迁移后的工作负载写入这些日志文件的数据将被转发到 Cloud Logging。修改此文件以控制日志写入。请参阅自定义写入 Cloud Logging 的日志数据

下面将详细介绍这些文件。

下载所有工件文件

migctl

迁移完成后,您应该会在请求状态时看到如下消息:

migctl migration status my-migration

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

迁移完成后,使用 migctl migration get-artifacts 下载所有生成的工件文件。

migctl migration get-artifacts my-migration

控制台

迁移完成后,您会在迁移的状态列中看到已生成工件。如需下载所有迁移工件,请执行以下操作:

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

    前往 Migrate to Containers 页面

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

  3. 点击所需迁移所在的行中的迁移名称。此时会打开虚拟机的迁移详细信息标签页。

  4. 选择工件标签页。

  5. 选择 Docker 文件、部署规范和其他工件以打开包含工件的 Cloud Storage 存储桶。

  6. 选择所有文件,然后选择下载

CRD

迁移完成后,下载所有迁移工件:

  1. 获取包含工件的 Cloud Storage 存储桶:

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

    此命令以如下形式返回存储桶名称:

    bucket-migration-artifacts
  2. 获取 Cloud Storage 迁移清单 YAML 文件:

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

    此命令以如下形式返回清单 YAML 文件名:

    bucket-migration-artifacts/v2k-system-my-migration/ID/manifest.yaml
  3. 前往 Google Cloud 控制台中的 Cloud Storage,并提取清单文件。下面显示的清单文件示例包含 artifacts 网址:

    artifacts:
     - https:/storage.cloud.google.com/bucket-name/v2k-system-my-migration/ID/deployment_spec.yaml
     - https:/storage.cloud.google.com/bucket-name/v2k-system-my-migration/ID/Dockerfile
     - https:/storage.cloud.google.com/bucket-name/v2k-system-my-migration/ID/migration.yaml
    imageUrl: gcr.io/velos-auto-1/matanvm:v1.0.0
    name: m1-84xqp
    namespace: v2k-system
    uid: daf762-d9-42-bfc-47b71255a
    version: "1.0"
  4. 在浏览器中打开 artifacts 网址以下载工件。

deployment_spec.yaml

您可以使用此 YAML 文件将工作负载部署到其他集群,例如测试集群或生产集群。如果未配置数据迁移,则将生成 Deployment 对象。配置数据迁移后,您需要生成有状态集对象。

Dockerfile

用于为迁移后的虚拟机构建映像的 Dockerfile。

如果您需要生成新的映像版本,请使用此文件。 例如,您可能希望安装一个软件包,然后再捕获一个新映像。如果您升级了 Migrate to Containers(例如修复了错误),并且希望使用新的 Migrate to Containers 运行时重新构建映像,那么重新构建映像也会是非常实用的做法。您可以从 Container Registry 中获取升级后的运行时。

您可以像修改任何其他 Dockerfile 一样修改此文件,以自定义您的映像。 如需了解相关提示,请参阅编写 Dockerfile 的最佳做法。 此外,还请参阅迁移后映像更新,了解如何修改 Dockerfile。

# Please refer to the documentation:
# https://cloud.google.com/migrate/containers/docs/dockerfile-reference

FROM gcr.io/my-project/v2k-run-embedded:v1.12.0

# Image containing data captured from the source VM
FROM gcr.io/my-project/my-vm-instance-1-non-runnable-base:v1.0.0 as source-content

COPY --from=migrate-for-anthos-runtime / /

ADD blocklist.yaml /.m4a/blocklist.yaml

ADD logs.yaml /code/config/logs/logsArtifact.yaml

# If you want to update parts of the image, add your commands here.
# For example:
# RUN apt-get update
# RUN apt-get install -y \
#       package1=version \
#       package2=version \
#       package3=version
# RUN yum update
# RUN wget http://github.com

# Migrate to Containers image includes entrypoint
ENTRYPOINT [ "/.v2k.go" ]

migration.yaml

此文件是您创建的迁移的副本。此文件用于验证 Migrate to Containers 使用的迁移详细信息是否与您在迁移计划中指定的内容相符。

请注意,您不应使用此文件来重新运行迁移。执行迁移后,您只能在删除迁移(使用 migctl migration deleteGoogle Cloud 控制台)后通过迁移计划再次运行它。

blocklist.yaml

此文件根据迁移计划中的设置列出了要停用的容器服务。如需详细了解如何使用此文件,请参阅自定义服务列表

后续步骤