9.8. OADP를 사용하여 호스팅된 클러스터에 대한 자동 재해 복구


베어 메탈 또는 Amazon Web Services(AWS) 플랫폼의 호스팅 클러스터에서 OADP(OpenShift API for Data Protection) Operator를 사용하여 일부 백업 및 복원 단계를 자동화할 수 있습니다.

이 과정에는 다음 단계가 포함됩니다.

  1. OADP 구성
  2. 데이터 보호 애플리케이션(DPA) 정의
  3. 데이터 플레인 워크로드 백업
  4. 컨트롤 플레인 워크로드 백업
  5. OADP를 사용하여 호스트 클러스터 복원

9.8.1. 사전 요구 사항

관리 클러스터에서 다음 사전 요구 사항을 충족해야 합니다.

  • OADP Operator를 설치했습니다 .
  • 스토리지 클래스를 생성하셨습니다.
  • cluster-admin 권한이 있는 클러스터에 액세스할 수 있습니다.
  • 카탈로그 소스를 통해 OADP 서브스크립션에 액세스할 수 있습니다.
  • S3, Microsoft Azure, Google Cloud Platform 또는 MinIO와 같은 OADP와 호환되는 클라우드 스토리지 공급자에 액세스할 수 있습니다.
  • 연결이 끊긴 환경에서는 OADP와 호환되는 셀프 호스팅 스토리지 공급자(예: Red Hat OpenShift Data Foundation 또는 MinIO) 에 액세스할 수 있습니다.
  • 호스팅된 컨트롤 플레인 pod가 실행 중입니다.

9.8.2. OADP 구성

호스팅된 클러스터가 AWS에 있는 경우 "Multicloud Object Gateway를 사용하여 데이터 보호를 위한 OpenShift API 구성"의 단계에 따라 OADP를 구성합니다.

호스팅된 클러스터가 베어 메탈 플랫폼에 있는 경우 "AWS S3 호환 스토리지를 사용하여 데이터 보호를 위한 OpenShift API 구성"의 단계에 따라 OADP를 구성합니다.

9.8.3. DPA를 사용하여 백업 및 복원 프로세스 자동화

데이터 보호 애플리케이션(DPA)을 사용하면 백업 및 복원 프로세스의 일부를 자동화할 수 있습니다. DPA를 사용하면 리소스 조정을 일시 중지하고 다시 시작하는 단계가 자동화됩니다. DPA는 백업 위치와 Velero Pod 구성을 포함한 정보를 정의합니다.

DataProtectionApplication 객체를 정의하여 DPA를 만들 수 있습니다.

프로세스

  • 베어메탈 플랫폼을 사용하는 경우 다음 단계를 완료하여 DPA를 만들 수 있습니다.

    1. 다음 예와 유사한 매니페스트 파일을 만듭니다.

      예 9.3. dpa.yaml 파일 예시

      apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        name: dpa-sample
        namespace: openshift-adp
      spec:
        backupLocations:
          - name: default
            velero:
              provider: aws 
      1
      
              default: true
              objectStorage:
                bucket: <bucket_name> 
      2
      
                prefix: <bucket_prefix> 
      3
      
              config:
                region: minio 
      4
      
                profile: "default"
                s3ForcePathStyle: "true"
                s3Url: "<bucket_url>" 
      5
      
                insecureSkipTLSVerify: "true"
              credential:
                key: cloud
                name: cloud-credentials
                default: true
        snapshotLocations:
          - velero:
              provider: aws 
      6
      
              config:
                region: minio 
      7
      
                profile: "default"
              credential:
                key: cloud
                name: cloud-credentials
        configuration:
          nodeAgent:
            enable: true
            uploaderType: kopia
          velero:
            defaultPlugins:
              - openshift
              - aws
              - csi
              - hypershift
            resourceTimeout: 2h
      Copy to Clipboard Toggle word wrap
      1 6
      Velero의 공급자를 지정하세요. 베어 메탈과 MinIO를 사용하는 경우 aws를 공급자로 사용할 수 있습니다.
      2
      버킷 이름을 지정합니다(예: oadp-backup) .
      3
      버킷 접두사를 지정합니다(예: hcp ).
      4 7
      이 예에서 버킷 지역은 S3 API와 호환되는 스토리지 공급자인 minio 입니다.
      5
      S3 엔드포인트의 URL을 지정합니다.
    2. 다음 명령을 실행하여 DPA 객체를 만듭니다.

      $ oc create -f dpa.yaml
      Copy to Clipboard Toggle word wrap

      DataProtectionApplication 객체를 생성한 후, 새로운 Velero 배포 및 노드 에이전트 포드가 openshift-adp 네임스페이스에 생성됩니다.

  • Amazon Web Services(AWS)를 사용하는 경우 다음 단계를 완료하여 DPA를 생성할 수 있습니다.

    1. 다음 예와 유사한 매니페스트 파일을 만듭니다.

      예 9.4. dpa.yaml 파일 예시

      apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        name: dpa-sample
        namespace: openshift-adp
      spec:
        backupLocations:
          - name: default
            velero:
              provider: aws
              default: true
              objectStorage:
                bucket: <bucket_name> 
      1
      
                prefix: <bucket_prefix> 
      2
      
              config:
                region: minio 
      3
      
                profile: "backupStorage"
              credential:
                key: cloud
                name: cloud-credentials
        snapshotLocations:
          - velero:
              provider: aws
              config:
                region: minio 
      4
      
                profile: "volumeSnapshot"
              credential:
                key: cloud
                name: cloud-credentials
        configuration:
          nodeAgent:
            enable: true
            uploaderType: kopia
          velero:
            defaultPlugins:
              - openshift
              - aws
              - csi
              - hypershift
            resourceTimeout: 2h
      Copy to Clipboard Toggle word wrap
      1
      버킷 이름을 지정합니다(예: oadp-backup) .
      2
      버킷 접두사를 지정합니다(예: hcp ).
      3 4
      이 예에서 버킷 지역은 S3 API와 호환되는 스토리지 공급자인 minio 입니다.
    2. 다음 명령을 실행하여 DPA 리소스를 만듭니다.

      $ oc create -f dpa.yaml
      Copy to Clipboard Toggle word wrap

      DataProtectionApplication 객체를 생성한 후, 새로운 Velero 배포 및 노드 에이전트 포드가 openshift-adp 네임스페이스에 생성됩니다.

