Cloud Foundry 到 Cloud Run 迁移指南提供了有关 Cloud Foundry 服务与 Cloud Run 服务之间的差异的背景信息,并介绍将 Cloud Foundry 应用迁移到在 Cloud Run 上的容器中运行需要完成的任务。这些迁移页面不涉及数据迁移。
符合迁移条件的 Cloud Foundry 应用
Cloud Run 旨在运行无状态 HTTP 或 HTTP/2 应用。Cloud Foundry 应用必须满足以下条件才能迁移:
- 使用 HTTP 或 HTTP/2(包括 gRPC)。
- 根据
PORT
环境变量监听流量。 - 不需要在不同的路径上路由到不同的应用。
- 不需要旧版 Cloud Foundry“路由服务”来代理流量。
- 不需要实例 ID 或特定的启动顺序。
- 不需要单个实例可寻址。
- 启动不会对环境产生副作用,例如启动数据库迁移。
了解 Cloud Foundry 和 Cloud Run 之间的差异
虽然 Cloud Foundry 和 Cloud Run 都具有类似的源部署体验,但平台处理工作负载容器化、应用配置和服务定义的方式存在显著差异。 下表显示了 Cloud Foundry 和 Cloud Run 的差异:
应用组件 | Cloud Foundry | Cloud Run 容器映像部署 |
Cloud Run 源部署 Dockerfile |
Cloud Run 源部署 Buildpack |
---|---|---|---|---|
容器化 | CF Buildpack v2 | 不适用 | Cloud Build | Cloud Build |
基础映像 |
cflinuxfs3 (Ubuntu 18.04) cflinuxfs4 (Ubuntu 22.04) |
自带容器映像 | 指定了 Dockerfile | Ubuntu 18.04 或 Ubuntu 22.04 |
服务定义 | manifest.yaml |
service.yaml |
||
忽略列表 | .cfignore |
.gcloudignore |
||
服务元数据 | VCAP_* 环境变量 |
Workload Identity、Cloud Secrets | ||
支持的容器格式 | Droplet | Docker Image Manifest V2、Schema 1、Schema 2 和 OCI 格式 |
如何迁移
如需迁移 Cloud Foundry 应用,请遵循以下步骤:
示例迁移
Spring Music 示例使用 Cloud Foundry 的核心组件将 Spring Music 重新构建为与 OCI 兼容的映像并将其部署到 Cloud Run。此示例遵循直接原样迁移 OCI 合规性策略。