4.18. OADP 복원
4.18.1. 애플리케이션 복원 링크 복사링크가 클립보드에 복사되었습니다!
Restore
CR(사용자 정의 리소스)을 생성하여 애플리케이션 백업을 복원합니다. 복원 CR 생성을 참조하십시오.
Restore
CR을 편집하여 Pod의 컨테이너에서 명령을 실행하기 위해 복원 후크를 생성할 수 있습니다. 복원 후크 생성 을 참조하십시오.
4.18.1.1. 백업을 실행하고 복원하기 전에 리소스 미리 보기 링크 복사링크가 클립보드에 복사되었습니다!
OADP는 유형, 네임스페이스 또는 레이블을 기반으로 애플리케이션 리소스를 백업합니다. 즉, 백업이 완료된 후 리소스를 볼 수 있습니다. 마찬가지로 복원 작업이 완료된 후 네임스페이스, 영구 볼륨(PV) 또는 라벨을 기반으로 복원된 오브젝트를 볼 수 있습니다. 리소스를 미리 미리 보려면 백업 및 복원 작업을 예행히 실행할 수 있습니다.
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
절차
실제 백업을 실행하기 전에 백업에 포함된 리소스를 미리 보려면 다음 명령을 실행합니다.
velero backup create <backup-name> --snapshot-volumes false
$ velero backup create <backup-name> --snapshot-volumes false
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
--snapshot-volumes
매개변수 값을false
로 지정합니다.
백업 리소스에 대한 자세한 내용을 보려면 다음 명령을 실행합니다.
velero describe backup <backup_name> --details
$ velero describe backup <backup_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 백업 이름을 지정합니다.
실제 복원을 실행하기 전에 복원에 포함된 리소스를 미리 보려면 다음 명령을 실행합니다.
velero restore create --from-backup <backup-name>
$ velero restore create --from-backup <backup-name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 백업 리소스를 검토하기 위해 생성된 백업의 이름을 지정합니다.
중요velero restore create
명령은 클러스터에 복원 리소스를 생성합니다. 리소스를 검토한 후 복원의 일부로 생성된 리소스를 삭제해야 합니다.복원 리소스에 대한 자세한 내용을 보려면 다음 명령을 실행합니다.
velero describe restore <restore_name> --details
$ velero describe restore <restore_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 복원의 이름을 지정합니다.
4.18.1.2. Restore CR을 생성 링크 복사링크가 클립보드에 복사되었습니다!
Restore
CR을 생성하여 Backup
CR(사용자 정의 리소스)을 복원합니다.
사전 요구 사항
- OADP(Data Protection) Operator를 위한 OpenShift API를 설치해야 합니다.
-
DataProtectionApplication
CR은Ready
상태에 있어야 합니다. -
Velero
Backup
CR이 있어야 합니다. - PV(영구 볼륨) 용량이 백업 시 요청된 크기와 일치해야 합니다. 필요한 경우 요청된 크기를 조정합니다.
절차
다음 예제와 같이
Restore
CR을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여
Restore
CR의 상태가Completed
인지 확인합니다.oc get restores.velero.io -n openshift-adp <restore> -o jsonpath='{.status.phase}'
$ oc get restores.velero.io -n openshift-adp <restore> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 백업 리소스가 복원되었는지 확인합니다.
oc get all -n <namespace>
$ oc get all -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 백업한 네임스페이스입니다.
볼륨과 함께
DeploymentConfig
를 복원하거나 복원 후 후크를 사용하는 경우 다음 명령을 입력하여dc-post-restore.sh
정리 스크립트를 실행합니다.bash dc-restic-post-restore.sh -> dc-post-restore.sh
$ bash dc-restic-post-restore.sh -> dc-post-restore.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고복원 프로세스 중에 OADP Velero 플러그인은
DeploymentConfig
오브젝트를 축소하고 Pod를 독립 실행형 포드로 복원합니다. 이 작업은 클러스터가 복원 시 복원된DeploymentConfig
Pod를 즉시 삭제하지 않고 복원 및 복원 후 후크로 복원된 Pod에서 작업을 완료할 수 있도록 하기 위해 수행됩니다. 아래에 표시된 정리 스크립트는 이러한 연결이 끊긴 Pod를 제거하고 적절한 복제본 수로DeploymentConfig
오브젝트를 다시 확장합니다.예 4.1.
DC-restic-post-restore.sh
정리 스크립트dc-post-restore.sh Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.18.1.3. 복원 후크 생성 링크 복사링크가 클립보드에 복사되었습니다!
Restore
CR(사용자 정의 리소스)을 편집하여 Pod의 컨테이너에서 명령을 실행할 복원 후크를 생성합니다.
다음 두 가지 유형의 복원 후크를 생성할 수 있습니다.
init
후크는 애플리케이션 컨테이너가 시작되기 전에 설정 작업을 수행하기 위해 Pod에 init 컨테이너를 추가합니다.Restic 백업을 복원하면 복원 후크 init 컨테이너 앞에
restic-wait
init 컨테이너가 추가됩니다.-
exec
후크는 복원된 Pod의 컨테이너에서 명령 또는 스크립트를 실행합니다.
절차
다음 예제와 같이
Restore
CR의spec.hooks
블록에 후크를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택 사항: 후크가 적용되는 네임스페이스 배열입니다. 이 값을 지정하지 않으면 후크가 모든 네임스페이스에 적용됩니다.
- 2
- 현재 Pod는 후크를 적용할 수 있는 유일한 지원 리소스입니다.
- 3
- 선택 사항: 이 후크는 라벨 선택기와 일치하는 오브젝트에만 적용됩니다.
- 4
- 선택 사항: 시간 초과는 Velero가
initContainers
가 완료될 때까지 대기하는 최대 시간을 지정합니다. - 5
- 선택 사항: 컨테이너를 지정하지 않으면 Pod의 첫 번째 컨테이너에서 명령이 실행됩니다.
- 6
- 이는 추가 중인 init 컨테이너의 진입점입니다.
- 7
- 선택 사항: 컨테이너가 준비될 때까지 대기하는 시간입니다. 컨테이너가 시작되고 동일한 컨테이너의 이전 후크가 완료될 때까지 충분히 길어야 합니다. 설정하지 않으면 복원 프로세스가 무기한 대기합니다.
- 8
- 선택 사항: 명령을 실행할 때까지 대기하는 시간입니다. 기본값은
30s
입니다. - 9
- 오류 처리에 허용되는 값은
Fail
및Continue
입니다.-
continue
: 명령 실패만 기록합니다. -
실패
: Pod의 모든 컨테이너에서 복구 후크를 더 이상 실행하지 않습니다.Restore
CR의 상태는partiallyFailed 입니다
.
-
FSB(파일 시스템 백업) 복원 작업 중에 ImageStream
을 참조하는 Deployment
리소스가 제대로 복원되지 않습니다. FSB를 실행하는 복원된 Pod 및 postHook
은 조기에 종료됩니다.
이는 복원 작업 중에 OpenShift 컨트롤러에서 업데이트된 ImageStreamTag
해시로 Deployment
리소스의 spec.template.spec.containers[0].image
필드를 업데이트하기 때문에 발생합니다. 이번 업데이트에서는 새 Pod의 롤아웃을 트리거하여 velero
가 FSB를 실행하는 Pod와 복원 후 후크를 종료합니다. 이미지 스트림 트리거에 대한 자세한 내용은 "이미지 스트림 변경에 대한 업데이트 트리거"를 참조하십시오.
이 동작에 대한 해결방법은 2단계 복원 프로세스입니다.
먼저
Deployment
리소스를 제외한 복원을 수행합니다. 예를 들면 다음과 같습니다.velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 복원이 성공한 후 다음 리소스를 포함하여 두 번째 복원을 수행합니다. 예를 들면 다음과 같습니다.
velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow