4.8. IBM Cloud를 사용하여 OADP 구성
4.8.1. IBM Cloud를 사용하여 OpenShift API for Data Protection 구성 링크 복사링크가 클립보드에 복사되었습니다!
IBM Cloud 클러스터에 OpenShift API for Data Protection(OADP) Operator를 설치하여 클러스터에서 애플리케이션을 백업 및 복원합니다. 백업을 저장하도록 IBM Cloud Object Storage(COS)를 구성합니다.
4.8.1.1. COS 인스턴스 구성 링크 복사링크가 클립보드에 복사되었습니다!
OADP 백업 데이터를 저장하기 위해 IBM COS(Cloud Object Storage) 인스턴스를 생성합니다. COS 인스턴스를 생성한 후 HMAC
서비스 자격 증명을 구성합니다.
사전 요구 사항
- IBM Cloud Platform 계정이 있습니다.
- IBM Cloud CLI 를 설치했습니다.
- IBM Cloud에 로그인되어 있습니다.
절차
다음 명령을 실행하여 IBM Cloud Object Storage(COS) 플러그인을 설치합니다.
ibmcloud plugin install cos -f
$ ibmcloud plugin install cos -f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 버킷 이름을 설정합니다.
BUCKET=<bucket_name>
$ BUCKET=<bucket_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 버킷 리전을 설정합니다.
REGION=<bucket_region>
$ REGION=<bucket_region>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 버킷 리전을 지정합니다(예:
eu-gb
).
다음 명령을 실행하여 리소스 그룹을 생성합니다.
ibmcloud resource group-create <resource_group_name>
$ ibmcloud resource group-create <resource_group_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 대상 리소스 그룹을 설정합니다.
ibmcloud target -g <resource_group_name>
$ ibmcloud target -g <resource_group_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 대상 리소스 그룹이 올바르게 설정되었는지 확인합니다.
ibmcloud target
$ ibmcloud target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
API endpoint: https://cloud.ibm.com Region: User: test-user Account: Test Account (fb6......e95) <-> 2...122 Resource group: Default
API endpoint: https://cloud.ibm.com Region: User: test-user Account: Test Account (fb6......e95) <-> 2...122 Resource group: Default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제 출력에서 리소스 그룹은
Default
로 설정됩니다.다음 명령을 실행하여 리소스 그룹 이름을 설정합니다.
RESOURCE_GROUP=<resource_group>
$ RESOURCE_GROUP=<resource_group>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 리소스 그룹 이름을 지정합니다(예:
"default"
).
다음 명령을 실행하여 IBM Cloud
service-instance
리소스를 생성합니다.ibmcloud resource service-instance-create \ <service_instance_name> \ <service_name> \ <service_plan> \ <region_name>
$ ibmcloud resource service-instance-create \ <service_instance_name> \
1 <service_name> \
2 <service_plan> \
3 <region_name>
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
ibmcloud resource service-instance-create test-service-instance cloud-object-storage \ standard \ global \ -d premium-global-deployment
$ ibmcloud resource service-instance-create test-service-instance cloud-object-storage \
1 standard \ global \ -d premium-global-deployment
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 서비스 인스턴스 ID를 추출합니다.
SERVICE_INSTANCE_ID=$(ibmcloud resource service-instance test-service-instance --output json | jq -r '.[0].id')
$ SERVICE_INSTANCE_ID=$(ibmcloud resource service-instance test-service-instance --output json | jq -r '.[0].id')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 COS 버킷을 생성합니다.
ibmcloud cos bucket-create \//
$ ibmcloud cos bucket-create \// --bucket $BUCKET \// --ibm-service-instance-id $SERVICE_INSTANCE_ID \// --region $REGION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $BUCKET
,$SERVICE_INSTANCE_ID
및$REGION
과 같은 변수는 이전에 설정한 값으로 교체됩니다.다음 명령을 실행하여
HMAC
자격 증명을 만듭니다.ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance --parameters {\"HMAC\":true}
$ ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance --parameters {\"HMAC\":true}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HMAC
인증 정보에서 액세스 키 ID와 시크릿 액세스 키를 추출하여credentials-velero
파일에 저장합니다.credentials-velero
파일을 사용하여 백업 스토리지 위치에 대한시크릿을
생성할 수 있습니다. 다음 명령을 실행합니다.cat > credentials-velero << __EOF__ [default] aws_access_key_id=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.access_key_id') aws_secret_access_key=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.secret_access_key') __EOF__
$ cat > credentials-velero << __EOF__ [default] aws_access_key_id=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.access_key_id') aws_secret_access_key=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.secret_access_key') __EOF__
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.2. 기본 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
절차
-
클라우드 공급자에 적절한 형식으로 백업 스토리지 위치에 대한
credentials-velero
파일을 생성합니다. 기본 이름으로
Secret
CR(사용자 정의 리소스)을 생성합니다.oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.8.1.3. 다른 인증 정보의 보안 생성 링크 복사링크가 클립보드에 복사되었습니다!
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 지정 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
스냅샷 위치
보안
(기본값:cloud-credentials
)입니다. 이보안은
DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자의 적절한 형식으로 스냅샷 위치에 대한
credentials-velero
파일을 생성합니다. 기본 이름으로 스냅샷 위치에 대한 보안을 생성합니다.
oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
오브젝트 스토리지에 적합한 형식으로 백업 위치에 대한
credentials-velero
파일을 생성합니다. 사용자 지정 이름으로 백업 위치에 대한 보안을 생성합니다.
oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제와 같이 사용자 지정 이름으로
Secret
을DataProtectionApplication
CR에 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 사용자 지정 이름으로 백업 위치 보안.
4.8.1.4. 데이터 보호 애플리케이션 설치 링크 복사링크가 클립보드에 복사되었습니다!
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials
를 사용하여 보안을 생성해야 합니다.참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을 사용하여 기본Secret
을 생성할 수 있습니다. 기본Secret
이 없는 경우 설치가 실패합니다.
절차
-
Operators
설치된 Operators 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 의 경우 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IBM Cloud를 백업 스토리지 위치로 사용하는 경우 공급자가
aws
입니다. - 2
- IBM Cloud Object Storage(COS) 버킷 이름을 지정합니다.
- 3
- COS 리전 이름을 지정합니다(예:
eu-gb
). - 4
- COS 버킷의 S3 URL을 지정합니다. 예:
http://s3.eu-gb.cloud-object-storage.appdomain.cloud
. 여기서eu-gb
는 지역 이름입니다. 버킷 리전에 따라 지역 이름을 바꿉니다. - 5
- 액세스 키와
HMAC
인증 정보의 시크릿 액세스 키를 사용하여 생성한 시크릿의 이름을 정의합니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
oc get all -n openshift-adp
$ oc get all -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.5. Velero CPU 및 메모리 리소스 할당 설정 링크 복사링크가 클립보드에 복사되었습니다!
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
4.8.1.6. 노드 에이전트 및 노드 라벨 구성 링크 복사링크가 클립보드에 복사되었습니다!
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
4.8.1.7. 클라이언트 버스트 및 QPS 설정으로 DPA 구성 링크 복사링크가 클립보드에 복사되었습니다!
버스트 설정은 제한을 적용하기 전에 velero
서버로 보낼 수 있는 요청 수를 결정합니다. 버스트 제한에 도달한 후 초당 쿼리(QPS) 설정에 따라 초당 전송할 수 있는 추가 요청 수를 결정합니다.
버스트 및 QPS 값으로 DPA(Data Protection Application)를 구성하여 velero
서버의 버스트 및 QPS 값을 설정할 수 있습니다. DPA의 dpa.configuration.velero.client-burst
및 dpa.configuration.velero.client-qps
필드를 사용하여 burst 및 QPS 값을 설정할 수 있습니다.
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
4.8.1.8. 두 개 이상의 BSL로 DPA 구성 링크 복사링크가 클립보드에 복사되었습니다!
DPA를 두 개 이상의 BSL로 구성하고 클라우드 공급자가 제공하는 자격 증명을 지정할 수 있습니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 클라우드 공급자가 제공하는 인증 정보를 사용하여 시크릿을 생성해야 합니다.
절차
두 개 이상의 BSL로 DPA를 구성합니다. 다음 예제를 참조하십시오.
DPA 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 첫 번째 BSL의 이름을 지정합니다.
- 2
- 이 매개 변수는 이 BSL이 기본 BSL임을 나타냅니다.
Backup CR
에 BSL이 설정되지 않은 경우 기본 BSL이 사용됩니다. 하나의 BSL만 기본값으로 설정할 수 있습니다. - 3
- 버킷 이름을 지정합니다.
- 4
- Velero 백업의 접두사를 지정합니다(예:
velero
). - 5
- 버킷의 AWS 리전을 지정합니다.
- 6
- 생성한 기본
Secret
오브젝트의 이름을 지정합니다. - 7
- 두 번째 BSL의 이름을 지정합니다.
- 8
- S3 끝점의 URL을 지정합니다.
- 9
시크릿
의 올바른 이름을 지정합니다(예:custom_secret_name_odf
).Secret
이름을 지정하지 않으면 기본 이름이 사용됩니다.
백업 CR에 사용할 BSL을 지정합니다. 다음 예제를 참조하십시오.
백업 CR의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.9. DataProtectionApplication에서 노드 에이전트 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CRCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CRCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.