将应用迁移并部署到 GKE Autopilot 集群
如需将迁移的容器工作负载部署到 GKE Autopilot 集群,您可以像迁移现有架构一样迁移工作负载。唯一的变更是:
您必须先在迁移计划中将
v2kServiceManager
设置为true
,然后才能生成容器工件。您必须查看新的
services-config.yaml
文件并对初始化服务进行任何修改。请参阅使用 services-config.yaml。
如需执行迁移,请执行以下操作:
根据需要自定义您的迁移计划。
下载迁移计划。迁移计划由 AppXGenerateArtifactsFlow 表示。
例如,对于名为“my-migration”的迁移:
migctl migration get my-migration
在文本编辑器中打开下载的迁移计划
my-migration.yaml
。验证增强的 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
执行迁移所需的任何其他自定义,如自定义迁移计划中所述。
修改完成后,保存修改后的文件。
上传修改后的迁移计划:
migctl migration update my-migration --main-config my-migration.yaml
修改新的
services-config.yaml
文件以配置容器的初始化属性。保存文件并重新构建容器映像以应用更改。如需了解详情,请参阅使用 services-config.yaml。
使用
kubectl
将容器部署到 GKE Autopilot 集群:kubectl apply -f deployment_spec.yaml
示例:在 Autopilot 集群上部署快速入门容器
使用当前快速入门指南迁移包含简单 Web 服务器的容器,然后将其部署到 Autopilot 集群上。您必须对快速入门流程进行以下更改:
在迁移虚拟机的第 3 步,即“查看迁移计划”中,在迁移计划中将
v2kServiceManager
设置为true
,然后保存计划:v2kServiceManager: true
在部署迁移后的工作负载部分,在部署容器之前创建并连接到 GKE Autopilot 集群:
创建 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"
连接到该集群:
gcloud container clusters get-credentials CLUSTER_NAME --zone REGION --project PROJECT_NAME
按照部署迁移的工作负载部分中的说明部署容器。
对 AppXGenerateArtifactsFlow CRD 的更改
如果您使用 CRD 文件来控制迁移,请修改 AppXGenerateArtifactsFlow CRD 以将 v2kServiceManager
设置为 true
。如需详细了解如何使用 CRD 文件控制迁移,请参阅自定义迁移计划。
后续步骤
- 了解如何将服务部署到 Cloud Run。