第 8 章 迁移应用程序

您可以使用 Migration Toolkit for Containers(MTC)web 控制台或命令行来迁移应用程序。

大多数集群范围的资源还没有由 MTC 处理。如果应用程序需要集群范围的资源,则可能需要在目标集群上手动创建。

您可以使用阶段迁移和剪切迁移在集群间迁移应用程序:

  • 阶段迁移 (Stage migration) 会在不停止应用程序的情况下将数据从源集群复制到目标集群。您可以多次运行一个阶段迁移来缩短迁移的持续时间。
  • 剪切迁移 (Cutover migration) 将停止源集群中的事务,并将资源移到目标集群。

您可以使用状态迁移来迁移应用程序的状态:

  • 状态迁移复制所选持久性卷声明 (PVC)。
  • 您可以使用状态迁移来迁移同一集群中的命名空间。

在迁移过程中,MTC 会保留以下命名空间注解:

  • openshift.io/sa.scc.mcs
  • openshift.io/sa.scc.supplemental-groups
  • openshift.io/sa.scc.uid-range

    这些注解会保留 UID 范围,确保容器在目标集群中保留其文件系统权限。这可能会存在一定的风险。因为迁移的 UID 可能已存在于目标集群的现有或将来的命名空间中。

8.1. 迁移先决条件

  • 必须使用在所有集群中具有 cluster-admin 权限的用户登录。

直接镜像迁移

  • 您必须确保源集群的安全内部 registry 被公开。
  • 您必须创建指向公开 registry 的路由。

直接卷迁移

  • 如果您的集群使用代理,您必须配置 Stunnel TCP 代理。

集群

  • 源集群必须升级到最新的 MTC z-stream 版本。
  • 在所有集群中,MTC 版本必须相同。

Network

  • 集群在相互间有无限制的网络访问,并可以访问复制存储库。
  • 如果您复制有 移动 的持久性卷,集群必须具有对远程卷的不受限制的网络访问权限。
  • 您必须在 OpenShift Container Platform 4 集群中启用以下端口:

    • 6443 (API 服务器)
    • 443 (路由)
    • 53 (DNS)
  • 如果使用 TLS,则必须在复制存储库中启用端口 443

持久性卷(PV)

  • PV 必须有效。
  • PV 必须绑定到持久性卷声明。
  • 如果使用快照复制 PV,则需要满足以下额外先决条件:

    • 云供应商必须支持快照。
    • PV 必须具有相同的云供应商。
    • PV 必须位于同一区域。
    • PV 必须具有相同的存储类。