4.5. OADP 사용 사례


4.5.1. 데이터 보호 및 {odf-first}용 OpenShift API를 사용한 백업

다음은 애플리케이션을 백업하기 위해 OADP 및 {odf-short}을 사용하는 사용 사례입니다.

4.5.1.1. OADP 및 {odf-short}을 사용하여 애플리케이션 백업

이 사용 사례에서는 OADP를 사용하여 애플리케이션을 백업하고 {odf-first}에서 제공하는 오브젝트 스토리지에 백업을 저장합니다.

  • OBC(오브젝트 버킷 클레임)를 생성하여 백업 스토리지 위치를 구성합니다. {odf-short}을 사용하여 Amazon S3 호환 오브젝트 스토리지 버킷을 구성합니다. {odf-short}은 MultiCloud Object Gateway(NooBaa MCG) 및 Ceph Object Gateway(RGW), 개체 스토리지 서비스라고도 합니다. 이 사용 사례에서는 NooBaa MCG를 백업 스토리지 위치로 사용합니다.
  • aws 공급자 플러그인을 사용하여 OADP와 함께 NooBaa MCG 서비스를 사용합니다.
  • BPA(데이터 보호 애플리케이션)를 백업 스토리지 위치(BSL)로 구성합니다.
  • 백업 CR(사용자 정의 리소스)을 생성하고 백업할 애플리케이션 네임스페이스를 지정합니다.
  • 백업을 생성하고 확인합니다.

사전 요구 사항

  • OADP Operator가 설치되어 있습니다.
  • {odf-short} Operator를 설치했습니다.
  • 별도의 네임스페이스에서 실행 중인 데이터베이스가 있는 애플리케이션이 있습니다.

절차

  1. 다음 예와 같이 OBC 매니페스트 파일을 생성하여 NooBaa MCG 버킷을 요청합니다.

    OBC의 예

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: test-obc 
    1
    
      namespace: openshift-adp
    spec:
      storageClassName: openshift-storage.noobaa.io
      generateBucketName: test-backup-bucket 
    2
    Copy to Clipboard Toggle word wrap

    1
    오브젝트 버킷 클레임의 이름입니다.
    2
    버킷의 이름입니다.
  2. 다음 명령을 실행하여 OBC를 생성합니다.

    $ oc create -f <obc_file_name> 
    1
    Copy to Clipboard Toggle word wrap
    1
    오브젝트 버킷 클레임 매니페스트의 파일 이름을 지정합니다.
  3. OBC를 생성할 때 {odf-short}은 오브젝트 버킷 클레임과 동일한 이름의 시크릿구성 맵 을 생성합니다. 시크릿에 는 버킷 인증 정보가 있으며 구성 맵에 는 버킷에 액세스하는 데 필요한 정보가 있습니다. 생성된 구성 맵에서 버킷 이름과 버킷 호스트를 가져오려면 다음 명령을 실행합니다.

    $ oc extract --to=- cm/test-obc 
    1
    Copy to Clipboard Toggle word wrap
    1
    test-obc 는 OBC의 이름입니다.

    출력 예

    # BUCKET_NAME
    backup-c20...41fd
    # BUCKET_PORT
    443
    # BUCKET_REGION
    
    # BUCKET_SUBREGION
    
    # BUCKET_HOST
    s3.openshift-storage.svc
    Copy to Clipboard Toggle word wrap

  4. 생성된 보안 에서 버킷 인증 정보를 가져오려면 다음 명령을 실행합니다.

    $ oc extract --to=- secret/test-obc
    Copy to Clipboard Toggle word wrap

    출력 예

    # AWS_ACCESS_KEY_ID
    ebYR....xLNMc
    # AWS_SECRET_ACCESS_KEY
    YXf...+NaCkdyC3QPym
    Copy to Clipboard Toggle word wrap

  5. 다음 명령을 실행하여 openshift-storage 네임스페이스의 s3 경로에서 S3 끝점의 공용 URL을 가져옵니다.

    $ oc get route s3 -n openshift-storage
    Copy to Clipboard Toggle word wrap
  6. 다음 명령에 표시된 대로 오브젝트 버킷 인증 정보를 사용하여 cloud-credentials 파일을 만듭니다.

    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
    Copy to Clipboard Toggle word wrap
  7. 다음 명령에 표시된 대로 cloud-credentials 파일 콘텐츠를 사용하여 cloud-credentials 시크릿을 생성합니다.

    $ oc create secret generic \
      cloud-credentials \
      -n openshift-adp \
      --from-file cloud=cloud-credentials
    Copy to Clipboard Toggle word wrap
  8. 다음 예와 같이 DPA(Data Protection Application)를 구성합니다.

    DPA 예

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: oadp-backup
      namespace: openshift-adp
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - aws
            - openshift
            - csi
          defaultSnapshotMoveData: true 
    1
    
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: noobaa
              s3Url: https://s3.openshift-storage.svc 
    2
    
              s3ForcePathStyle: "true"
              insecureSkipTLSVerify: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name:  cloud-credentials
            objectStorage:
              bucket: <bucket_name> 
    3
    
              prefix: oadp
    Copy to Clipboard Toggle word wrap

    1
    OADP Data Mover를 사용하여 CSI(Container Storage Interface) 스냅샷을 원격 오브젝트 스토리지로 이동하려면 true로 설정합니다.
    2
    {odf-short} 스토리지의 S3 URL입니다.
    3
    버킷 이름을 지정합니다.
  9. 다음 명령을 실행하여 DPA를 생성합니다.

    $ oc apply -f <dpa_filename>
    Copy to Clipboard Toggle word wrap
  10. 다음 명령을 실행하여 DPA가 성공적으로 생성되었는지 확인합니다. 예제 출력에서 status 오브젝트에 type 필드가 Reconciled 으로 설정되어 있음을 확인할 수 있습니다. 즉, DPA가 성공적으로 생성됩니다.

    $ oc get dpa -o yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    apiVersion: v1
    items:
    - apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        namespace: openshift-adp
        #...#
      spec:
        backupLocations:
        - velero:
            config:
              #...#
      status:
        conditions:
        - lastTransitionTime: "20....9:54:02Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    kind: List
    metadata:
      resourceVersion: ""
    Copy to Clipboard Toggle word wrap

  11. 다음 명령을 실행하여 백업 스토리지 위치(BSL)를 사용할 수 있는지 확인합니다.

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME           PHASE       LAST VALIDATED   AGE   DEFAULT
    dpa-sample-1   Available   3s               15s   true
    Copy to Clipboard Toggle word wrap

  12. 다음 예와 같이 백업 CR을 구성합니다.

    백업 CR 예시

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: test-backup
      namespace: openshift-adp
    spec:
      includedNamespaces:
      - <application_namespace> 
    1
    Copy to Clipboard Toggle word wrap

    1
    애플리케이션을 백업할 네임스페이스를 지정합니다.
  13. 다음 명령을 실행하여 백업 CR을 만듭니다.

    $ oc apply -f <backup_cr_filename>
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 백업 오브젝트가 Completed 단계에 있는지 확인합니다. 자세한 내용은 예제 출력을 참조하십시오.

    $ oc describe backup test-backup -n openshift-adp
    Copy to Clipboard Toggle word wrap

    출력 예

    Name:         test-backup
    Namespace:    openshift-adp
    # ....#
    Status:
      Backup Item Operations Attempted:  1
      Backup Item Operations Completed:  1
      Completion Timestamp:              2024-09-25T10:17:01Z
      Expiration:                        2024-10-25T10:16:31Z
      Format Version:                    1.1.0
      Hook Status:
      Phase:  Completed
      Progress:
        Items Backed Up:  34
        Total Items:      34
      Start Timestamp:    2024-09-25T10:16:31Z
      Version:            1
    Events:               <none>
    Copy to Clipboard Toggle word wrap

