添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

12.5. 回滚一个迁移


您可以使用 MTC web 控制台或 CLI 回滚迁移。 您还可以 手动回滚迁移

12.5.1. 使用 MTC web 控制台回滚迁移

您可以使用 Migration Toolkit for Containers(MTC)web 控制台回滚迁移。 以下资源保留在迁移的命名空间中,以便在直接卷迁移 (DVM) 失败后进行调试: 配置映射(源和目标集群) Secret 对象(源和目标集群) Rsync CR(源集群) 这些资源不会影响回滚。您可以手动删除它们。 如果您稍后成功运行相同的迁移计划,则会自动删除失败迁移中的资源。 如果应用程序在迁移失败时停止,您必须回滚迁移,以防止持久性卷中的数据崩溃。 如果应用程序在迁移过程中没有停止,则不需要回滚,因为原始应用程序仍然在源集群中运行。 在 MTC web 控制台中点 Migration Plan 。 点迁移计划 旁边的 Options 菜单,并在 Migration 下选择 Rollback 。 点 Rollback 并等待回滚完成。 在迁移计划详情中会显示 Rollback succeeded 。 验证源集群的 OpenShift Container Platform Web 控制台中是否成功回滚: 点 Home Projects 。 点迁移的项目查看其状态。 在 Routes 部分,点击 Location 验证应用程序是否正常运行。 点 Workloads Pods 来验证 pod 是否在迁移的命名空间中运行。 点 Storage Persistent volumes 确认正确置备了被迁移的持久性卷。

12.5.2. 使用命令行界面回滚迁移

您可以通过从命令行界面创建 MigMigration 自定义资源(CR)来回滚迁移。 以下资源保留在迁移的命名空间中,以便在直接卷迁移 (DVM) 失败后进行调试: 配置映射(源和目标集群) Secret 对象(源和目标集群) Rsync CR(源集群) 这些资源不会影响回滚。您可以手动删除它们。 如果您稍后成功运行相同的迁移计划,则会自动删除失败迁移中的资源。 如果应用程序在迁移失败时停止,您必须回滚迁移,以防止持久性卷中的数据崩溃。 如果应用程序在迁移过程中没有停止,则不需要回滚,因为原始应用程序仍然在源集群中运行。 根据以下示例创建一个 MigMigration CR:

$ cat << EOF | oc apply -f -
apiVersion: migration.openshift.io/v1alpha1
kind: MigMigration
metadata:
  labels:
    controller-tools.k8s.io: "1.0"
  name: <migmigration>
  namespace: openshift-migration
spec:
  rollback: true
  migPlanRef:
    name: <migplan> 1
    namespace: openshift-migration
EOF
1
指定关联的 MigPlan CR 的名称。 在 MTC web 控制台中,验证迁移的项目资源是否已从目标集群中移除。 验证迁移的项目资源是否存在于源集群中,并且应用程序是否正在运行。

12.5.3. 手动回滚迁移

您可以通过删除 stage pod 并取消静止应用程序来手动回滚失败的迁移。 如果您成功运行相同的迁移计划,则会自动删除失败迁移中的资源。 在直接卷迁移失败 (DVM) 后,以下资源会保留在迁移的命名空间中: 配置映射(源和目标集群) Secret 对象(源和目标集群) Rsync CR(源集群) 这些资源不会影响回滚。您可以手动删除它们。 删除所有集群中的 stage pod:

$ oc delete $(oc get pods -l migration.openshift.io/is-stage-pod -n <namespace>) 1
1
MigPlan CR 中指定的命名空间。 通过将副本扩展到其预迁移编号,在源集群中取消静默应用程序:

$ oc scale deployment <deployment> --replicas=<premigration_replicas>

Deployment CR 中的 migration.openshift.io/preQuiesceReplicas 注解显示预迁移副本数:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"