从 AWS 迁移到 Google Cloud:从 Amazon EKS 迁移到 GKE

Last reviewed 2023-09-30 UTC

Google Cloud 提供了用于从 Amazon Elastic Kubernetes Service (Amazon EKS) 迁移到 Google Kubernetes Engine (GKE) 的工具、产品、指导和专业服务。本文档可帮助您设计、实施和验证从 Amazon EKS 迁移到 GKE 的计划。如果您要评估迁移的机会并希望了解迁移的可能情况,本文档也提供了指导。除了在 Amazon Elastic Compute Cloud (Amazon EC2) 上运行之外,Amazon EKS 还有一些其他部署选项,例如 AWS 输出上的 Amazon EKS 和任何位置的 Amazon EKS。本文档重点介绍 EC2 上的 Amazon EKS。

本文档是关于从 AWS 迁移到 Google Cloud 的系列文章中的一篇,该系列文章包括以下文档:

本系列假定您已阅读并熟悉以下文档:

下图说明了迁移过程的路径。 对于迁移场景,部署阶段等同于执行迁移过程。

迁移路径包含四个阶段。

您可能需要通过一系列迭代从 Amazon EKS 迁移到 GKE,例如,您可能会先迁移一部分工作负载,然后再迁移其他工作负载。对于每个单独的迁移迭代,您需要遵循一般迁移框架的各个阶段:

  1. 评估和发现工作负载和数据。
  2. 在 Google Cloud 上规划和构建基础。
  3. 将工作负载和数据迁移到 Google Cloud。
  4. 优化您的 Google Cloud 环境。

如需详细了解此框架的各个阶段,请参阅迁移到 Google Cloud:使用入门

评估来源环境

在评估阶段,您需要确定要从 Amazon EKS 迁移到 GKE 的资源的要求和依赖项。

评估阶段包括以下任务:

  1. 构建一个完整的工作负载和数据清单。
  2. 根据工作负载和数据的属性和依赖项对工作负载和数据进行分类。
  3. 为您的团队开展 Google Cloud 培训和指导
  4. 在 Google Cloud 上构建实验和概念验证。
  5. 计算目标环境的总拥有成本 (TCO)。
  6. 确定要迁移的工作负载的顺序和优先级。

如需详细了解评估阶段和这些任务,请参阅迁移到 Google Cloud:评估和发现工作负载。以下部分基于该文档中的信息。

构建您的清单

如需确定迁移范围,您需要创建两个清单:一个 Amazon EKS 集群的清单,一个部署在这些集群中的工作负载的清单。构建这些清单后,您可以评估用于在集群中部署工作负载的部署和运营流程。

构建 Amazon EKS 集群和工作负载的清单

如需构建 Amazon EKS 集群的清单,我们建议您使用 Migration Center,这是 Google Cloud 的统一平台,可帮助您加快从当前环境到 Google Cloud 的端到端云之旅速度。 借助 Migration Center,您可以从 Amazon EKS 和其他 AWS 资源导入数据。然后,Migration Center 会推荐您可以迁移到的相关 Google Cloud 服务。

构建 Amazon EKS 集群的清单时,您可能会发现在迁移过程中需要停用一些集群。请确保您的迁移计划包括弃用这些资源。

Migration Center 提供的数据可能无法完全捕获您感兴趣的维度。在这种情况下,您可以将该数据与您创建的基于 AWS API、AWS 开发者工具和 AWS 命令行界面的其他数据收集机制的结果集成。

除了从 Migration Center 获取的数据之外,还请考虑您要迁移的每个 Amazon EKS 集群的以下数据点:

  • 按照“将 Kubernetes 迁移到 GKE”的构建您的清单部分中的指导进行操作。该文档介绍了如何构建 Kubernetes 集群和工作负载的清单。它也适用于构建 Amazon EKS 环境的清单。
  • 考虑每个 Amazon EKS 集群特定于 Amazon EKS 的方面和功能,包括:
    • 专用集群
    • 集群端点访问权限控制
    • Secret 加密
    • 代管式节点组和自行管理的节点
    • Amazon EKS 资源上的标记
    • EKS 中的 Amazon 自定义 AMI
    • 使用 Amazon EKS Fargate
    • 使用 Amazon EKS 管理的 Prometheus
    • OpenID Connect 身份验证配置
  • 评估您如何向 Amazon EKS 集群进行身份验证,以及如何为 Amazon EKS 配置 AWS Identity and Access Management (IAM)。
  • 评估 Amazon EKS 集群的网络配置。
  • 评估任何合规性和监管要求,以及您是否满足这些要求。

