9.2. MTC 웹 콘솔을 사용하여 애플리케이션 마이그레이션
MTC 웹 콘솔을 사용하여 클러스터와 복제 리포지토리를 구성할 수 있습니다. 그러면 마이그레이션 계획을 생성하고 실행할 수 있습니다.
9.2.1. MTC 웹 콘솔 시작
브라우저에서 MTC(Migration Toolkit for Containers) 웹 콘솔을 시작할 수 있습니다.
사전 요구 사항
- MTC 웹 콘솔에는 OpenShift Container Platform 웹 콘솔에 대한 네트워크 액세스 권한이 있어야 합니다.
- MTC 웹 콘솔에는 OAuth 인증 서버에 대한 네트워크 액세스 권한이 있어야 합니다.
프로세스
- MTC를 설치한 OpenShift Container Platform 클러스터에 로그인합니다.
다음 명령을 입력하여 MTC 웹 콘솔 URL을 확보합니다.
$ oc get -n openshift-migration route/migration -o go-template='https://{{ .spec.host }}'
출력은
https://migration-openshift-migration.apps.cluster.openshift.com
과 유사합니다.브라우저를 시작하고 MTC 웹 콘솔로 이동합니다.
참고Migration Toolkit for Containers Operator를 설치한 직후 MTC 웹 콘솔에 액세스하려고 하면 Operator가 여전히 클러스터를 구성하고 있기 때문에 콘솔이 로드되지 않을 수 있습니다. 몇 분 기다렸다가 다시 시도하십시오.
- 자체 서명된 CA 인증서를 사용하는 경우 소스 클러스터 API 서버의 CA 인증서를 수락하라는 메시지가 표시됩니다. 웹 페이지는 나머지 인증서 수락 프로세스를 안내합니다.
- OpenShift Container Platform 사용자 이름 및 암호로 로그인합니다.
9.2.2. MTC 웹 콘솔에 클러스터 추가
MTC(Migration Toolkit for Containers) 웹 콘솔에 클러스터를 추가할 수 있습니다.
사전 요구 사항
- 소스 클러스터에서 원본 간 리소스 공유를 구성해야 합니다.
Azure 스냅샷을 사용하여 데이터를 복사하는 경우:
- 클러스터의 Azure 리소스 그룹 이름을 지정해야 합니다.
- 클러스터는 동일한 Azure 리소스 그룹에 있어야 합니다.
- 클러스터는 동일한 지역 위치에 있어야 합니다.
- 직접 이미지 마이그레이션을 사용하는 경우 소스 클러스터의 이미지 레지스트리에 대한 경로를 노출해야 합니다.
프로세스
- 클러스터에 로그인합니다.
migration-controller
서비스 계정 토큰을 확보합니다.$ oc create token migration-controller -n openshift-migration
출력 예
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtaWciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoibWlnLXRva2VuLWs4dDJyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im1pZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YjFiYWMwLWMxYmYtMTFlOS05Y2NiLTAyOWRmODYwYjMwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptaWc6bWlnIn0.xqeeAINK7UXpdRqAtOj70qhBJPeMwmgLomV9iFxr5RoqUgKchZRG2J2rkqmPm6vr7K-cm7ibD1IBpdQJCcVDuoHYsFgV4mp9vgOfn9osSDp2TGikwNz4Az95e81xnjVUmzh-NjDsEpw71DH92iHV_xt2sTwtzftS49LpPW2LjrV0evtNBP_t_RfskdArt5VSv25eORl7zScqfe1CiMkcVbf2UqACQjo3LbkpfN26HAioO2oH0ECPiRzT0Xyh-KwFutJLS9Xgghyw-LD9kPKcE_xbbJ9Y4Rqajh7WdPYuB0Jd9DPVrslmzK-F6cgHHYoZEv0SvLQi-PO0rpDrcjOEQQ
- MTC 웹 콘솔에 로그인합니다.
- MTC 웹 콘솔에서 클러스터를 클릭합니다.
- 클러스터 추가를 클릭합니다.
다음 필드를 작성합니다.
-
클러스터 이름: 클러스터 이름은 소문자(
a-z
)와 숫자(0-9
)를 포함할 수 있습니다. 공백이나 국제 문자를 포함해서는 안 됩니다. -
URL: API 서버 URL을 지정합니다(예:
https://<www.example.com>:8443
). -
서비스 계정 토큰:
migration-controller
서비스 계정 토큰을 붙여넣습니다. 이미지 레지스트리로 노출된 경로 호스트: 직접 이미지 마이그레이션을 사용하는 경우 소스 클러스터의 이미지 레지스트리에 노출된 경로를 지정합니다.
다음 명령을 실행하여 라우트를 생성합니다.
OpenShift Container Platform 3의 경우:
$ oc create route passthrough --service=docker-registry --port=5000 -n default
OpenShift Container Platform 4의 경우:
$ oc create route passthrough --service=image-registry --port=5000 -n openshift-image-registry
Azure 클러스터: Azure 스냅샷을 사용하여 데이터를 복사하는 경우 이 옵션을 선택해야 합니다.
Azure 리소스 그룹:이 필드는 Azure 클러스터가 선택된 경우에 표시됩니다. Azure 리소스 그룹을 지정합니다.
Microsoft Azure에서 OpenShift Container Platform 클러스터가 생성되면 클러스터와 연결된 모든 리소스를 포함하도록 Azure 리소스 그룹이 생성됩니다. Azure CLI에서는 다음 명령을 실행하여 모든 리소스 그룹을 표시할 수 있습니다.
$ az group list
OpenShift Container Platform 클러스터와 연결된
ResourceGroups
는 태그가 지정됩니다. 여기서sample-rg-name
은 UI를 추출하고 제공하는 값입니다.{ "id": "/subscriptions/...//resourceGroups/sample-rg-name", "location": "centralus", "name": "...", "properties": { "provisioningState": "Succeeded" }, "tags": { "kubernetes.io_cluster.sample-ld57c": "owned", "openshift_creationDate": "2019-10-25T23:28:57.988208+00:00" }, "type": "Microsoft.Resources/resourceGroups" },
이 정보는 리소스 그룹 블레이드의 Azure 포털에서 도 사용할 수 있습니다.
- SSL 확인 필요 : 선택 사항: 클러스터에 대한 SSL(Secure Socket Layer) 연결을 확인하려면 이 옵션을 선택합니다.
- CA 번들 파일: SSL 확인 필요가 선택되어 있으면 이 필드가 표시됩니다. 자체 서명된 인증서에 대한 사용자 정의 CA 인증서 번들 파일을 생성한 경우 찾아보기를 클릭하고 CA 번들 파일을 선택하여 업로드합니다.
-
클러스터 이름: 클러스터 이름은 소문자(
클러스터 추가를 클릭합니다.
클러스터가 클러스터 목록에 나타납니다.
9.2.3. MTC 웹 콘솔에 복제 리포지토리 추가
MTC(Migration Toolkit for Containers) 웹 콘솔에 복제 리포지토리로 오브젝트 스토리지를 추가할 수 있습니다.
MTC는 다음과 같은 스토리지 제공자를 지원합니다.
- AWS(Amazon Web Services) S3
- MCG(Multi-Cloud Object Gateway)
- 일반 S3 오브젝트 스토리지(예: Minio 또는 Ceph S3)
- GCP(Google Cloud Provider)
- Microsoft Azure Blob
사전 요구 사항
- 복제 리포지토리로 오브젝트 스토리지를 구성해야 합니다.
프로세스
- MTC 웹 콘솔에서 복제 리포지토리를 클릭합니다.
- 리포지토리 추가를 클릭합니다.
스토리지 공급자 유형을 선택하고 다음 필드를 작성합니다.
AWS 및 MCG를 포함한 S3 공급자용 AWS:
- 복제 리포지토리 이름: MTC 웹 콘솔에서 복제 리포지토리 이름을 지정합니다.
- S3 버킷 이름: S3 버킷의 이름을 지정합니다.
- S3 버킷 영역: S3 버킷 영역을 지정합니다. AWS S3의 경우 필수입니다. 일부 S3 공급자의 경우 선택 사항입니다. S3 공급자의 제품 문서에서 예상되는 값을 확인합니다.
-
S3 끝점: 버킷이 아닌 S3 서비스의 URL을 지정합니다(예:
https://<s3-storage.apps.cluster.com>)
. 일반 S3 공급자의 경우 필수입니다.https://
접두사를 사용해야 합니다. -
S3 공급자 액세스 키: AWS의 경우
<AWS_SECRET_ACCESS_KEY>
또는 MCG 및 기타 S3 공급자의 경우 S3 공급자 액세스 키를 지정합니다. -
S3 공급자 보안 액세스 키: AWS의 경우
<AWS_ACCESS_KEY_ID>
또는 MCG 및 기타 S3 공급자의 경우 S3 공급자 보안 액세스 키를 지정합니다. - SSL 확인 필요: 일반 S3 공급자를 사용하는 경우 이 확인란을 지웁니다.
- 자체 서명된 인증서에 대한 사용자 정의 CA 인증서 번들 파일을 생성한 경우 검색을 클릭하고 Base64로 인코딩된 파일을 검색합니다.
GCP:
- 복제 리포지토리 이름: MTC 웹 콘솔에서 복제 리포지토리 이름을 지정합니다.
- GCP 버킷 이름: GCP 버킷의 이름을 지정합니다.
-
GCP 자격 증명 JSON blob:
credentials-velero
파일에서 문자열을 지정합니다.
Azure:
- 복제 리포지토리 이름: MTC 웹 콘솔에서 복제 리포지토리 이름을 지정합니다.
- Azure 리소스 그룹: Azure Blob 스토리지의 리소스 그룹을 지정합니다.
- Azure 스토리지 계정 이름: Azure Blob 스토리지 계정 이름을 지정합니다.
-
Azure 자격 증명 - INI 파일 콘텐츠:
credentials=velero
파일에서 문자열을 지정합니다.
- 리포지토리 추가를 클릭하고 연결 유효성 검사를 기다립니다.
닫기를 클릭합니다.
새 리포지토리가 복제 리포지토리 목록에 나타납니다.
9.2.4. MTC 웹 콘솔에서 마이그레이션 계획 생성
MTC(Migration Toolkit for Containers) 웹 콘솔에서 마이그레이션 계획을 생성할 수 있습니다.
사전 요구 사항
-
모든 클러스터에서
cluster-admin
권한이 있는 사용자로 로그인합니다. - 동일한 MTC 버전이 모든 클러스터에 설치되어 있는지 확인해야 합니다.
- MTC 웹 콘솔에 클러스터와 복제 리포지토리를 추가해야 합니다.
- 이동 데이터 복사 방법을 사용하여 PV(영구 볼륨)를 마이그레이션하려면 소스 및 대상 클러스터에 원격 볼륨에 대한 중단되지 않은 네트워크 액세스가 있어야 합니다.
-
직접 이미지 마이그레이션을 사용하려면 소스 클러스터의 이미지 레지스트리에 노출된 경로를 지정해야 합니다. MTC 웹 콘솔을 사용하거나
MigCluster
사용자 정의 리소스 매니페스트를 업데이트하여 수행할 수 있습니다.
프로세스
- MTC 웹 콘솔에서 마이그레이션 계획을 클릭합니다.
- 마이그레이션 계획 추가를 클릭합니다.
계획 이름을 입력합니다.
마이그레이션 계획 이름에서 253자의 소문자 영숫자(
a-z, 0-9
)를 초과해서는 안 되며 공백이나 밑줄(_
)을 포함해서는 안 됩니다.- 소스 클러스터, 대상 클러스터, 리포지토리를 선택합니다.
- 다음을 클릭합니다.
- 마이그레이션할 프로젝트를 선택합니다.
- 선택 사항: 프로젝트 옆에 있는 편집 아이콘을 클릭하여 대상 네임스페이스를 변경합니다.
- 다음을 클릭합니다.
각 PV의 마이그레이션 유형을 선택합니다.
- 복사 옵션은 소스 클러스터의 PV에 있는 데이터를 복제 리포지토리에 복사한 다음 대상 클러스터에서 비슷한 특성을 가진 새로 생성된 PV에 데이터를 복원합니다.
- 이동 옵션은 소스 클러스터에서 원격 볼륨(예: NFS)을 마운트 해제하고 원격 볼륨을 가리키는 대상 클러스터에 PV 리소스를 생성한 다음 대상 클러스터에 원격 볼륨을 마운트합니다. 대상 클러스터에서 실행되는 애플리케이션은 소스 클러스터와 동일한 원격 볼륨을 사용합니다.
- 다음을 클릭합니다.
각 PV의 복사 방법을 선택합니다.
- 스냅샷 복사는 클라우드 공급자의 스냅샷 기능을 사용하여 데이터를 백업 및 복원합니다. 파일 시스템 복사.보다 훨씬 빠릅니다.
파일 시스템 복사는 소스 클러스터에서 파일을 백업하고 대상 클러스터에서 해당 파일을 복원합니다.
직접 볼륨 마이그레이션에는 파일 시스템 복사 방법이 필요합니다.
- 복사 확인을 선택하여 파일 시스템 복사로 마이그레이션된 데이터를 확인할 수 있습니다. 데이터는 각 소스 파일에 대한 체크섬을 생성하고 복원 후 체크섬을 확인합니다. 데이터 확인으로 성능이 크게 저하합니다.
대상 스토리지 클래스를 선택합니다.
파일 시스템 복사를 선택한 경우 대상 스토리지 클래스를 변경할 수 있습니다.
- 다음을 클릭합니다.
마이그레이션 옵션 페이지에서 소스 클러스터에 대해 노출된 이미지 레지스트리 경로를 지정한 경우 직접 이미지 마이그레이션 옵션이 선택됩니다. 파일 시스템 복사로 데이터를 마이그레이션하는 경우 직접 PV 마이그레이션 옵션이 선택됩니다.
직접 마이그레이션 옵션은 소스 클러스터에서 대상 클러스터로 직접 이미지 및 파일을 복사합니다. 이 옵션은 소스 클러스터에서 복제 리포지토리로 이미지 및 파일을 복사한 다음 복제 리포지토리에서 대상 클러스터로 복사합니다.
- 다음을 클릭합니다.
선택 사항: 후크 추가를 클릭하여 마이그레이션 계획에 후크를 추가합니다.
후크는 사용자 지정 코드를 실행합니다. 단일 마이그레이션 계획에 최대 4개의 후크를 추가할 수 있습니다. 각 후크는 다른 마이그레이션 단계에서 실행됩니다.
- 웹 콘솔에 표시할 후크 이름을 입력합니다.
- 후크가 Ansible 플레이북인 경우 Ansible 플레이북을 선택하고 찾아보기를 클릭하여 플레이북을 업로드하거나 필드에 플레이북 콘텐츠를 붙여넣습니다.
- 선택 사항: 기본 후크 이미지를 사용하지 않는 경우 Ansible 런타임 이미지를 지정합니다.
후크가 Ansible 플레이북이 아닌 경우 사용자 정의 컨테이너 이미지를 선택하고 이미지 이름과 경로를 지정합니다.
사용자 정의 컨테이너 이미지에는 Ansible 플레이북이 포함될 수 있습니다.
- 소스 클러스터 또는 대상 클러스터를 선택합니다.
- 서비스 계정 이름과 서비스 계정 네임스페이스를 입력합니다.
후크의 마이그레이션 단계를 선택합니다.
- 사전 백업: 소스 클러스터에서 애플리케이션 워크로드를 백업하기 전에
- 백업 후: 소스 클러스터에서 애플리케이션 워크로드를 백업한 후
- 사전 복원: 대상 클러스터에서 애플리케이션 워크로드를 복원하기 전에
- 복원 후: 대상 클러스터에서 애플리케이션 워크로드를 복원한 후
- 추가를 클릭합니다.
완료를 클릭합니다.
마이그레이션 계획이 마이그레이션 계획 목록에 표시됩니다.
영구 볼륨 복사 방법에 대한 추가 리소스
9.2.5. MTC 웹 콘솔에서 마이그레이션 계획 실행
MTC(Migration Toolkit for Containers) 웹 콘솔에서 생성한 마이그레이션 계획을 사용하여 애플리케이션 및 데이터를 마이그레이션할 수 있습니다.
마이그레이션 프로세스 중에 MTC는 마이그레이션된 PV(영구 볼륨)의 회수 정책을 대상 클러스터에서 Retain
으로 설정합니다.
Backup
사용자 정의 리소스에는 원래 회수 정책을 나타내는 PVOriginalReclaimPolicy
주석이 포함되어 있습니다. 마이그레이션된 PV의 회수 정책을 수동으로 복원할 수 있습니다.
사전 요구 사항
MTC 웹 콘솔에는 다음이 포함되어야 합니다.
-
Ready
상태의 소스 클러스터 -
Ready
상태의 대상 클러스터 - 복제 리포지토리
- 유효한 마이그레이션 계획
프로세스
- MTC 웹 콘솔에 로그인하고 마이그레이션 계획을 클릭합니다.
마이그레이션 계획 옆에 있는 옵션 메뉴를 클릭하고 마이그레이션에서 다음 옵션 중 하나를 선택합니다.
- 스테이지에서는 애플리케이션을 중지하지 않고 소스 클러스터에서 대상 클러스터로 데이터를 복사합니다.
컷오버는 소스 클러스터에서 트랜잭션을 중지하고 리소스를 대상 클러스터로 이동합니다.
선택 사항: 컷오버 마이그레이션 대화 상자에서 마이그레이션 중 소스 클러스터에서 트랜잭션 중지 확인란의 선택을 취소할 수 있습니다.
상태 복사는 선택한 PVC(영구 볼륨 클레임)를 복사합니다.
중요클러스터 간에 네임스페이스를 마이그레이션하는 데 상태 마이그레이션을 사용하지 마십시오. 대신 스테이지 또는 컷오버 마이그레이션을 사용합니다.
- 상태 마이그레이션 대화 상자에서 하나 이상의 PVC를 선택하고 마이그레이션을 클릭합니다.
마이그레이션이 완료되면 OpenShift Container Platform 웹 콘솔에서 애플리케이션이 성공적으로 마이그레이션되었는지 확인합니다.
-
홈
프로젝트를 클릭합니다. - 마이그레이션된 프로젝트를 클릭하여 상태를 봅니다.
- 경로 섹션에서 위치를 클릭하여 해당되는 경우 애플리케이션이 작동하는지 확인합니다.
-
워크로드
포드를 클릭하여 포드가 마이그레이션된 네임스페이스에서 실행 중인지 확인합니다. -
스토리지
영구 볼륨을 클릭하여 마이그레이션된 영구 볼륨이 올바르게 프로비저닝되었는지 확인합니다.
-
홈