This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.6.3. 명령줄에서 애플리케이션 마이그레이션
MTC 사용자 정의 리소스(CR)를 사용하여 명령줄에서 애플리케이션을 마이그레이션할 수 있습니다.
로컬 클러스터에서 원격 클러스터, 원격 클러스터에서 로컬 클러스터, 원격 클러스터, 원격 클러스터 간에 애플리케이션을 마이그레이션할 수 있습니다.
MTC 용어
다음 용어는 클러스터 구성과 관련이 있습니다.
- host클러스터:- 
									migration-controller포드는host클러스터에서 실행됩니다.
- 
									host클러스터에 직접 이미지 마이그레이션을 위해 노출된 보안 레지스트리 경로가 필요하지 않습니다.
 
- 
									
- 
							로컬 클러스터: 로컬 클러스터는 host 클러스터와 종종 동일하지만 필수 클러스터는 아닙니다.
- 원격 클러스터: - 원격 클러스터에 직접 이미지 마이그레이션을 위해 노출된 보안 레지스트리 경로를 보유해야 합니다.
- 
									원격 클러스터에 migration-controller서비스 계정 토큰이 포함된SecretCR이 있어야 합니다.
 
다음 용어는 마이그레이션 수행과 관련이 있습니다.
- 소스 클러스터: 애플리케이션이 마이그레이션되는 클러스터입니다.
- 대상 클러스터: 애플리케이션이 마이그레이션될 대상 클러스터입니다.
1.6.3.1. Migration Toolkit for Containers API를 사용하여 애플리케이션 마이그레이션
MTC(Migration Toolkit for Containers) API를 사용하여 명령줄에서 애플리케이션을 마이그레이션할 수 있습니다.
로컬 클러스터에서 원격 클러스터, 원격 클러스터에서 로컬 클러스터, 원격 클러스터, 원격 클러스터 간에 애플리케이션을 마이그레이션할 수 있습니다.
다음 프로세스에서는 간접 마이그레이션 및 직접 마이그레이션을 수행하는 방법을 설명합니다.
- 간접 마이그레이션: 이미지, 볼륨 및 Kubernetes 오브젝트는 소스 클러스터에서 복제 리포지토리로 복사한 다음 복제 리포지토리에서 대상 클러스터로 복사됩니다.
- 직접 마이그레이션: 이미지 또는 볼륨은 소스 클러스터에서 대상 클러스터로 직접 복사됩니다. 직접 이미지 마이그레이션 및 직접 볼륨 마이그레이션은 성능에 큰 이점이 있습니다.
다음 사용자 정의 리소스(CR)를 생성하여 마이그레이션을 수행합니다.
- MigClusterCR:- 호스트, 로컬 또는 원격 클러스터 정의- migration-controller포드는- host클러스터에서 실행됩니다.
- 
								SecretCR: 원격 클러스터 또는 스토리지에 대한 인증 정보 포함
- MigStorageCR: 복제 리포지토리 정의- 스토리지 공급자마다 - MigStorageCR 매니페스트의 다른 매개변수가 필요합니다.
- 
								MigPlanCR: 마이그레이션 계획 정의
- MigMigrationCR: 연결된- MigPlan에 정의된 마이그레이션을 수행합니다.- 다음과 같은 목적으로 단일 - MigPlanCR에 대해 여러- MigMigrationCR을 생성할 수 있습니다.
- 단계 마이그레이션을 수행하려면 마이그레이션을 실행하기 전에 애플리케이션을 중지하지 않고 대부분의 데이터를 복사합니다. 단계별 마이그레이션은 마이그레이션의 성능을 향상시킵니다.
- 진행 중인 마이그레이션을 취소하려면
- 완료된 마이그레이션을 롤백하려면
사전 요구 사항
- 
								모든 클러스터에 대한 cluster-admin권한이 있어야 합니다.
- 
								OpenShift Container Platform CLI(oc)를 설치해야 합니다.
