第 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 必须具有相同的存储类。