检查已生成的部署文件
使用处理集群迁移工作负载后,下载在迁移过程中生成的 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
控制台
迁移完成后,您会在迁移的状态列中看到已生成工件。如需下载所有迁移工件,请执行以下操作:
打开 Google Cloud 控制台中的 Migrate to Containers 页面。
点击迁移标签页以显示包含可用迁移的表。
点击所需迁移所在的行中的迁移名称。此时会打开虚拟机的迁移详细信息标签页。
选择工件标签页。
选择 Docker 文件、部署规范和其他工件以打开包含工件的 Cloud Storage 存储桶。
选择所有文件,然后选择下载。
CRD
迁移完成后,下载所有迁移工件:
获取包含工件的 Cloud Storage 存储桶:
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system my-migration -o jsonpath={.status.artifacts.deploymentFiles.bucket}
此命令以如下形式返回存储桶名称:
bucket-migration-artifacts
获取 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
前往 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"
在浏览器中打开
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 delete
或 Google Cloud 控制台)后通过迁移计划再次运行它。
blocklist.yaml
此文件根据迁移计划中的设置列出了要停用的容器服务。如需详细了解如何使用此文件,请参阅自定义服务列表。