4.11. 고급 OADP 기능 및 기능
이 문서에서는 OADP(OpenShift API for Data Protection)의 고급 기능 및 기능에 대한 정보를 제공합니다.
4.11.1. 동일한 클러스터에서 다양한 Kubernetes API 버전으로 작업
4.11.1.1. 클러스터에 Kubernetes API 그룹 버전 나열
소스 클러스터는 이러한 버전 중 하나가 기본 API 버전인 여러 버전의 API를 제공할 수 있습니다. 예를 들어 Example
이라는 API가 있는 소스 클러스터는 example.com/v1
및 example.com/v1beta2
API 그룹에서 사용할 수 있습니다.
Velero를 사용하여 이러한 소스 클러스터를 백업하고 복원하는 경우 Velero는 Kubernetes API의 기본 버전을 사용하는 해당 리소스의 버전만 백업합니다.
위 예제로 돌아가려면 example.com/v1
이 기본 API인 경우 Velero는 example.com/v1
을 사용하는 리소스 버전만 백업합니다. 또한 Velero가 대상 클러스터에서 리소스를 복원하려면 대상 클러스터에 example.com/v1
이 사용 가능한 API 리소스 세트에 등록되어 있어야 합니다.
따라서 기본 API 버전이 사용 가능한 API 리소스 세트에 등록되어 있는지 확인하려면 대상 클러스터에서 Kubernetes API 그룹 버전 목록을 생성해야 합니다.
프로세스
- 다음 명령을 실행합니다.
$ oc api-resources
4.11.1.2. API 그룹 버전 활성화 정보
기본적으로 Velero는 기본 Kubernetes API 버전을 사용하는 리소스만 백업합니다. 그러나 Velero에는 이러한 제한을 극복하는 Enable API Group Versions 기능도 포함되어 있습니다. 소스 클러스터에서 활성화하면 이 기능을 통해 Velero가 선호하는 Kubernetes API 그룹 버전뿐만 아니라 클러스터에서 지원되는 모든 Kubernetes API 그룹 버전을 백업합니다. 버전이 백업 .tar 파일에 저장되면 대상 클러스터에서 복원할 수 있습니다.
예를 들어 Example
이라는 API가 있는 소스 클러스터는 example.com/v1
및 example.com/v1beta2
API 그룹에서 사용할 수 있으며 example.com/v1
은 기본 API입니다.
API 그룹 버전 활성화 기능이 활성화되지 않으면 Velero는 예제에 대해 기본 API 그룹 버전만 백업합니다( 예:
example.com/v1
). 기능이 활성화된 경우 Velero는 example.com/v1beta2
도 백업합니다.
대상 클러스터에서 API 그룹 버전 활성화 기능이 활성화된 경우 Velero는 API 그룹 버전의 우선 순위 순서에 따라 복원할 버전을 선택합니다.
Enable API Group Versions는 아직 베타 버전입니다.
Velero는 다음 알고리즘을 사용하여 API 버전에 우선순위를 할당하고 1
을 가장 높은 우선 순위로 할당합니다.
- 대상 클러스터의 기본 버전
- 기본 버전의 source_ cluster
- Kubernetes 버전 우선 순위가 가장 높은 일반 지원되지 않는 버전
추가 리소스
4.11.1.3. API 그룹 버전 사용
Velero의 Enable API Group Versions 기능을 사용하여 선호하는 Kubernetes API 그룹 버전뿐만 아니라 클러스터에서 지원되는 모든 Kubernetes API 그룹 버전을 백업할 수 있습니다.
Enable API Group Versions는 아직 베타 버전입니다.
프로세스
-
EnableAPIGroupVersions
기능 플래그를 구성합니다.
apiVersion: oadp.openshift.io/vialpha1 kind: DataProtectionApplication ... spec: configuration: velero: featureFlags: - EnableAPIGroupVersions
추가 리소스
4.11.2. 한 클러스터에서 데이터를 백업하고 다른 클러스터로 복원
4.11.2.1. 한 클러스터에서 데이터 백업 및 다른 클러스터에서 복원 정보
OADP(OpenShift API for Data Protection)는 동일한 OpenShift Container Platform 클러스터에서 애플리케이션 데이터를 백업하고 복원하도록 설계되었습니다. MTC(Migration Toolkit for Containers)는 하나의 OpenShift Container Platform 클러스터에서 다른 클러스터로 애플리케이션 데이터를 포함한 컨테이너를 마이그레이션하도록 설계되었습니다.
OADP를 사용하여 하나의 OpenShift Container Platform 클러스터에서 애플리케이션 데이터를 백업하고 다른 클러스터에 복원할 수 있습니다. 그러나 이러한 작업은 MTC를 사용하거나 OADP를 사용하여 동일한 클러스터에서 백업 및 복원하는 것보다 더 복잡합니다.
OADP를 사용하여 한 클러스터에서 데이터를 백업하고 다른 클러스터로 복원하려면 OADP를 사용하여 동일한 클러스터에서 데이터를 백업하고 복원하는 데 적용되는 사전 요구 사항 및 절차 외에 다음 요인을 고려해야 합니다.
- Operator
- Velero 사용
- UID 및 GID 범위
4.11.2.1.1. Operator
백업 및 복원을 성공하려면 애플리케이션 백업에서 Operator를 제외해야 합니다.
4.11.2.1.2. Velero 사용
OADP가 구축된 Velero는 기본적으로 클라우드 공급자 간에 영구 볼륨 스냅샷 마이그레이션을 지원하지 않습니다. 클라우드 플랫폼 간에 볼륨 스냅샷 데이터를 마이그레이션하려면 파일 시스템 수준에서 볼륨 콘텐츠를 백업하는 Velero Restic 파일 시스템 백업 옵션을 활성화 하거나 CSI 스냅샷에 대해 OADP Data Mover를 사용해야 합니다.
OADP 1.1 및 이전 버전에서는 Velero Restic 파일 시스템 백업 옵션을 restic
이라고 합니다. OADP 1.2 이상에서는 Velero Restic 파일 시스템 백업 옵션을 file-system-backup
이라고 합니다.
Velero의 파일 시스템 백업 기능은 Kopia와 Restic을 모두 지원하지만 현재 OADP는 Restic만 지원합니다.
- 또한 Velero의 파일 시스템 백업을 사용하여 AWS 리전 간에 데이터를 마이그레이션하거나 Microsoft Azure 리전 간에 데이터를 마이그레이션해야 합니다.
- Velero는 소스 클러스터보다 이전 Kubernetes 버전의 클러스터로 데이터 복원을 지원하지 않습니다.
- 이론적으로 소스보다 최신 Kubernetes 버전이 있는 대상으로 워크로드를 마이그레이션할 수 있지만 각 사용자 지정 리소스에 대한 클러스터 간 API 그룹의 호환성을 고려해야 합니다. Kubernetes 버전 업그레이드에서 코어 또는 네이티브 API 그룹의 호환성을 중단하는 경우 먼저 영향을 받는 사용자 정의 리소스를 업데이트해야 합니다.
4.11.2.1.3. UID 및 GID 범위
한 클러스터에서 데이터를 백업하고 다른 클러스터로 복원할 때 UID(사용자 ID) 및 GID(그룹 ID) 범위에서 발생할 수 있는 문제가 발생할 수 있습니다. 다음 섹션에서는 이러한 잠재적인 문제 및 완화 방법에 대해 설명합니다.
- 문제 요약
- 네임스페이스의 UID 및 GID 범위는 대상 클러스터에서 변경될 수 있습니다. OADP는 OpenShift UID 범위 메타데이터를 백업하고 복원하지 않습니다. 백업 애플리케이션에 특정 UID가 필요한 경우 복원 시 범위를 사용할 수 있는지 확인합니다. OpenShift의 UID 및 GID 범위에 대한 자세한 내용은 A Guide to OpenShift and UIDs 를 참조하십시오.
- 문제에 대한 자세한 설명
쉘 명령
oc create namespace
를 사용하여 OpenShift Container Platform에서 네임스페이스를 생성할 때 OpenShift Container Platform은 사용 가능한 UID 풀, 추가 그룹(GID) 범위 및 고유한 SELinux MCS 레이블에서 네임스페이스에 고유한 UID(사용자 ID) 범위를 할당합니다. 이 정보는 클러스터의metadata.annotations
필드에 저장됩니다. 이 정보는 다음 구성 요소를 구성하는 SCC(보안 컨텍스트 제약 조건) 주석의 일부입니다.-
openshift.io/sa.scc.mcs
-
openshift.io/sa.scc.supplemental-groups
-
openshift.io/sa.scc.uid-range
OADP를 사용하여 네임스페이스를 복원하면 대상 클러스터에 대해 재설정하지 않고
metadata.annotations
의 정보를 자동으로 사용합니다. 결과적으로 다음 중 하나가 true인 경우 워크로드가 백업된 데이터에 액세스할 수 없을 수 있습니다.- 예를 들어 다른 클러스터에 다른 SCC 주석이 있는 기존 네임스페이스가 있습니다. 이 경우 백업 시 OADP는 복원하려는 네임스페이스 대신 기존 네임스페이스를 재사용합니다.
백업에서 레이블 선택기를 사용했지만 워크로드가 실행되는 네임스페이스에 레이블이 없습니다. 이 경우 OADP는 네임스페이스를 백업하지 않고 백업한 네임스페이스의 주석을 포함하지 않는 복원 중에 새 네임스페이스를 생성합니다. 이로 인해 새 UID 범위가 네임스페이스에 할당됩니다.
OpenShift Container Platform에서 영구 볼륨 데이터가 백업된 시점부터 변경된 네임스페이스 주석을 기반으로
securityContext
UID를 Pod에 할당하는 경우 고객 워크로드에 문제가 될 수 있습니다.- 컨테이너 UID가 더 이상 파일 소유자의 UID와 일치하지 않습니다.
- OpenShift Container Platform에서 백업 클러스터의 데이터와 일치하도록 대상 클러스터의 UID 범위를 수정하지 않았기 때문에 오류가 발생합니다. 결과적으로 백업 클러스터에는 대상 클러스터와 다른 UID가 있으므로 애플리케이션에서 대상 클러스터에 데이터를 읽거나 쓸 수 없습니다.
-
- 완화 방법
다음 완화 방법 중 하나를 사용하여 UID 및 GID 범위 문제를 해결할 수 있습니다.
간단한 완화 방법:
-
Backup
CR에서 라벨 선택기를 사용하여 백업에 포함할 오브젝트를 필터링하는 경우 이 라벨 선택기를 작업 공간이 포함된 네임스페이스에 추가해야 합니다. - 동일한 이름의 네임스페이스를 복원하기 전에 대상 클러스터에서 기존 네임스페이스 버전을 제거합니다.
-
고급 완화 방법:
- 마이그레이션 후 UID 범위 수정의 1-4 단계를 수행하여 마이그레이션 후 UID 범위를 수정합니다. 1단계는 선택 사항입니다.
한 클러스터에서 데이터를 백업하고 다른 클러스터에서 데이터를 복원하는 데 있는 문제를 해결하면서 OpenShift Container Platform의 UID 및 GID 범위에 대한 자세한 내용은 OpenShift 및 UID에 대한 가이드를 참조하십시오.
4.11.2.2. 한 클러스터에서 데이터를 백업하고 다른 클러스터로 복원
일반적으로 하나의 OpenShift Container Platform 클러스터의 데이터를 백업하고 동일한 클러스터에 데이터를 백업하고 복원하는 것과 동일한 방식으로 다른 OpenShift Container Platform 클러스터에 복원합니다. 그러나 한 OpenShift Container Platform 클러스터에서 데이터를 백업하고 다른 OpenShift Container Platform 클러스터에서 복원할 때 프로세스에 몇 가지 추가 사전 요구 사항과 차이점이 있습니다.
사전 요구 사항
- 플랫폼(예: AWS, Microsoft Azure, GCP 등)에서 백업 및 복원을 위한 모든 관련 사전 요구 사항은 이 가이드의 관련 섹션에 설명되어 있습니다.
프로세스
플랫폼에 지정된 절차를 추가합니다.
- 백업 저장소 위치(BSL) 및 볼륨 스냅샷 위치에 다른 클러스터의 리소스를 복원하는 것과 동일한 이름과 경로가 있는지 확인합니다.
- 클러스터 전체에서 동일한 오브젝트 스토리지 위치 인증 정보를 공유합니다.
- 최상의 결과를 얻으려면 OADP를 사용하여 대상 클러스터에 네임스페이스를 생성합니다.
Velero
file-system-backup
옵션을 사용하는 경우 다음 명령을 실행하여 백업 중에 사용할--default-volumes-to-fs-backup
플래그를 활성화합니다.$ velero backup create <backup_name> --default-volumes-to-fs-backup <any_other_options>
OADP 1.2 이상에서는 Velero Restic 옵션을 file-system-backup
이라고 합니다.
4.11.3. 추가 리소스
API 그룹 버전에 대한 자세한 내용은 동일한 클러스터에서 다양한 Kubernetes API 버전 작업을 참조하십시오.
OADP Data Mover에 대한 자세한 내용은 CSI 스냅샷에 Data Mover 사용을 참조하십시오.
OADP에서 Restic을 사용하는 방법에 대한 자세한 내용은 Restic을 사용하여 애플리케이션 백업을 참조하십시오.