评估您的部署和运营流程

构建 Amazon EKS 集群和工作负载的清单后,我们建议您评估部署和运营流程。请务必清楚了解部署和运营流程的工作原理。这些流程是准备和维护生产环境以及在其中运行的工作负载的实践的基本组成部分。

部署和运营流程可能会构建工作负载正常运行所需的工件。因此,您应该收集有关每种工件类型的信息。例如,工件可以是操作系统软件包、应用部署包、操作系统映像、容器映像或其他类型。

除了工件类型之外,请考虑如何完成以下任务:

  • 生成您在 Amazon EKS 上部署的工件。如需在 Amazon EKS 上部署工作负载,您可能会生成可部署的工件,例如容器映像。收集有关如何生成这些工件的信息有助于确保生成的工件适合在 Google Cloud 中部署。例如,如果您生成存储在 AWS 上的 Artifact Registry 中的工件,则需要在 Google Cloud 环境中提供这些工件。为此,您可以使用如下策略:
    • 在环境之间建立通信通道:使来源环境中的工件可从目标 Google Cloud 环境进行访问。这样做有助于为最终使用 Artifact Registry 做好准备。
    • 重构工件构建流程:完成来源环境的小幅度重构,以便在来源环境和目标环境中存储工件。此方法通过在目标 Google Cloud 环境中实现工件构建流程之前先构建工件制品库等基础架构来支持迁移。您可以直接实现此方法,也可以在上述先建立通信通道方法的基础上进行构建。
  • 在 Amazon EKS 集群上部署工件。生成可部署的工件后,您可能会将其部署到 Amazon EKS 上。我们建议您评估每个部署流程。评估有助于确保您的部署流程与 Google Cloud 兼容。它还有助于您了解最终重构流程所需的工作量。例如,如果部署流程仅适用于 Amazon EKS,则可能需要重构它们,从而以您的 Google Cloud 环境为目标。
  • 注入运行时配置。您可能会注入特定 Amazon EKS 集群、运行时环境或工作负载部署的运行时配置。该配置可能会初始化环境变量及其他配置值,例如 Secret、凭据和密钥。为帮助确保运行时配置注入流程在 Google Cloud 上正常运行,我们建议您评估如何配置在 Amazon EKS 上运行的工作负载。

在评估部署和运营流程后,我们还建议您评估这些流程如何帮助您迁移到 Google Cloud,以及它们如何帮助您缩小迁移范围和风险。

完成评估

从 Amazon EKS 环境构建清单后,请完成评估阶段的其余活动,如迁移到 Google Cloud:评估和发现工作负载中所述。

规划和构建基础

在规划和构建阶段,您需要预配和配置基础架构以执行以下操作:

  • 在 Google Cloud 环境中支持您的工作负载。
  • 连接 AWS 环境和 Google Cloud 环境以完成迁移。

在 Google Cloud 上构建您的基础

规划和构建阶段由以下任务组成:

  1. 构建资源层次结构。
  2. 配置 Google Cloud 的 Identity and Access Management (IAM)。
  3. 设置结算功能。
  4. 设置网络连接。
  5. 强化安全性。
  6. 设置日志记录、监控和提醒。

如需详细了解其中每项任务,请参阅“将容器迁移到 Google Cloud:将 Kubernetes 迁移到 GKE”中的规划和构建基础部分。

迁移数据并部署工作负载

在部署阶段,您将执行以下操作:

  1. 预配和配置 GKE 环境。
  2. 配置 GKE 集群。
  3. 将数据从来源环境迁移到 Google Cloud。
  4. 在 GKE 环境中部署工作负载。
  5. 验证工作负载。
  6. 公开在 GKE 上运行的工作负载。
  7. 将流量从来源环境迁移到 GKE 环境。
  8. 停用来源环境。

如需了解如何完成其中每项任务,请参阅“将容器迁移到 Google Cloud:将 Kubernetes 迁移到 GKE”中的部署工作负载部分。以下部分整合了本文档中的注意事项。

迁移数据

“将容器迁移到 Google Cloud:将 Kubernetes 迁移到 GKE”中的迁移数据部分包含有关将数据从通用 Kubernetes 环境迁移到 GKE 的信息。该部分中的建议适用于将数据从 Amazon EKS 迁移到 GKE。如需规划迁移,请将关联文档中的通用环境信息与以下专门针对将数据从 Amazon EKS 迁移到 GKE 的各部分相结合。

AWS 为 Amazon EKS 提供了多种数据存储选项。本文档重点介绍以下数据迁移场景:

  • 将数据从 Amazon EBS 卷迁移到 GKE PersistentVolume 资源。
  • 将数据从 Amazon EBS 卷复制到 Amazon S3 或 Cloud Storage,然后将数据迁移到 GKE PersistentVolume 资源。

将数据从 Amazon EBS 卷迁移到 GKE PersistentVolume

您可以使用以下方法之一将数据从 Amazon EBS 卷迁移到 GKE PersistentVolume 资源:

  • 将数据从 Amazon EBS 卷直接复制到 Compute Engine 永久性磁盘:
    1. 预配 Amazon EC2 实例并挂接包含要迁移的数据的 Amazon EBS 卷。
    2. 为 Compute Engine 实例预配具有足够容量的空永久性磁盘来存储要迁移的数据。
    3. 运行数据同步工具(例如 rsync),将数据从 Amazon EBS 卷复制到 Compute Engine 永久性磁盘。
    4. 将永久性磁盘与 Compute Engine 实例分离。
    5. 停用 Compute Engine 实例。
    6. 将永久性磁盘配置为 GKE PersistentVolume 资源。
  • 将 Amazon EC2 实例和 Amazon EBS 卷迁移到 Compute Engine:
    1. 预配 Amazon EC2 实例并挂接包含要迁移的数据的 Amazon EBS 卷。
    2. 使用 Migrate for Virtual Machines 将 Amazon EC2 实例和 Amazon EBS 卷迁移到 Compute Engine。
    3. 将永久性磁盘与 Compute Engine 实例分离。
    4. 停用 Compute Engine 实例。
    5. 将永久性磁盘配置为 GKE PersistentVolume 资源。

如需详细了解如何将 Amazon EC2 实例迁移到 Compute Engine,请参阅从 AWS 迁移到 Google Cloud:从 Amazon EC2 迁移到 Compute Engine

如需详细了解如何将 Compute Engine 永久性磁盘用作 GKE PersistentVolume 资源,请参阅将已有的永久性磁盘用作 PersistentVolume

将数据从 Amazon EBS 卷复制到临时介质,然后迁移到 GKE PersistentVolume

除了从 Amazon EBS 卷直接迁移到 GKE PersistentVolume 资源之外,您还可以使用临时介质(例如对象存储):

  1. 将数据从 Amazon EBS 卷上传到临时介质,例如 Amazon S3 存储桶或 Cloud Storage 存储桶。
  2. 将数据从临时介质下载到 GKE PersistentVolume 资源。

在某些情况下,使用多个介质可以根据您的网络和安全配置简化数据转移。例如,您可以先将数据上传到 S3 存储桶,然后将其从 S3 存储桶复制到 Cloud Storage 存储桶,最后将数据下载到永久性卷。无论您选择哪种方法,为了确保在注意重要事项的同时顺利完成转换,我们都建议您查看从 AWS 迁移到 Google Cloud:从 Amazon S3 迁移到 Cloud Storage

选择迁移方式

最合适您的迁移选项取决于您的特定需求和要求,例如以下注意事项:

  • 您需要迁移的数据量。
    • 如果要迁移少量数据(例如几个数据文件),请考虑使用 rsync 等工具将数据直接复制到 Compute Engine 永久性磁盘。此选项相对快捷,但可能不适合迁移大量数据。
    • 如果您要迁移大量数据,请考虑使用 Migrate to Virtual Machines 将数据迁移到 Compute Engine。此选项比直接复制数据复杂,但它更可靠且更具可伸缩性。
  • 您需要迁移的数据类型。
  • 来源环境与目标环境之间的网络连接。
    • 如果您无法在 AWS EC2 和 Compute Engine 实例之间建立直接网络连接,则建议您考虑使用 Amazon S3 或 Cloud Storage 在将数据迁移到 Compute Engine 时临时存储数据。此选项的费用可能较低,因为您无需同时保持 EC2 和 Compute Engine 实例运行。
  • 迁移时间轴。
    • 如果您的网络带宽有限或数据量较大,并且您的时间轴不严格,则还可以考虑使用 Transfer Appliance 将数据从 AWS 迁移到 Google Cloud。

无论您选择哪个选项,都请务必先测试迁移,然后再使其生效。测试可帮助您找出任何潜在问题,并确保迁移成功。

迁移后优化您的环境

完成所有迁移阶段后,迁移会被视为已完成。但是,您的 GKE 环境可能需要进一步优化。如需了解详情,请参阅将 Kubernetes 迁移到 GKE:优化您的环境

后续步骤