다음 단계

  • 데이터 플레인 작업 부하를 백업합니다.

9.8.4. 데이터 플레인 워크로드 백업

OADP Operator를 사용하여 데이터 플레인 워크로드를 백업하려면 "애플리케이션 백업"을 참조하십시오. 데이터 플레인 워크로드가 중요하지 않은 경우 이 절차를 건너뛸 수 있습니다.

9.8.5. 컨트롤 플레인 워크로드 백업

Backup CR(사용자 정의 리소스)을 생성하여 컨트롤 플레인 워크로드를 백업할 수 있습니다.

백업 프로세스를 모니터링하고 관찰하려면 "백업 및 복원 프로세스 예약"을 참조하십시오.

프로세스

  1. Backup CR을 정의하는 YAML 파일을 생성합니다.

    예 9.5. backup-control-plane.yaml 파일 예

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: <backup_resource_name> 
    1
    
      namespace: openshift-adp
      labels:
        velero.io/storage-location: default
    spec:
      hooks: {}
      includedNamespaces: 
    2
    
      - <hosted_cluster_namespace> 
    3
    
      - <hosted_control_plane_namespace> 
    4
    
      includedResources:
      - sa
      - role
      - rolebinding
      - pod
      - pvc
      - pv
      - bmh
      - configmap
      - infraenv 
    5
    
      - priorityclasses
      - pdb
      - agents
      - hostedcluster
      - nodepool
      - secrets
      - services
      - deployments
      - hostedcontrolplane
      - cluster
      - agentcluster
      - agentmachinetemplate
      - agentmachine
      - machinedeployment
      - machineset
      - machine
      - route
      - clusterdeployment
      excludedResources: []
      storageLocation: default
      ttl: 2h0m0s
      snapshotMoveData: true 
    6
    
      datamover: "velero" 
    7
    
      defaultVolumesToFsBackup: true 
    8
    Copy to Clipboard Toggle word wrap
    1
    backup_resource_name을 백업 리소스의 이름으로 바꾸세요.
    2
    특정 네임스페이스를 선택하여 오브젝트를 백업합니다. 호스팅 클러스터 네임스페이스와 호스팅된 컨트롤 플레인 네임스페이스를 포함해야 합니다.
    3
    <hosted_cluster_namespace> 를 호스트된 클러스터 네임스페이스의 이름으로 바꿉니다(예: 클러스터 ).
    4
    <hosted_control_plane_namespace>를 호스트된 컨트롤 플레인 네임스페이스의 이름으로 바꿉니다(예: 클러스터 호스팅 ).
    5
    별도의 네임스페이스에 infraenv 리소스를 생성해야 합니다. 백업 프로세스 중에 infraenv 리소스를 삭제하지 마십시오.
    6 7
    CSI 볼륨 스냅샷을 활성화하고 컨트롤 플레인 워크로드를 클라우드 스토리지에 자동으로 업로드합니다.
    8
    PV(영구 볼륨)의 fs-backup 방법을 기본값으로 설정합니다. 이 설정은 CSI(Container Storage Interface) 볼륨 스냅샷과 fs-backup 방법을 조합할 때 유용합니다.
    참고

    CSI 볼륨 스냅샷을 사용하려면 backup.velero.io/backup-volumes-excludes=<pv_name> 주석을 PV에 추가해야 합니다.

  2. 다음 명령을 실행하여 Backup CR을 적용합니다.

    $ oc apply -f backup-control-plane.yaml
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 status.phase 값이 완료되었는지 확인하세요.

    $ oc get backups.velero.io <backup_resource_name> -n openshift-adp \
      -o jsonpath='{.status.phase}'
    Copy to Clipboard Toggle word wrap

다음 단계

  • OADP를 사용하여 호스팅된 클러스터를 복원합니다.