4.5.2. OADP(OpenShift API for Data Protection) 복원 사용 사례

다음은 OADP를 사용하여 다른 네임스페이스로 백업을 복원하는 사용 사례입니다.

4.5.2.1. OADP를 사용하여 애플리케이션을 다른 네임스페이스로 복원

OADP를 새 대상 네임스페이스 test-restore-application 에 사용하여 애플리케이션 백업을 복원합니다. 백업을 복원하려면 다음 예와 같이 복원 사용자 정의 리소스(CR)를 생성합니다. restore CR에서 소스 네임스페이스는 백업에 포함된 애플리케이션 네임스페이스를 나타냅니다. 그런 다음 프로젝트를 새 복원 네임스페이스로 변경하고 리소스를 확인하여 복원을 확인합니다.

사전 요구 사항

  • OADP Operator를 설치했습니다.
  • 복원할 애플리케이션의 백업이 있습니다.

프로세스

  1. 다음 예와 같이 복원 CR을 생성합니다.

    CR 복원 예시

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: test-restore 
    1
    
      namespace: openshift-adp
    spec:
      backupName: <backup_name> 
    2
    
      restorePVs: true
      namespaceMapping:
        <application_namespace>: test-restore-application 
    3
    Copy to Clipboard Toggle word wrap

    1
    복원 CR의 이름입니다.
    2
    백업 이름을 지정합니다.
    3
    namespaceMapping 은 소스 애플리케이션 네임스페이스를 대상 애플리케이션 네임스페이스에 매핑합니다. 백업한 애플리케이션 네임스페이스를 지정합니다. test-restore-application 은 백업을 복원하려는 대상 네임스페이스입니다.
  2. 다음 명령을 실행하여 복원 CR을 적용합니다.

    $ oc apply -f <restore_cr_filename>
    Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 복원이 완료된 단계에 있는지 확인합니다.

    $ oc describe restores.velero.io <restore_name> -n openshift-adp
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 복원된 네임스페이스 test-restore-application 로 변경합니다.

    $ oc project test-restore-application
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 영구 볼륨 클레임(pvc), 서비스(svc), 배포, 시크릿, 구성 맵과 같은 복원된 리소스를 확인합니다.

    $ oc get pvc,svc,deployment,secret,configmap
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                          STATUS   VOLUME
    persistentvolumeclaim/mysql   Bound    pvc-9b3583db-...-14b86
    
    NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
    service/mysql      ClusterIP   172....157     <none>        3306/TCP   2m56s
    service/todolist   ClusterIP   172.....15     <none>        8000/TCP   2m56s
    
    NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/mysql   0/1     1            0           2m55s
    
    NAME                                         TYPE                      DATA   AGE
    secret/builder-dockercfg-6bfmd               kubernetes.io/dockercfg   1      2m57s
    secret/default-dockercfg-hz9kz               kubernetes.io/dockercfg   1      2m57s
    secret/deployer-dockercfg-86cvd              kubernetes.io/dockercfg   1      2m57s
    secret/mysql-persistent-sa-dockercfg-rgp9b   kubernetes.io/dockercfg   1      2m57s
    
    NAME                                 DATA   AGE
    configmap/kube-root-ca.crt           1      2m57s
    configmap/openshift-service-ca.crt   1      2m57s
    Copy to Clipboard Toggle word wrap

4.5.3. 백업 중 자체 서명된 CA 인증서 포함

DPA(Data Protection Application)에 자체 서명된 CA(인증 기관) 인증서를 추가한 다음 애플리케이션을 백업할 수 있습니다. {odf-first}에서 제공하는 NooBaa 버킷에 백업을 저장합니다.

4.5.3.1. 애플리케이션 및 자체 서명된 CA 인증서 백업

{odf-short}에서 제공하는 s3.openshift-storage.svc 서비스는 자체 서명된 서비스 CA로 서명된 TLS(Transport Layer Security Protocol) 인증서를 사용합니다.

알 수 없는 기관 오류로 서명된 인증서 를 방지하려면 DataProtectionApplication CR(사용자 정의 리소스)의 백업 스토리지 위치(BSL) 섹션에 자체 서명된 CA 인증서를 포함해야 합니다. 이 경우 다음 작업을 완료해야 합니다.

  • OBC(오브젝트 버킷 클레임)를 생성하여 NooBaa 버킷을 요청합니다.
  • 버킷 세부 정보를 추출합니다.
  • DataProtectionApplication CR에 자체 서명된 CA 인증서를 포함합니다.
  • 애플리케이션을 백업합니다.

사전 요구 사항

  • OADP Operator가 설치되어 있습니다.
  • {odf-short} Operator를 설치했습니다.
  • 별도의 네임스페이스에서 실행 중인 데이터베이스가 있는 애플리케이션이 있습니다.

절차

  1. 다음 예와 같이 OBC 매니페스트를 생성하여 NooBaa 버킷을 요청합니다.

    ObjectBucketClaim CR의 예

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: test-obc 
    1
    
      namespace: openshift-adp
    spec:
      storageClassName: openshift-storage.noobaa.io
      generateBucketName: test-backup-bucket 
    2
    Copy to Clipboard Toggle word wrap

    1
    오브젝트 버킷 클레임의 이름을 지정합니다.
    2
    버킷의 이름을 지정합니다.
  2. 다음 명령을 실행하여 OBC를 생성합니다.

    $ oc create -f <obc_file_name>
    Copy to Clipboard Toggle word wrap
  3. OBC를 생성할 때 {odf-short}은 오브젝트 버킷 클레임과 동일한 이름의 시크릿ConfigMap 을 생성합니다. 보안 오브젝트에는 버킷 인증 정보가 포함되어 있으며 ConfigMap 오브젝트에는 버킷에 액세스하는 데 필요한 정보가 포함되어 있습니다. 생성된 구성 맵에서 버킷 이름과 버킷 호스트를 가져오려면 다음 명령을 실행합니다.

    $ oc extract --to=- cm/test-obc 
    1
    Copy to Clipboard Toggle word wrap
    1
    OBC의 이름은 test-obc 입니다.

    출력 예

    # BUCKET_NAME
    backup-c20...41fd
    # BUCKET_PORT
    443
    # BUCKET_REGION
    
    # BUCKET_SUBREGION
    
    # BUCKET_HOST
    s3.openshift-storage.svc
    Copy to Clipboard Toggle word wrap

  4. 보안 오브젝트에서 버킷 인증 정보를 가져오려면 다음 명령을 실행합니다.

    $ oc extract --to=- secret/test-obc
    Copy to Clipboard Toggle word wrap

    출력 예

    # AWS_ACCESS_KEY_ID
    ebYR....xLNMc
    # AWS_SECRET_ACCESS_KEY
    YXf...+NaCkdyC3QPym
    Copy to Clipboard Toggle word wrap

  5. 다음 예제 구성을 사용하여 오브젝트 버킷 자격 증명으로 cloud-credentials 파일을 생성합니다.

    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
    Copy to Clipboard Toggle word wrap
  6. 다음 명령을 실행하여 cloud-credentials 파일 콘텐츠를 사용하여 cloud-credentials 시크릿을 생성합니다.

    $ oc create secret generic \
      cloud-credentials \
      -n openshift-adp \
      --from-file cloud=cloud-credentials
    Copy to Clipboard Toggle word wrap
  7. 다음 명령을 실행하여 openshift-service-ca.crt 구성 맵에서 서비스 CA 인증서를 추출합니다. 인증서를 Base64 형식으로 인코딩하고 다음 단계에서 사용할 값을 기록해야 합니다.

    $ oc get cm/openshift-service-ca.crt \
      -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
    Copy to Clipboard Toggle word wrap

    출력 예

    LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0...
    ....gpwOHMwaG9CRmk5a3....FLS0tLS0K
    Copy to Clipboard Toggle word wrap

  8. 다음 예와 같이 버킷 이름 및 CA 인증서를 사용하여 DataProtectionApplication CR 매니페스트 파일을 구성합니다.

    Example DataProtectionApplication CR

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: oadp-backup
      namespace: openshift-adp
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - aws
            - openshift
            - csi
          defaultSnapshotMoveData: true
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: noobaa
              s3Url: https://s3.openshift-storage.svc
              s3ForcePathStyle: "true"
              insecureSkipTLSVerify: "false" 
    1
    
            provider: aws
            default: true
            credential:
              key: cloud
              name:  cloud-credentials
            objectStorage:
              bucket: <bucket_name> 
    2
    
              prefix: oadp
              caCert: <ca_cert> 
    3
    Copy to Clipboard Toggle word wrap

    1
    insecureSkipTLSVerify 플래그는 true 또는 false 로 설정할 수 있습니다. "true"로 설정하면 SSL/TLS 보안이 비활성화됩니다. false 로 설정하면 SSL/TLS 보안이 활성화됩니다.
    2
    이전 단계에서 추출한 버킷의 이름을 지정합니다.
    3
    이전 단계에서 Base64 로 인코딩된 인증서를 복사하여 붙여넣습니다.
  9. 다음 명령을 실행하여 DataProtectionApplication CR을 생성합니다.

    $ oc apply -f <dpa_filename>
    Copy to Clipboard Toggle word wrap
  10. 다음 명령을 실행하여 DataProtectionApplication CR이 성공적으로 생성되었는지 확인합니다.

    $ oc get dpa -o yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    apiVersion: v1
    items:
    - apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        namespace: openshift-adp
        #...#
      spec:
        backupLocations:
        - velero:
            config:
              #...#
      status:
        conditions:
        - lastTransitionTime: "20....9:54:02Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    kind: List
    metadata:
      resourceVersion: ""
    Copy to Clipboard Toggle word wrap

  11. 다음 명령을 실행하여 백업 스토리지 위치(BSL)를 사용할 수 있는지 확인합니다.

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME           PHASE       LAST VALIDATED   AGE   DEFAULT
    dpa-sample-1   Available   3s               15s   true
    Copy to Clipboard Toggle word wrap

  12. 다음 예제를 사용하여 Backup CR을 구성합니다.

    Backup CR의 예

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: test-backup
      namespace: openshift-adp
    spec:
      includedNamespaces:
      - <application_namespace> 
    1
    Copy to Clipboard Toggle word wrap

    1
    애플리케이션을 백업할 네임스페이스를 지정합니다.
  13. 다음 명령을 실행하여 Backup CR을 생성합니다.

    $ oc apply -f <backup_cr_filename>
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 Backup 오브젝트가 Completed 단계에 있는지 확인합니다.

    $ oc describe backup test-backup -n openshift-adp
    Copy to Clipboard Toggle word wrap

    출력 예

    Name:         test-backup
    Namespace:    openshift-adp
    # ....#
    Status:
      Backup Item Operations Attempted:  1
      Backup Item Operations Completed:  1
      Completion Timestamp:              2024-09-25T10:17:01Z
      Expiration:                        2024-10-25T10:16:31Z
      Format Version:                    1.1.0
      Hook Status:
      Phase:  Completed
      Progress:
        Items Backed Up:  34
        Total Items:      34
      Start Timestamp:    2024-09-25T10:16:31Z
      Version:            1
    Events:               <none>
    Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat