第 10 章 故障排除
本节论述了对 Migration Toolkit for Containers(MTC)进行故障排除的资源。
如需已知问题,请参阅 MTC 发行注记。
10.1. MTC 工作流
您可以使用 MTC web 控制台或 Kubernetes API 将 Kubernetes 资源、持久性卷数据和内部容器镜像迁移到 OpenShift Container Platform 4.9。
MTC 迁移以下资源:
- 在迁移计划中指定的命名空间。
命名空间范围的资源:当 MTC 迁移命名空间时,它会迁移与该命名空间关联的所有对象和资源,如服务或 Pod。另外,如果一个资源在命名空间中存在但不在集群级别,这个资源依赖于集群级别存在的另外一个资源,MTC 会迁移这两个资源。
例如,安全性上下文约束(SCC)是一个存在于集群级别的资源,服务帐户(SA)是存在于命名空间级别的资源。如果 MTC 迁移的命名空间中存在 SA,MTC 会自动找到链接到 SA 的所有 SCC,并迁移这些 SCC。同样,MTC 会迁移链接到命名空间持久性卷声明的持久性卷。
注意根据资源,可能需要手动迁移集群范围的资源。
- 自定义资源 (CR) 和自定义资源定义 (CRD):MTC 在命名空间级别自动迁移 CR 和 CRD。
使用 MTC Web 控制台迁移应用程序涉及以下步骤:
在所有集群中安装 MTC Operator。
您可以在有限的或没有互联网访问的受限环境中为 Containers Operator 安装 Migration Toolkit。源和目标集群必须可以在相互间进行访问,而需要可以访问 registry 的镜像(mirror).
配置复制存储库,这是 MTC 用来迁移数据的中间对象存储。
源和目标集群必须有对复制仓库的不受限制的网络访问权限。如果使用代理服务器,您必须将其配置为允许复制仓库和集群间的网络流量。
- 在 MTC web 控制台中添加源集群。
- 在 MTC web 控制台中添加复制存储库。
创建迁移计划,包含以下数据迁移选项之一:
Copy:MTC 将数据从源集群复制到复制存储库,再从复制存储库把数据复制到目标集群。
注意如果您使用直接镜像迁移或直接卷迁移,则镜像或卷会直接从源集群复制到目标集群。
Move:MTC 从源集群中卸载一个远程卷(例如 NFS),在目标集群上创建一个指向这个远程卷的 PV 资源,然后在目标集群中挂载远程卷。在目标集群中运行的应用程序使用源集群使用的同一远程卷。远程卷必须可以被源集群和目标集群访问。
注意虽然复制仓库没有出现在此图表中,但迁移需要它。
运行迁移计划,使用以下选项之一:
stage 在不停止应用程序的情况下将数据复制到目标集群。
阶段迁移可以多次运行,以便在迁移前将大多数数据复制到目标。运行一个或多个阶段迁移可缩短迁移的持续时间。
cutover 会停止源集群上的应用程序,并将资源移到目标集群。
可选:您可以清除 Halt transactions on the source cluster during migration 多选设置。
关于 MTC 自定义资源
MTC 会创建以下自定义资源(CR):
MigCluster (配置, MTC 集群): 集群定义
MigStorage (配置, MTC 集群): 存储定义
MigPlan (配置, MTC 集群): 迁移计划
MigPlan
CR 描述了要迁移的源和目标集群、复制仓库和命名空间。它与 0 个、1 个或多个 MigMigration
CR 关联。
删除 MigPlan
CR 会删除关联的 MigMigration
CR。
BackupStorageLocation (配置, MTC 集群): Velero
备份对象的位置
VolumeSnapshotLocation (配置, MTC 集群): Velero
卷快照的位置
MigMigration (操作,MTC 集群):Migration,在每次进行 stage 或迁移数据时创建。每个 MigMigration
CR 都与 MigPlan
CR 关联。
Backup(操作,源集群):当运行迁移计划时,MigMigration
CR 在每个源集群上创建两个 Velero
备份 CR:
- 备份 CR #1 用于Kubernetes 对象
- 备份 CR #2 用于 PV 数据
Restore (操作,目标集群):在运行迁移计划时,MigMigration
CR 在目标集群上创建两个 Velero
恢复 CR:
- 恢复 CR #1(使用备份 CR #2)用于 PV 数据
- 恢复 CR #2(使用备份 CR #1)用于 Kubernetes 对象