- 모든 클러스터에 Migration Toolkit for Containers Operator를 설치해야 합니다.
- 모든 클러스터에서 설치된 Migration Toolkit for Containers Operator 버전이 동일해야 합니다.
- 복제 리포지토리로 오브젝트 스토리지를 구성해야 합니다.
- 직접 이미지 마이그레이션을 사용하는 경우 모든 원격 클러스터에 보안 레지스트리 경로를 노출해야 합니다.
- 직접 볼륨 마이그레이션을 사용하는 경우 소스 클러스터에 HTTP 프록시가 구성되어 있지 않아야 합니다.
프로세스
- host-cluster.yaml이라는- host클러스터에 대한- MigClusterCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- host클러스터에 대한- MigClusterCR을 생성합니다.- oc create -f host-cluster.yaml -n openshift-migration - $ oc create -f host-cluster.yaml -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- cluster-secret.yaml이라는 각 원격 클러스터에 대한- SecretCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 원격 클러스터의 base64로 인코딩된migration-controller서비스 계정(SA) 토큰을 지정합니다.
 - 다음 명령을 실행하여 SA 토큰을 확보할 수 있습니다. - oc sa get-token migration-controller -n openshift-migration | base64 -w 0 - $ oc sa get-token migration-controller -n openshift-migration | base64 -w 0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 각 원격 클러스터에 대한 - SecretCR을 생성합니다.- oc create -f cluster-secret.yaml - $ oc create -f cluster-secret.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- remote-cluster.yaml이라는 각 원격 클러스터에 대해- MigClusterCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 각 원격 클러스터에 대해 - MigClusterCR을 생성합니다.- oc create -f remote-cluster.yaml -n openshift-migration - $ oc create -f remote-cluster.yaml -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 모든 클러스터가 - Ready상태에 있는지 확인합니다.- oc describe cluster <cluster_name> - $ oc describe cluster <cluster_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- storage-secret.yaml이라는 복제 리포지토리의- SecretCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - AWS 인증 정보는 기본적으로 base64로 인코딩됩니다. 다른 스토리지 공급자를 사용하는 경우 각 키로 다음 명령을 실행하여 인증 정보를 인코딩해야 합니다. - echo -n "<key>" | base64 -w 0 - $ echo -n "<key>" | base64 -w 0- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 키 ID 또는 시크릿 키를 지정합니다. 두 키 모두 base64로 인코딩되어야 합니다.
 
- 복제 리포지토리에 대한 - SecretCR을 생성합니다.- oc create -f storage-secret.yaml - $ oc create -f storage-secret.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- migstorage.yaml이라는 복제 리포지토리에 대한- MigStorageCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- MigStorageCR을 생성합니다.- oc create -f migstorage.yaml -n openshift-migration - $ oc create -f migstorage.yaml -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- MigStorageCR이- Ready상태에 있는지 확인합니다.- oc describe migstorage <migstorage_name> - $ oc describe migstorage <migstorage_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- migplan.yaml이라는- MigPlanCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- MigPlanCR을 만듭니다.- oc create -f migplan.yaml -n openshift-migration - $ oc create -f migplan.yaml -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- MigPlan인스턴스를 보고- Ready상태인지 확인합니다.- oc describe migplan <migplan_name> -n openshift-migration - $ oc describe migplan <migplan_name> -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- migmigration.yaml이라는- MigMigrationCR 매니페스트를 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- MigPlanCR에 정의된 마이그레이션을 시작하도록- MigMigrationCR을 생성합니다.- oc create -f migmigration.yaml -n openshift-migration - $ oc create -f migmigration.yaml -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- MigMigrationCR을 확인하여 마이그레이션 진행 상황을 확인합니다.- oc watch migmigration <migmigration_name> -n openshift-migration - $ oc watch migmigration <migmigration_name> -n openshift-migration- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 출력은 다음과 유사합니다. - 출력 예 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow