将应用迁移并部署到 GKE Autopilot 集群

如需将迁移的容器工作负载部署到 GKE Autopilot 集群,您可以像迁移现有架构一样迁移工作负载。唯一的变更是:

  • 您必须先在迁移计划中将 v2kServiceManager 设置为 true,然后才能生成容器工件。

  • 您必须查看新的 services-config.yaml 文件并对初始化服务进行任何修改。请参阅使用 services-config.yaml

如需执行迁移,请执行以下操作:

  1. 安装 Migrate to Containers 1.15.0 版

  2. 添加迁移来源创建迁移,就像使用现有运行时操作一样。

  3. 根据需要自定义您的迁移计划

    1. 下载迁移计划。迁移计划由 AppXGenerateArtifactsFlow 表示。

      例如,对于名为“my-migration”的迁移:

      migctl migration get my-migration
    2. 在文本编辑器中打开下载的迁移计划 my-migration.yaml

    3. 验证增强的 Linux 服务管理器。v2kServiceManager 标志默认设置为 true。但是,如果 Migrate to Containers 检测到服务管理器不支持的系统服务,您将会收到提醒,并且 v2kServiceManager 标志将设置为 false。当标志为 false 时,迁移将使用支持服务的旧版运行时。

      以下提醒会与不受支持的服务一起提供:

      Service is not supported by v2k service manager, therefore legacy runtime
      will be used instead of v2k service manager, and migrated workload would
      not fit running on Autopilot clusters of Cloudrun.

      发现不受支持的服务时,您还可以选择手动将标志设置为 true。在这种情况下,您可以选择将不受支持的服务保留在无法运行的生成映像上,或者通过从迁移计划中移除服务来排除该服务。

      如需启用新服务管理器,请将标志重置为 true

      v2kServiceManager: true
      
    4. 执行迁移所需的任何其他自定义,如自定义迁移计划中所述。

    5. 修改完成后,保存修改后的文件。

    6. 上传修改后的迁移计划:

      migctl migration update my-migration --main-config my-migration.yaml
  4. 生成查看迁移工件,就像使用现有运行时操作一样。

  5. 修改新的 services-config.yaml 文件以配置容器的初始化属性。保存文件并重新构建容器映像以应用更改。

    如需了解详情,请参阅使用 services-config.yaml

  6. 使用 kubectl 将容器部署到 GKE Autopilot 集群

    kubectl apply -f deployment_spec.yaml

示例:在 Autopilot 集群上部署快速入门容器

使用当前快速入门指南迁移包含简单 Web 服务器的容器,然后将其部署到 Autopilot 集群上。您必须对快速入门流程进行以下更改:

  1. 迁移虚拟机的第 3 步,即“查看迁移计划”中,在迁移计划中将 v2kServiceManager 设置为 true,然后保存计划:

    v2kServiceManager: true
    
  2. 部署迁移后的工作负载部分,在部署容器之前创建并连接到 GKE Autopilot 集群:

    1. 创建 GKE Autopilot 集群:

      gcloud container clusters create-auto "CLUSTER_NAME"
      --project "PROJECT_NAME"  --region "REGION" --release-channel "regular"
      --subnetwork "projects/PROJECT_NAME/regions/us-central1/subnetworks/default"
    2. 连接到该集群:

      gcloud container clusters get-credentials CLUSTER_NAME 
        --zone REGION --project PROJECT_NAME
      
    3. 按照部署迁移的工作负载部分中的说明部署容器。

对 AppXGenerateArtifactsFlow CRD 的更改

如果您使用 CRD 文件来控制迁移,请修改 AppXGenerateArtifactsFlow CRD 以将 v2kServiceManager 设置为 true。如需详细了解如何使用 CRD 文件控制迁移,请参阅自定义迁移计划

后续步骤