3.5.4. 더 이상 사용되지 않는 API 업데이트
소스 클러스터에서 더 이상 사용되지 않는 API를 사용하는 경우 MTC(Migration Toolkit for Containers) 웹 콘솔에서 마이그레이션 계획을 생성할 때 다음 경고 메시지가 표시됩니다.
Some namespaces contain GVKs incompatible with destination cluster
세부 사항 보기를 클릭하여 네임스페이스 및 호환되지 않는 API를 볼 수 있습니다. 이 경고 메시지는 마이그레이션을 차단하지 않습니다.
MTC(Migration Toolkit for Containers)를 사용하여 마이그레이션하는 동안 더 이상 사용되지 않는 API는 Kubernetes 오브젝트의 Velero
Backup #1에 저장됩니다. Velero
Backup을 다운로드하고, 더 이상 사용되지 않는 API yaml
파일을 추출한 후 oc convert
명령으로 업데이트할 수 있습니다. 그런 다음 대상 클러스터에서 업데이트된 API를 생성할 수 있습니다.
프로세스
- 마이그레이션 계획을 실행합니다.
MigPlan
사용자 정의 리소스 (CR)를 확인합니다.$ oc describe migplan <migplan_name> -n openshift-migration 1
- 1
MigPlan
CR의 이름을 지정합니다.
출력은 다음과 유사합니다.
metadata: ... uid: 79509e05-61d6-11e9-bc55-02ce4781844a 1 status: ... conditions: - category: Warn lastTransitionTime: 2020-04-30T17:16:23Z message: 'Some namespaces contain GVKs incompatible with destination cluster. See: `incompatibleNamespaces` for details' status: "True" type: GVKsIncompatible incompatibleNamespaces: - gvks: 2 - group: batch kind: cronjobs version: v2alpha1 - group: batch kind: scheduledjobs version: v2alpha1
MigPlan
UID와 관련된MigMigration
이름을 가져옵니다.$ oc get migmigration -o json | jq -r '.items[] | select(.metadata.ownerReferences[].uid=="<migplan_uid>") | .metadata.name' 1
- 1
MigPlan
CR UID를 지정합니다.
MigMigration
이름과 연관된MigMigration
UID를 가져옵니다.$ oc get migmigration <migmigration_name> -o jsonpath='{.metadata.uid}' 1
- 1
MigMigration
이름을 지정합니다.
MigMigration
UID와 관련된Velero
Backup 이름을 가져옵니다.$ oc get backup.velero.io --selector migration-initial-backup="<migmigration_uid>" -o jsonpath={.items[*].metadata.name} 1
- 1
MigMigration
UID를 지정합니다.
스토리지 공급자의 명령을 실행하여
Velero
Backup의 콘텐츠를 로컬 머신으로 다운로드합니다.AWS S3:
$ aws s3 cp s3://<bucket_name>/velero/backups/<backup_name> <backup_local_dir> --recursive 1
- 1
- 버킷, 백업 이름 및 로컬 백업 디렉터리 이름을 지정합니다.
GCP:
$ gsutil cp gs://<bucket_name>/velero/backups/<backup_name> <backup_local_dir> --recursive 1
- 1
- 버킷, 백업 이름 및 로컬 백업 디렉터리 이름을 지정합니다.
Azure:
$ azcopy copy 'https://velerobackups.blob.core.windows.net/velero/backups/<backup_name>' '<backup_local_dir>' --recursive 1
- 1
- 백업 이름과 로컬 백업 디렉터리 이름을 지정합니다.
Velero
Backup 아카이브 파일을 추출합니다.$ tar -xfv <backup_local_dir>/<backup_name>.tar.gz -C <backup_local_dir>
더 이상 사용되지 않는 각 API의 오프라인 모드에서
oc convert
를 실행합니다.$ oc convert -f <backup_local_dir>/resources/<gvk>.json
대상 클러스터에서 변환된 API를 생성합니다.
$ oc create -f <gvk>.json