11.5. 마이그레이션 롤백
MTC 웹 콘솔 또는 CLI를 사용하여 마이그레이션을 롤백할 수 있습니다.
마이그레이션을 수동으로 롤백할 수도 있습니다.
11.5.1. MTC 웹 콘솔을 사용하여 마이그레이션 롤백
MTC(Migration Toolkit for Containers) 웹 콘솔을 사용하여 마이그레이션을 롤백할 수 있습니다.
다음 리소스는 실패한 직접 볼륨 마이그레이션(DVM) 이후 디버깅을 위해 마이그레이션된 네임스페이스에 남아 있습니다.
- 구성 맵 (소스 및 대상 클러스터)
-
Secret
오브젝트 (소스 및 대상 클러스터) -
Rsync
CR (소스 클러스터)
이러한 리소스는 롤백에 영향을 미치지 않습니다. 수동으로 삭제할 수 있습니다.
나중에 동일한 마이그레이션 계획을 성공적으로 실행하면 실패한 마이그레이션의 리소스가 자동으로 삭제됩니다.
마이그레이션 실패로 인해 애플리케이션이 중지된 경우 영구 볼륨의 데이터 손상을 방지하려면 마이그레이션을 롤백해야 합니다.
원래 애플리케이션이 소스 클러스터에서 계속 실행 중이므로 마이그레이션 중에 애플리케이션이 중지되지 않은 경우 롤백이 필요하지 않습니다.
프로세스
- MTC 웹 콘솔에서 마이그레이션 계획을 클릭합니다.
- 마이그레이션 계획 옆의 옵션 메뉴 를 클릭하고 마이그레이션에서 롤백을 선택합니다.
롤백을 클릭하고 롤백이 완료될 때까지 기다립니다.
마이그레이션 계획 세부 사항에서 롤백 성공이 표시됩니다.
소스 클러스터의 OpenShift Container Platform 웹 콘솔에서 롤백이 성공했는지 확인합니다.
-
홈
프로젝트를 클릭합니다. - 마이그레이션된 프로젝트를 클릭하여 상태를 봅니다.
- 경로 섹션에서 위치를 클릭하여 해당되는 경우 애플리케이션이 작동하는지 확인합니다.
-
워크로드
포드를 클릭하여 포드가 마이그레이션된 네임스페이스에서 실행 중인지 확인합니다. -
스토리지
영구 볼륨을 클릭하여 마이그레이션된 영구 볼륨이 올바르게 프로비저닝되었는지 확인합니다.
-
홈
11.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 웹 콘솔에서 마이그레이션된 프로젝트 리소스가 대상 클러스터에서 제거되었는지 확인합니다.
- 마이그레이션된 프로젝트 리소스가 소스 클러스터에 있고 애플리케이션이 실행 중인지 확인합니다.
11.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" migration.openshift.io/preQuiesceReplicas: "1"
애플리케이션 pod가 소스 클러스터에서 실행 중인지 확인합니다.
$ oc get pod -n <namespace>