9.8.6. OADP를 사용하여 호스트 클러스터 복원

Restore CR(사용자 정의 리소스)을 생성하여 호스팅된 클러스터를 복원할 수 있습니다.

  • 기존 업데이트를 사용하는 경우 InfraEnv 리소스에 예비 노드가 필요하지 않습니다. 새 관리 클러스터에서 작업자 노드를 다시 프로비저닝해야 합니다.
  • 교체 업데이트를 사용하는 경우 작업자 노드를 배포하기 위해 InfraEnv 리소스에 대한 예비 노드가 필요합니다.
중요

호스트 클러스터를 백업한 후 이를 삭제하여 복원 프로세스를 시작해야 합니다. 노드 프로비저닝을 시작하려면 호스팅 클러스터를 삭제하기 전에 데이터 플레인의 워크로드를 백업해야 합니다.

사전 요구 사항

백업 프로세스를 모니터링하고 관찰하려면 "백업 및 복원 프로세스 예약"을 참조하십시오.

프로세스

  1. 다음 명령을 실행하여 호스팅된 컨트롤 플레인 네임스페이스에 Pod 및 PVC(영구 볼륨 클레임)가 없는지 확인합니다.

    $ oc get pod pvc -n <hosted_control_plane_namespace>
    Copy to Clipboard Toggle word wrap

    예상 출력

    No resources found
    Copy to Clipboard Toggle word wrap

  2. Restore CR을 정의하는 YAML 파일을 생성합니다.

    restore-hosted-cluster.yaml 파일의 예

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: <restore_resource_name> 
    1
    
      namespace: openshift-adp
    spec:
      backupName: <backup_resource_name> 
    2
    
      restorePVs: true 
    3
    
      existingResourcePolicy: update 
    4
    
      excludedResources:
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
    Copy to Clipboard Toggle word wrap

    1
    <restore_resource_name>을 복원 리소스의 이름으로 바꾸세요.
    2
    <backup_resource_name>을 백업 리소스의 이름으로 바꾸세요.
    3
    PV(영구 볼륨) 및 해당 Pod의 복구를 시작합니다.
    4
    백업된 콘텐츠를 사용하여 기존 오브젝트를 덮어쓰는지 확인합니다.
    중요

    InfraEnv 리소스를 별도의 네임스페이스에 만들어야 합니다. 복원 프로세스 동안 InfraEnv 리소스를 삭제하지 마세요. InfraEnv 리소스는 새 노드를 다시 프로비저닝하는 데 필수적입니다.

  3. 다음 명령을 실행하여 Restore CR을 적용합니다.

    $ oc apply -f restore-hosted-cluster.yaml
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 status.phase 의 값이 완료되었는지 확인합니다.

    $ oc get hostedcluster <hosted_cluster_name> -n <hosted_cluster_namespace> \
      -o jsonpath='{.status.phase}'
    Copy to Clipboard Toggle word wrap

9.8.7. 백업 및 복원 프로세스 관찰

OADP(OpenShift API for Data Protection)를 사용하여 호스팅된 클러스터를 백업하고 복원할 때 프로세스를 모니터링하고 관찰할 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 백업 프로세스를 관찰합니다.

    $ watch "oc get backups.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 복원 프로세스를 관찰합니다.

    $ watch "oc get restores.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 Velero 로그를 관찰합니다.

    $ oc logs -n openshift-adp -ldeploy=velero -f
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 모든 OADP 오브젝트의 진행 상황을 확인합니다.

    $ watch "echo BackupRepositories:;echo;oc get backuprepositories.velero.io -A;echo; echo BackupStorageLocations: ;echo; oc get backupstoragelocations.velero.io -A;echo;echo DataUploads: ;echo;oc get datauploads.velero.io -A;echo;echo DataDownloads: ;echo;oc get datadownloads.velero.io -n openshift-adp; echo;echo VolumeSnapshotLocations: ;echo;oc get volumesnapshotlocations.velero.io -A;echo;echo Backups:;echo;oc get backup -A; echo;echo Restores:;echo;oc get restore -A"
    Copy to Clipboard Toggle word wrap

9.8.8. velero CLI를 사용하여 백업 및 복원 리소스 설명

데이터 보호를 위한 OpenShift API를 사용하는 경우 velero CLI(명령줄 인터페이스)를 사용하여 BackupRestore 리소스에 대한 자세한 정보를 얻을 수 있습니다.

프로세스

  1. 다음 명령을 실행하여 컨테이너에서 velero CLI를 사용하도록 별칭을 생성합니다.

    $ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 Restore CR(사용자 정의 리소스)에 대한 세부 정보를 가져옵니다.

    $ velero restore describe <restore_resource_name> --details 
    1
    Copy to Clipboard Toggle word wrap
    1
    <restore_resource_name>Restore 리소스의 이름으로 바꿉니다.
  3. 다음 명령을 실행하여 Backup CR에 대한 세부 정보를 가져옵니다.

    $ velero restore describe <backup_resource_name> --details 
    1
    Copy to Clipboard Toggle word wrap
    1
    <backup_resource_name>Backup 리소스의 이름으로 바꿉니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat