7.5. 복제 리포지토리 구성
복제 리포지토리로 사용할 오브젝트 스토리지를 구성해야 합니다. MTC(Migration Toolkit for Containers)는 소스 클러스터에서 복제 리포지토리로 데이터를 복사한 다음 복제 리포지토리에서 대상 클러스터로 데이터를 복사합니다. MCG(Multi-Cloud Object Gateway)는 제한된 네트워크 환경에 지원되는 유일한 옵션입니다.
MTC는 소스 클러스터에서 대상 클러스터로 데이터를 마이그레이션하기 위한 파일 시스템 및 스냅샷 데이터 복사 방법을 지원합니다. 환경에 적합하고 스토리지 공급자가 지원하는 방법을 선택할 수 있습니다.
7.5.1. 사전 요구 사항
- 모든 클러스터에는 복제 리포지토리에 대한 중단없는 네트워크 액세스 권한이 있어야 합니다.
- 내부 호스팅 복제 리포지토리와 함께 프록시 서버를 사용하는 경우 프록시가 복제 리포지토리에 액세스할 수 있는지 확인해야 합니다.
7.5.2. MCG(Multi-Cloud Object Gateway) 구성
OpenShift Container Storage Operator를 설치하고 MCG(Multi-Cloud Object Gateway) 스토리지 버킷을 MTC(Migration Toolkit for Containers)의 복제 리포지토리로 구성할 수 있습니다.
7.5.2.1. OpenShift Container Storage Operator 설치
OperatorHub에서 OpenShift Container Storage Operator를 설치할 수 있습니다.
자세한 내용은 Red Hat OpenShift Container Storage의 연결이 끊긴 환경: 배포 계획을 참조하십시오.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링(이 경우 OCS)을 사용하여 OpenShift Container Storage Operator를 찾습니다.
- OpenShift Container Storage Operator를 선택하고 설치를 클릭합니다.
- 업데이트 채널, 설치 모드 및 승인 전략을 선택합니다.
설치를 클릭합니다.
설치된 운영자 페이지에서 OpenShift Container Storage Operator가 openshift-storage 프로젝트에 Succeeded 상태로 나타납니다.
7.5.2.2. Multi-Cloud Object Gateway 스토리지 버킷 작성
MCG(Multi-Cloud Object Gateway) 스토리지 버킷의 사용자 정의 리소스(CR)를 생성할 수 있습니다.
프로세스
OpenShift Container Platform 클러스터에 로그인합니다.
$ oc login -u <username>
다음과 같은 내용과 함께
NooBaa
CR 구성 파일,noobaa.yml
을 생성합니다.apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: <noobaa> namespace: openshift-storage spec: dbResources: requests: cpu: 0.5 1 memory: 1Gi coreResources: requests: cpu: 0.5 2 memory: 1Gi
NooBaa
오브젝트를 생성합니다.$ oc create -f noobaa.yml
다음과 같은 내용과 함께
BackingStore
CR 구성 파일bs.yml
을 생성합니다.apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <mcg_backing_store> namespace: openshift-storage spec: pvPool: numVolumes: 3 1 resources: requests: storage: <volume_size> 2 storageClass: <storage_class> 3 type: pv-pool
BackingStore
오브젝트를 생성합니다.$ oc create -f bs.yml
다음과 같은 내용으로
BucketClass
CR 구성 파일,bc.yml
을 생성합니다.apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <mcg_bucket_class> namespace: openshift-storage spec: placementPolicy: tiers: - backingStores: - <mcg_backing_store> placement: Spread
BucketClass
오브젝트를 생성합니다.$ oc create -f bc.yml
다음과 같은 내용과 함께
ObjectBucketClaim
CR 구성 파일,obc.yml
을 생성합니다.apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <bucket> namespace: openshift-storage spec: bucketName: <bucket> 1 storageClassName: <storage_class> additionalConfig: bucketclass: <mcg_bucket_class>
- 1
- MTC 웹 콘솔에 복제 리포지토리를 추가하기 위한 버킷 이름을 기록합니다.
ObjectBucketClaim
오브젝트를 생성합니다.$ oc create -f obc.yml
리소스 생성 프로세스를 보고
ObjectBucketClaim
상태가Bound
인지 확인합니다.$ watch -n 30 'oc get -n openshift-storage objectbucketclaim migstorage -o yaml'
이 프로세스는 5-10분 정도 걸릴 수 있습니다.
MTC 웹 콘솔에 복제 리포지토리를 추가할 때 필요한 다음 값을 확보하고 기록합니다.
S3 끝점:
$ oc get route -n openshift-storage s3
S3 공급자 액세스 키:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decode
S3 공급자 보안 액세스 키:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode