4.6. OADP 설치 및 구성
4.6.1. OADP 설치 정보
클러스터 관리자는 OADP Operator를 설치하여 OADP(Data Protection)용 OpenShift API를 설치합니다. OADP Operator는 Velero 1.14 를 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 Migration Toolkit for Containers Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Kubernetes 리소스 및 내부 이미지를 백업하려면 다음 스토리지 유형 중 하나와 같은 백업 위치로 오브젝트 스토리지가 있어야 합니다.
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- Multicloud Object Gateway
- AWS S3 호환 오브젝트 스토리지(예: Multicloud Object Gateway 또는 MinIO)
개별 OADP 배포에 대해 동일한 네임스페이스 내에서 여러 백업 스토리지 위치를 구성할 수 있습니다.
달리 지정하지 않는 한 "NooBa"는 경량 오브젝트 스토리지를 제공하는 오픈 소스 프로젝트를 나타내며 "MCG(Multicloud Object Gateway)는 NooBaa의 Red Hat 배포를 나타냅니다.
MCG에 대한 자세한 내용은 애플리케이션을 사용하여 Multicloud Object Gateway 액세스를 참조하십시오.
오브젝트 스토리지용 버킷 생성을 자동화하는 CloudStorage
API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
API는 CloudStorage 오브젝트를 사용하고 OADP에서 CloudStorage
CloudStorage
API를 사용하여 BackupStorageLocation
으로 사용할 S3 버킷을 자동으로 생성하도록 하는 경우 기술 프리뷰 기능입니다.
CloudStorage
API는 기존 S3 버킷을 지정하여 BackupStorageLocation
오브젝트를 수동으로 생성할 수 있도록 지원합니다. S3 버킷을 자동으로 생성하는 CloudStorage
API는 현재 AWS S3 스토리지에만 활성화됩니다.
스냅샷 또는 FSB(파일 시스템 백업)를 사용하여 PV(영구 볼륨)를 백업할 수 있습니다.
스냅샷을 사용하여 PV를 백업하려면 다음 클라우드 공급자 중 하나와 같이 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원하는 클라우드 공급자가 있어야 합니다.
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- CSI 스냅샷 지원 클라우드 공급자 (예: OpenShift Data Foundation)
OCP 4.11 이상에서 CSI 백업을 사용하려면 OADP 1.1.x 를 설치하십시오.
OADP 1.0.x 는 OCP 4.11 이상에서 CSI 백업을 지원하지 않습니다. OADP 1.0.x 에는 Velero 1.7이 포함되어 있으며 OCP 4.11 이상에는 존재하지 않는 API 그룹 snapshot.storage.k8s.io/v1beta1
이 예상됩니다.
클라우드 공급자가 스냅샷을 지원하지 않거나 스토리지가 NFS인 경우 오브젝트 스토리지에서 File System Backup: Kopia 또는 Restic을 사용하여 애플리케이션을 백업하여 애플리케이션을 백업할 수 있습니다.
기본 보안을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.
4.6.1.1. AWS S3 호환 백업 스토리지 공급자
OADP는 다양한 백업 및 스냅샷 작업에 사용하기 위해 많은 오브젝트 스토리지 공급자와 호환됩니다. 여러 오브젝트 스토리지 공급자가 완전히 지원되며, 일부 오브젝트 스토리지 공급자는 지원되지만 작동하지 않으며 일부에는 알려진 제한 사항이 있습니다.
4.6.1.1.1. 지원되는 백업 스토리지 공급자
다음 AWS S3 호환 오브젝트 스토리지 공급자는 AWS 플러그인을 통해 백업 스토리지 위치로 사용하기 위해 OADP에서 완전히 지원합니다.
- MinIO
- MCG(Multicloud Object Gateway)
- AWS(Amazon Web Services) S3
- IBM Cloud® Object Storage S3
- Ceph RADOS Gateway(Ceph Object Gateway)
- Red Hat Container Storage
- {odf-full}
- GCP(Google Cloud Platform)
- Microsoft Azure
GCP(Google Cloud Platform) 및 Microsoft Azure에는 자체 Velero 오브젝트 저장소 플러그인이 있습니다.
4.6.1.1.2. 지원되지 않는 백업 스토리지 공급자
다음 AWS S3 호환 오브젝트 스토리지 공급자는 백업 스토리지 위치로 사용하기 위해 AWS 플러그인을 통해 Velero와 함께 작업하는 것으로 알려져 있지만 이는 지원되지 않으며 Red Hat에서 테스트하지 않았습니다.
- IBM Cloud
- Oracle Cloud
- DigitalOcean
- MCG(Multicloud Object Gateway)를 사용하여 설치하지 않는 한 NooBaa
- Tencent Cloud
- Ceph RADOS v12.2.7
- Quobyte
- Cloudian HyperStore
달리 지정하지 않는 한 "NooBa"는 경량 오브젝트 스토리지를 제공하는 오픈 소스 프로젝트를 나타내며 "MCG(Multicloud Object Gateway)는 NooBaa의 Red Hat 배포를 나타냅니다.
MCG에 대한 자세한 내용은 애플리케이션을 사용하여 Multicloud Object Gateway 액세스를 참조하십시오.
4.6.1.1.3. 알려진 제한이 있는 백업 스토리지 공급자
다음 AWS S3 호환 오브젝트 스토리지 공급자는 제한된 기능 세트로 AWS 플러그인을 통해 Velero와 함께 작동하는 것으로 알려져 있습니다.
- Swift - 백업 스토리지의 백업 스토리지 위치로 사용하기 위해 작동하지만 파일 시스템 기반 볼륨 백업 및 복원에는 Restic과 호환되지 않습니다.
4.6.1.2. OpenShift Data Foundation에서 재해 복구를 위해 MCG(Multicloud Object Gateway) 구성
OpenShift Data Foundation에서 MCG 버킷 backupStorageLocation
에 클러스터 스토리지를 사용하는 경우 MCG를 외부 오브젝트 저장소로 구성합니다.
MCG를 외부 오브젝트 저장소로 구성하지 않으면 백업을 사용할 수 없게 될 수 있습니다.
달리 지정하지 않는 한 "NooBa"는 경량 오브젝트 스토리지를 제공하는 오픈 소스 프로젝트를 나타내며 "MCG(Multicloud Object Gateway)는 NooBaa의 Red Hat 배포를 나타냅니다.
MCG에 대한 자세한 내용은 애플리케이션을 사용하여 Multicloud Object Gateway 액세스를 참조하십시오.
절차
- 하이브리드 또는 Multicloud용 스토리지 리소스 추가 에 설명된 대로 MCG를 외부 오브젝트 저장소로 구성합니다.
추가 리소스
4.6.1.3. OADP 업데이트 채널 정보
OADP Operator를 설치할 때 업데이트 채널을 선택합니다. 이 채널은 OADP Operator 및 수신하는 Velero에 대한 업그레이드를 결정합니다. 언제든지 채널을 변경할 수 있습니다.
다음 업데이트 채널을 사용할 수 있습니다.
-
stable 채널이 더 이상 사용되지 않습니다. stable 채널에는
OADP.v1.1.z
용 OADPClusterServiceVersion
및OADP.v1.0.z
의 이전 버전의 패치(z-stream 업데이트)가 포함되어 있습니다. - stable-1.0 채널은 더 이상 사용되지 않으며 지원되지 않습니다.
- stable-1.1 채널은 더 이상 사용되지 않으며 지원되지 않습니다.
- stable-1.2 채널은 더 이상 사용되지 않으며 지원되지 않습니다.
-
stable-1.3 채널에는 최신 OADP 1.3
ClusterServiceVersion
인OADP.v1.3.z
가 포함되어 있습니다. -
stable-1.4 채널에는 최신 OADP 1.4
ClusterServiceVersion
인OADP.v1.4.z
가 포함되어 있습니다.
자세한 내용은 OpenShift Operator 라이프 사이클 을 참조하십시오.
어떤 업데이트 채널을 사용할 수 있습니까?
-
stable 채널이 더 이상 사용되지 않습니다. stable 채널을 이미 사용 중인 경우
OADP.v1.1.z
에서 업데이트를 계속 받을 수 있습니다. - OADP 1.y를 설치하고 패치를 계속 받을 stable-1.y 업데이트 채널을 선택합니다. 이 채널을 선택하면 버전 1.y.z에 대한 모든 z-stream 패치가 제공됩니다.
언제 업데이트 채널을 전환해야합니까?
- OADP 1.y가 설치되어 있고 해당 y-stream용 패치를 받으려면 stable 업데이트 채널에서 stable -1.y 업데이트 채널로 전환해야 합니다. 그런 다음 버전 1.y.z에 대한 모든 z-stream 패치를 받게 됩니다.
- OADP 1.0이 설치되어 있고 OADP 1.1로 업그레이드하려는 경우 패치는 stable-1.0 업데이트 채널에서 stable-1.1 업데이트 채널로 전환해야 합니다. 그런 다음 버전 1.1.z에 대한 모든 z-stream 패치를 받게 됩니다.
- OADP 1. y 가 0보다 크고 OADP 1.0으로 전환하려면 OADP Operator를 제거한 다음 stable-1.0 업데이트 채널을 사용하여 다시 설치해야 합니다. 그런 다음 버전 1.0.z에 대한 모든 z-stream 패치를 받게 됩니다.
업데이트 채널을 전환하여 OADP 1.y에서 OADP 1.0으로 전환할 수 없습니다. Operator를 제거한 다음 다시 설치해야 합니다.
4.6.1.4. 여러 네임스페이스에 OADP 설치
여러 프로젝트 소유자가 자체 OADP 인스턴스를 관리할 수 있도록 OADP(OpenShift API for Data Protection)를 동일한 클러스터의 여러 네임스페이스에 설치할 수 있습니다. 이 사용 사례는 파일 시스템 백업(FSB) 및 CSI(Container Storage Interface)에서 검증되었습니다.
다음 추가 요구 사항을 사용하여 이 문서에 포함된 플랫폼별 절차에 따라 OADP의 각 인스턴스를 설치합니다.
- 동일한 클러스터에 있는 OADP의 모든 배포는 동일한 버전이어야 합니다(예: 1.1.4). 동일한 클러스터에 다른 버전의 OADP를 설치할 수 없습니다.
-
OADP의 개별 배포마다 고유한 인증 정보 세트 및 하나 이상의
BackupStorageLocation
구성이 있어야 합니다. 동일한 네임 스페이스 내에서 여러BackupStorageLocation
구성을 사용할 수도 있습니다. - 기본적으로 각 OADP 배포에는 네임스페이스에서 클러스터 수준 액세스 권한이 있습니다. OpenShift Container Platform 관리자는 보안 및 RBAC 설정을 주의 깊게 검토하고 각 OADP 인스턴스에 올바른 권한이 있는지 확인하기 위해 필요한 사항을 변경해야 합니다.
추가 리소스
4.6.1.5. 수집된 데이터를 기반으로 하는 Velero CPU 및 메모리 요구 사항
다음 권장 사항은 규모 및 성능 랩에서 수행된 성능 관찰을 기반으로 합니다. 백업 및 복원 리소스는 플러그인 유형, 해당 백업 또는 복원에 필요한 리소스 양, 해당 리소스와 관련된 PV(영구 볼륨)에 포함된 해당 데이터의 영향을 받을 수 있습니다.
4.6.1.5.1. 구성에 대한 CPU 및 메모리 요구 사항
구성 유형 | [1] 평균 사용량 | [2] 대규모 사용 | resourceTimeouts |
---|---|---|---|
CSI | Velero: cpu- 요청 200m, 제한 1000m memory - 256Mi 요청, 제한 1024Mi | Velero: CPU- 요청 200m, 제한 2000m memory- requests 256Mi, Limits 2048Mi | 해당 없음 |
Restic | [3] Restic: CPU- 요청 1000m, 제한 2000m memory - 16Gi 요청, 32Gi 제한 | [4] Restic: CPU - 2000m 요청, 8000m 제한 Memory - 16Gi 요청, 제한 40Gi | 900m |
[5] 데이터 관리 | 해당 없음 | 해당 없음 | 10m - 평균 사용량 60m - 대규모 사용 |
- 평균 사용량 - 대부분의 사용 상황에 대해 이러한 설정을 사용합니다.
- 대규모 사용 - 대규모 PV(500GB 사용), 다중 네임스페이스(100+) 또는 단일 네임스페이스(2000 pods+) 내의 여러 Pod 및 대규모 데이터 세트와 관련된 백업 및 복원을 위한 최적의 성능을 위해 이러한 설정을 사용합니다.
- Restic 리소스 사용량은 데이터 양 및 데이터 유형에 해당합니다. 예를 들어 많은 작은 파일 또는 대량의 데이터가 있으면 Restic에서 대량의 리소스를 사용할 수 있습니다. Velero 문서는 500m을 제공된 기본값으로 참조합니다. 대부분의 테스트에서는 1000m 제한이 있는 200m 요청을 찾았습니다. Velero 문서에서 인용한 대로 정확한 CPU 및 메모리 사용은 환경 제한 외에도 파일 및 디렉터리의 크기에 따라 달라집니다.
- CPU를 늘리면 백업 및 복원 시간 개선에 큰 영향을 미칩니다.
- Data Mover - Data Mover 기본 resourceTimeout은 10m입니다. 테스트 결과 대규모 PV(500GB 사용량)를 복원하려면 resourceTimeout을 60m로 늘려야 합니다.
가이드 전체에 나열된 리소스 요구 사항은 평균 사용량 전용입니다. 큰 용도의 경우 위의 표에 설명된 대로 설정을 조정합니다.
4.6.1.5.2. 대규모 사용을 위한 nodeagent CPU
테스트 결과 NodeAgent
CPU를 늘리면 OADP(OpenShift API for Data Protection)를 사용할 때 백업 및 복원 시간을 크게 향상시킬 수 있습니다.
Kopia의 적극적인 리소스 사용으로 인해 프로덕션 워크로드를 실행하는 노드의 프로덕션 환경에서 제한 없이 Kopia를 사용하지 않는 것이 좋습니다. 그러나 너무 낮은 제한으로 Kopia를 실행하면 CPU 제한 및 백업 속도가 느려지고 복원 상황이 발생합니다. 테스트 결과 20개 코어 및 32Gi 메모리가 있는 Kopia를 실행하면 100GB 이상의 데이터, 여러 네임스페이스 또는 2000개 이상의 Pod가 단일 네임스페이스에서 백업 및 복원 작업을 지원했습니다.
이러한 리소스 사양을 사용하여 CPU 제한 또는 메모리 포화 상태로 감지된 테스트입니다.
rook-ceph Pod에서 CPU 및 메모리 리소스 변경 절차에 따라 Ceph MDS Pod 에서 이러한 제한을 설정할 수 있습니다.
제한을 설정하려면 스토리지 클러스터 CR(사용자 정의 리소스)에 다음 행을 추가해야 합니다.
resources: mds: limits: cpu: "3" memory: 128Gi requests: cpu: "3" memory: 8Gi
4.6.2. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.13에 OADP(OpenShift API for Data Protection) Operator를 설치할 수 있습니다.
OADP Operator는 Velero 1.14 를 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
설치를 클릭하여
openshift-adp
프로젝트에서 Operator를 설치합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
4.6.2.1. OADP-Velero-OpenShift Container Platform 버전 관계
OADP 버전 | Velero 버전 | OpenShift Container Platform 버전 |
---|---|---|
1.1.0 | 4.9 이상 | |
1.1.1 | 4.9 이상 | |
1.1.2 | 4.9 이상 | |
1.1.3 | 4.9 이상 | |
1.1.4 | 4.9 이상 | |
1.1.5 | 4.9 이상 | |
1.1.6 | 4.11 이상 | |
1.1.7 | 4.11 이상 | |
1.2.0 | 4.11 이상 | |
1.2.1 | 4.11 이상 | |
1.2.2 | 4.11 이상 | |
1.2.3 | 4.11 이상 | |
1.3.0 | 4.10 - 4.15 | |
1.3.1 | 4.10 - 4.15 | |
1.3.2 | 4.10 - 4.15 | |
1.3.3 | 4.10 - 4.15 | |
1.4.0 | 4.14 이상 | |
1.4.1 | 4.14 이상 |
4.6.3. Amazon Web Services를 사용하여 데이터 보호를 위한 OpenShift API 구성
OADP Operator를 설치하여 AWS(Amazon Web Services)를 사용하여 OADP(OpenShift API for Data Protection)를 설치합니다. Operator는 Velero 1.14 를 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 Migration Toolkit for Containers Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Velero에 대해 AWS를 구성하고, 기본 보안
보안을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.
제한된 네트워크 환경에서 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.6.3.1. Amazon Web Services 구성
OpenShift API for Data Protection(OADP)을 위해 AWS(Amazon Web Services)를 구성합니다.
사전 요구 사항
- AWS CLI가 설치되어 있어야 합니다.
절차
BUCKET
변수를 설정합니다.$ BUCKET=<your_bucket>
REGION
변수를 설정합니다.$ REGION=<your_region>
AWS S3 버킷을 생성합니다.
$ aws s3api create-bucket \ --bucket $BUCKET \ --region $REGION \ --create-bucket-configuration LocationConstraint=$REGION 1
- 1
us-east-1
은LocationConstraint
를 지원하지 않습니다. 리전이us-east-1
인 경우--create-bucket-configuration LocationConstraint=$REGION
을 생략합니다.
IAM 사용자를 생성합니다.
$ aws iam create-user --user-name velero 1
- 1
- Velero를 사용하여 여러 S3 버킷이 있는 여러 클러스터를 백업하려면 각 클러스터에 대해 고유한 사용자 이름을 생성합니다.
velero-policy.json
파일을 생성합니다.$ cat > velero-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::${BUCKET}/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::${BUCKET}" ] } ] } EOF
정책을 연결하여
velero
사용자에게 최소한의 필요한 권한을 부여합니다.$ aws iam put-user-policy \ --user-name velero \ --policy-name velero \ --policy-document file://velero-policy.json
velero
사용자에 대한 액세스 키를 생성합니다.$ aws iam create-access-key --user-name velero
출력 예
{ "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, "AccessKeyId": <AWS_ACCESS_KEY_ID> } }
credentials-velero
파일을 생성합니다.$ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF
Data Protection Application을 설치하기 전에
credentials-velero
파일을 사용하여 AWS에 대한Secret
오브젝트를 생성합니다.
4.6.3.2. 백업 및 스냅샷 위치 및 시크릿 정보
DataProtectionApplication
CR(사용자 정의 리소스)에 백업 및 스냅샷 위치와 해당 시크릿을 지정합니다.
백업 위치
AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Red Hat Container Storage; Ceph Object Gateway, {odf-full}; 또는 MinIO와 같은 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
클라우드 공급자의 기본 스냅샷 API를 사용하여 영구 볼륨을 백업하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하므로 스냅샷 위치를 지정할 필요가 없습니다.
FSB(File System Backup)를 사용하는 경우 FSB가 오브젝트 스토리지에서 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 Secret
을 생성합니다.
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
백업
위치에
대한 사용자 지정 보안(DataProtectionApplication
CR에서 지정) -
DataProtectionApplication
CR에서 참조하지 않는 스냅샷 위치에 대한 기본 보안입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 Secret
을 생성할 수 있습니다.
4.6.3.2.1. 기본 보안 생성
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
Secret
의 기본 이름은 cloud-credentials
입니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
적절한 형식으로 오브젝트 스토리지에 대한
credentials-velero
파일을 생성해야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.6.3.2.2. 다양한 자격 증명에 대한 프로필 생성
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 credentials-velero
파일에 별도의 프로필을 생성합니다.
그런 다음 Secret
오브젝트를 생성하고 DataProtectionApplication
CR(사용자 정의 리소스)에 프로필을 지정합니다.
절차
다음 예제와 같이 백업 및 스냅샷 위치에 대한 별도의 프로필이 있는
credentials-velero
파일을 생성합니다.[backupStorage] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> [volumeSnapshot] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
credentials-velero
파일을 사용하여Secret
오브젝트를 생성합니다.$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero 1
다음 예제와 같이
DataProtectionApplication
CR에 프로필을 추가합니다.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> prefix: <prefix> config: region: us-east-1 profile: "backupStorage" credential: key: cloud name: cloud-credentials snapshotLocations: - velero: provider: aws config: region: us-west-2 profile: "volumeSnapshot"
4.6.3.2.3. AWS를 사용하여 백업 스토리지 위치 구성
다음 예제 절차에 표시된 대로 AWS 백업 스토리지 위치(BSL)를 구성할 수 있습니다.
사전 요구 사항
- AWS를 사용하여 오브젝트 스토리지 버킷을 생성했습니다.
- OADP Operator가 설치되어 있습니다.
절차
사용 사례에 적용할 수 있는 값으로 BSL CR(사용자 정의 리소스)을 구성합니다.
백업 스토리지 위치
apiVersion: oadp.openshift.io/v1alpha1 kind: BackupStorageLocation metadata: name: default namespace: openshift-adp spec: provider: aws 1 objectStorage: bucket: <bucket_name> 2 prefix: <bucket_prefix> 3 credential: 4 key: cloud 5 name: cloud-credentials 6 config: region: <bucket_region> 7 s3ForcePathStyle: "true" 8 s3Url: <s3_url> 9 publicUrl: <public_s3_url> 10 serverSideEncryption: AES256 11 kmsKeyId: "50..c-4da1-419f-a16e-ei...49f" 12 customerKeyEncryptionFile: "/credentials/customer-key" 13 signatureVersion: "1" 14 profile: "default" 15 insecureSkipTLSVerify: "true" 16 enableSharedConfig: "true" 17 tagging: "" 18 checksumAlgorithm: "CRC32" 19
- 1 1
- 오브젝트 저장소 플러그인의 이름입니다. 이 예제에서 플러그인은
aws
입니다. 이 필드는 필수입니다. - 2
- 백업을 저장할 버킷의 이름입니다. 이 필드는 필수입니다.
- 3
- 백업을 저장할 버킷 내 접두사입니다. 이 필드는 선택 사항입니다.
- 4
- 백업 스토리지 위치에 대한 자격 증명입니다. 사용자 지정 인증 정보를 설정할 수 있습니다. 사용자 정의 인증 정보가 설정되지 않은 경우 기본 인증 정보의 시크릿이 사용됩니다.
- 5
- 시크릿 인증 정보 데이터 내의
키
입니다. - 6
- 인증 정보가 포함된 시크릿의 이름입니다.
- 7
- 버킷이 있는 AWS 리전입니다. s3ForcePathStyle이 false인 경우 선택 사항입니다.
- 8
- 가상 호스트 버킷 주소 지정 대신 경로 스타일 주소 지정을 사용할지 여부를 결정하는 부울 플래그입니다. MinIO 또는 NooBaa와 같은 스토리지 서비스를 사용하는 경우
true
로 설정합니다. 이 필드는 선택적 필드입니다. 기본값은false
입니다. - 9
- 명시적성을 위해 AWS S3 URL을 지정할 수 있습니다. 이 필드는 주로 MinIO 또는 NooBaa와 같은 스토리지 서비스를 위한 것입니다. 이 필드는 선택적 필드입니다.
- 10
- 이 필드는 주로 MinIO 또는 NooBaa와 같은 스토리지 서비스에 사용됩니다. 이 필드는 선택적 필드입니다.
- 11
- 오브젝트 업로드에 사용할 서버 측 암호화 알고리즘의 이름입니다(예:
AES256
). 이 필드는 선택적 필드입니다. - 12
- AWS KMS 키 ID를 지정합니다. 예제에 표시된 대로 별칭(예:
alias/<KMS-key-alias-name
> ) 또는 전체ARN
을 지정하여 S3에 저장된 백업의 암호화를 활성화할 수 있습니다.kmsKeyId
는customerKeyEncryptionFile
과 함께 사용할 수 없습니다. 이 필드는 선택적 필드입니다. - 13
SSE-C
고객 키가 있는 파일을 지정하여 S3에 저장된 백업의 고객 키 암호화를 활성화합니다. 파일에는 32바이트 문자열이 포함되어야 합니다.customerKeyEncryptionFile
필드는velero
컨테이너 내에서 마운트된 시크릿을 가리킵니다.velero
cloud-credentials
시크릿에 다음 키-값 쌍을 추가합니다.customer-key: <your_b64_encoded_32byte_string>
.customerKeyEncryptionFile
필드는kmsKeyId
필드와 함께 사용할 수 없습니다. 기본값은 빈 문자열(""
)이며 이는SSE-C
가 비활성화되어 있습니다. 이 필드는 선택적 필드입니다.- 14
- 서명된 URL을 생성하는 데 사용되는 서명 알고리즘의 버전입니다. 서명된 URL을 사용하여 백업을 다운로드하거나 로그를 가져옵니다. 유효한 값은
1
및4
입니다. 기본 버전은4
입니다. 이 필드는 선택적 필드입니다. - 15
- 인증 정보 파일에 있는 AWS 프로필의 이름입니다. 기본값은
default
입니다. 이 필드는 선택적 필드입니다. - 16
- 오브젝트 저장소에 연결할 때 TLS 인증서를 확인하지 않으려면
insecureSkipTLSVerify
필드를true
로 설정합니다(예: MinIO를 사용한 자체 서명 인증서의 경우).true
로 설정하는 것은 중간자 공격에 취약하며 프로덕션 워크로드에는 권장되지 않습니다. 기본값은false
입니다. 이 필드는 선택적 필드입니다. - 17
- 인증 정보 파일을 공유 구성 파일로 로드하려면
enableSharedConfig
필드를true
로 설정합니다. 기본값은false
입니다. 이 필드는 선택적 필드입니다. - 18
- AWS S3 오브젝트에 주석을 달 태그를 지정합니다. 키-값 쌍으로 태그를 지정합니다. 기본값은 빈 문자열(
""
)입니다. 이 필드는 선택적 필드입니다. - 19
- 오브젝트를 S3에 업로드하는 데 사용할 체크섬 알고리즘을 지정합니다. 지원되는 값은 CRC32 ,
CRC32
CSHA1
,SHA256
입니다. 필드를 빈 문자열(""
)으로 설정하면 체크섬 검사를 건너뜁니다. 기본값은CRC32
입니다. 이 필드는 선택적 필드입니다.
4.6.3.2.4. 추가 데이터 보안을 위한 OADP SSE-C 암호화 키 생성
AWS(Amazon Web Services) S3는 Amazon S3 관리 키(SSE-S3)를 Amazon S3의 모든 버킷의 기본 암호화 수준으로 적용하여 서버 측 암호화를 적용합니다.
OADP(OpenShift API for Data Protection)는 클러스터에서 스토리지로 데이터를 전송할 때 SSL/TLS, HTTPS, velero-repo-credentials
시크릿을 사용하여 데이터를 암호화합니다. AWS 인증 정보가 손실되거나 도난된 경우 백업 데이터를 보호하려면 추가 암호화 계층을 적용합니다.
velero-plugin-for-aws 플러그인은 몇 가지 추가 암호화 방법을 제공합니다. 해당 구성 옵션을 검토하고 추가 암호화를 구현하는 것이 좋습니다.
SSE-C(고객 제공 키)와 함께 서버 측 암호화를 사용하여 고유한 암호화 키를 저장할 수 있습니다. 이 기능은 AWS 인증 정보가 노출되는 경우 추가 보안을 제공합니다.
암호화 키를 안전하고 안전한 방식으로 저장해야 합니다. 암호화 키가 없는 경우 암호화된 데이터 및 백업을 복구할 수 없습니다.
사전 요구 사항
OADP 마운트를
/credentials
의 Velero pod에 포함하는 시크릿을 만들려면 cloud-credentials :cloud-credentials
에 다음과 같은 기본 시크릿 이름을 사용하고 다음 라벨 중 하나를 비워 둡니다.-
dpa.spec.backupLocations[].velero.credential
dpa.spec.snapshotLocations[].velero.credential
다음은 알려진 문제에 대한 해결 방법입니다. https://issues.redhat.com/browse/OADP-3971.
-
다음 절차에는 인증 정보를 지정하지 않는 spec:backupLocations
블록의 예가 포함되어 있습니다. 이 예제에서는 OADP 시크릿 마운트를 트리거합니다.
-
cloud-credentials
와 다른 이름으로 백업 위치가 필요한 경우 인증 정보 이름이 포함되지 않은 다음 예제의 스냅샷 위치를 추가해야 합니다. 예제에는 인증 정보 이름이 없기 때문에 스냅샷 위치는cloud-credentials
를 스냅샷 생성의 시크릿으로 사용합니다.
인증 정보가 지정되지 않은 DPA의 스냅샷 위치 예
snapshotLocations: - velero: config: profile: default region: <region> provider: aws # ...
절차
SSE-C 암호화 키를 생성합니다.
임의의 번호를 생성하고 다음 명령을 실행하여
sse.key
라는 파일로 저장합니다.$ dd if=/dev/urandom bs=1 count=32 > sse.key
Base64를 사용하여
sse.key
를 인코딩하고 다음 명령을 실행하여 결과를sse_encoded.key
라는 파일로 저장합니다.$ cat sse.key | base64 > sse_encoded.key
다음 명령을 실행하여
sse_encoded.key
라는 파일을customer-key
라는 새 파일에 연결합니다.$ ln -s sse_encoded.key customer-key
OpenShift Container Platform 시크릿을 생성합니다.
처음에 OADP를 설치하고 구성하는 경우 다음 명령을 실행하여 AWS 인증 정보 및 암호화 키 시크릿을 동시에 생성합니다.
$ oc create secret generic cloud-credentials --namespace openshift-adp --from-file cloud=<path>/openshift_aws_credentials,customer-key=<path>/sse_encoded.key
기존 설치를 업데이트하는 경우 다음 예와 같이
DataProtectionApplication
CR 매니페스트의cloud-credential
시크릿
블록 값을 편집합니다.apiVersion: v1 data: cloud: W2Rfa2V5X2lkPSJBS0lBVkJRWUIyRkQ0TlFHRFFPQiIKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5P<snip>rUE1mNWVSbTN5K2FpeWhUTUQyQk1WZHBOIgo= customer-key: v+<snip>TFIiq6aaXPbj8dhos= kind: Secret # ...
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의backupLocations
블록에서customerKeyEncryptionFile
속성 값을 편집합니다.spec: backupLocations: - velero: config: customerKeyEncryptionFile: /credentials/customer-key profile: default # ...
주의기존 설치에서 시크릿 인증 정보를 올바르게 마운트하려면 Velero 포드를 다시 시작해야 합니다.
설치가 완료되었으며 OpenShift Container Platform 리소스를 백업하고 복원할 수 있습니다. AWS S3 스토리지에 저장된 데이터는 새 키로 암호화되며 추가 암호화 키 없이는 AWS S3 콘솔 또는 API에서 다운로드할 수 없습니다.
검증
추가 키를 포함하지 않고 암호화된 파일을 다운로드할 수 없는지 확인하려면 테스트 파일을 만들고 업로드한 다음 다운로드하려고 합니다.
다음 명령을 실행하여 테스트 파일을 생성합니다.
$ echo "encrypt me please" > test.txt
다음 명령을 실행하여 테스트 파일을 업로드합니다.
$ aws s3api put-object \ --bucket <bucket> \ --key test.txt \ --body test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256
파일을 다운로드해 보십시오. Amazon 웹 콘솔 또는 터미널에서 다음 명령을 실행합니다.
$ s3cmd get s3://<bucket>/test.txt test.txt
파일이 추가 키로 암호화되므로 다운로드에 실패합니다.
다음 명령을 실행하여 추가 암호화 키로 파일을 다운로드합니다.
$ aws s3api get-object \ --bucket <bucket> \ --key test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 \ downloaded.txt
다음 명령을 실행하여 파일 내용을 읽습니다.
$ cat downloaded.txt
출력 예
encrypt me please
추가 리소스
다른 명령을 실행하여 Velcro로 백업된 추가 암호화 키가 있는 파일을 다운로드할 수도 있습니다. Velero에서 지원하는 파일은 SSE-C 암호화 키로 파일 다운로드를 참조하십시오.
4.6.3.2.4.1. Velero에서 지원하는 파일의 SSE-C 암호화 키로 파일 다운로드
SSE-C 암호화 키를 확인하는 경우 Velcro로 백업된 파일의 추가 암호화 키로 파일을 다운로드할 수도 있습니다.
절차
- 다음 명령을 실행하여 Velero에서 백업한 파일의 추가 암호화 키로 파일을 다운로드합니다.
$ aws s3api get-object \ --bucket <bucket> \ --key velero/backups/mysql-persistent-customerkeyencryptionfile4/mysql-persistent-customerkeyencryptionfile4.tar.gz \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 \ --debug \ velero_download.tar.gz
4.6.3.3. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.6.3.3.1. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: nodeSelector: <node_selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.
4.6.3.3.2. 자체 서명된 CA 인증서 활성화
알 수 없는 기관 오류로 서명된 인증서를 방지하려면
활성화해야 합니다.
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 오브젝트 스토리지에 자체 서명된 CA 인증서를
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
DataProtectionApplication
CR 매니페스트의spec.backupLocations.velero.objectStorage.caCert
매개변수 및spec.backupLocations.velero.config
매개변수를 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.6.3.3.2.1. Velero 배포에 별칭이 지정된 velero 명령과 함께 CA 인증서 사용
별칭을 생성하여 시스템에 로컬로 설치하지 않고 Velero CLI를 사용할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 클러스터에 로그인해야 합니다. OpenShift CLI(
oc
)가 설치되어 있어야 합니다.aliased Velero 명령을 사용하려면 다음 명령을 실행합니다.
$ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
다음 명령을 실행하여 별칭이 작동하는지 확인합니다.
예제
$ velero version Client: Version: v1.12.1-OADP Git commit: - Server: Version: v1.12.1-OADP
이 명령으로 CA 인증서를 사용하려면 다음 명령을 실행하여 Velero 배포에 인증서를 추가할 수 있습니다.
$ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
$ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
백업 로그를 가져오려면 다음 명령을 실행합니다.
$ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>
이러한 로그를 사용하여 백업할 수 없는 리소스에 대한 오류 및 경고를 볼 수 있습니다.
-
Velero 포드가 다시 시작되면
/tmp/your-cacert.txt
파일이 사라지고 이전 단계의 명령을 다시 실행하여/tmp/your-cacert.txt
파일을 다시 생성해야 합니다. 다음 명령을 실행하여
/tmp/your-cacert.txt
파일이 여전히 있는지 확인할 수 있습니다.$ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt
향후 OpenShift API for Data Protection(OADP) 릴리스에서는 이 단계가 필요하지 않도록 Velero 포드에 인증서를 마운트할 계획입니다.
4.6.3.4. 데이터 보호 애플리케이션 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials
를 사용하여 보안을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 자격 증명을 사용하는 경우 백업 및 스냅샷 위치 자격 증명에 대한 별도의 프로필이 포함된 기본 이름
cloud-credentials
로시크릿
을 생성해야 합니다.참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을 사용하여 기본Secret
을 생성할 수 있습니다. 기본Secret
이 없는 경우 설치가 실패합니다.
절차
-
Operators
설치된 Operators 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 의 경우 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp 1 spec: configuration: velero: defaultPlugins: - openshift 2 - aws resourceTimeout: 10m 3 nodeAgent: 4 enable: true 5 uploaderType: kopia 6 podConfig: nodeSelector: <node_selector> 7 backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket_name> 8 prefix: <prefix> 9 config: region: <region> profile: "default" s3ForcePathStyle: "true" 10 s3Url: <s3_url> 11 credential: key: cloud name: cloud-credentials 12 snapshotLocations: 13 - name: default velero: provider: aws config: region: <region> 14 profile: "default" credential: key: cloud name: cloud-credentials 15
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
openshift
플러그인은 필수입니다.- 3
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
- 4
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 5
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 6
- 업로드로
kopia
또는restic
을 입력합니다. 설치 후에는 선택을 변경할 수 없습니다. 기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 7
- Kopia 또는 Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia 또는 Restic은 모든 노드에서 실행됩니다.
- 8
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 9
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다.
- 10
- S3 오브젝트에 대해 경로 스타일 URL을 강제 적용할지 여부를 지정합니다(부울). AWS S3에는 필요하지 않습니다. S3 호환 스토리지에만 필요합니다.
- 11
- 백업을 저장하는 데 사용 중인 오브젝트 저장소의 URL을 지정합니다. AWS S3에는 필요하지 않습니다. S3 호환 스토리지에만 필요합니다.
- 12
- 생성한
Secret
오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본값cloud-credentials
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 13
- CSI 스냅샷 또는 FSB(File System Backup)를 사용하여 PV를 백업하지 않는 한 스냅샷 위치를 지정합니다.
- 14
- 스냅샷 위치는 PV와 동일한 리전에 있어야 합니다.
- 15
- 생성한
Secret
오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본값cloud-credentials
가 사용됩니다. 사용자 지정 이름을 지정하면 스냅샷 위치에 사용자 지정 이름이 사용됩니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우credentials-velero
파일에 별도의 프로필을 생성합니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
4.6.3.4.1. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.3.5. MD5 체크섬 알고리즘을 사용하여 백업 스토리지 위치 구성
DPA(Data Protection Application)에서 백업 스토리지 위치(BSL)를 구성하여 Amazon Simple Storage Service(Amazon S3) 및 S3 호환 스토리지 공급자 모두에 MD5 체크섬 알고리즘을 사용할 수 있습니다. 체크섬 알고리즘은 Amazon S3에 오브젝트를 업로드하고 다운로드하는 체크섬을 계산합니다. 다음 옵션 중 하나를 사용하여 DPA의 spec.backupLocations.velero.config.checksumAlgorithm
섹션에서 checksumAlgorithm
필드를 설정할 수 있습니다.
-
CRC32
-
CRC32C
-
SHA1
-
SHA256
checksumAlgorithm
필드를 빈 값으로 설정하여 MD5 체크섬 검사를 건너뛸 수도 있습니다.
checksumAlgorithm
필드의 값을 설정하지 않으면 기본값은 CRC32
로 설정됩니다.
사전 요구 사항
- OADP Operator가 설치되어 있습니다.
- Amazon S3 또는 S3 호환 오브젝트 스토리지를 백업 위치로 구성했습니다.
절차
다음 예와 같이 DPA에서 BSL을 구성합니다.
데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: checksumAlgorithm: "" 1 insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: velero: defaultPlugins: - openshift - aws - csi
- 1
checksumAlgorithm
을 지정합니다. 이 예에서는checksumAlgorithm
필드가 빈 값으로 설정됩니다. 다음 목록에서 옵션을 선택할 수 있습니다. CRC32 ,CRC32
CSHA1
,SHA256
.
If you are using Noobaa as the object storage provider, and you do not set the spec.backupLocations.velero.config.checksumAlgorithm
field in the DPA, an empty value of checksumAlgorithm
is added to the BSL configuration.
빈 값은 DPA를 사용하여 생성된 BSL에만 추가됩니다. 이 값은 다른 방법을 사용하여 BSL을 생성하는 경우 추가되지 않습니다.
4.6.3.6. 클라이언트 버스트 및 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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.3.7. 두 개 이상의 BSL로 DPA 구성
DPA를 두 개 이상의 BSL로 구성하고 클라우드 공급자가 제공하는 자격 증명을 지정할 수 있습니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 클라우드 공급자가 제공하는 인증 정보를 사용하여 시크릿을 생성해야 합니다.
절차
두 개 이상의 BSL로 DPA를 구성합니다. 다음 예제를 참조하십시오.
DPA 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication #... backupLocations: - name: aws 1 velero: provider: aws default: true 2 objectStorage: bucket: <bucket_name> 3 prefix: <prefix> 4 config: region: <region_name> 5 profile: "default" credential: key: cloud name: cloud-credentials 6 - name: odf 7 velero: provider: aws default: false objectStorage: bucket: <bucket_name> prefix: <prefix> config: profile: "default" region: <region_name> s3Url: <url> 8 insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" credential: key: cloud name: <custom_secret_name_odf> 9 #...
- 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의 예
apiVersion: velero.io/v1 kind: Backup # ... spec: includedNamespaces: - <namespace> 1 storageLocation: <backup_storage_location> 2 defaultVolumesToFsBackup: true
4.6.3.7.1. DataProtectionApplication CR에서 CSI 활성화
CSI 스냅샷을 사용하여 영구 볼륨을 백업하기 위해 DataProtectionApplication
CR(사용자 정의 리소스)에서 CSI(Container Storage Interface)를 활성화합니다.
사전 요구 사항
- 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication ... spec: configuration: velero: defaultPlugins: - openshift - csi 1
- 1
csi
기본 플러그인을 추가합니다.
4.6.3.7.2. DataProtectionApplication에서 노드 에이전트 비활성화
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: false 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: true 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.
4.6.4. IBM Cloud를 사용하여 OpenShift API for Data Protection 구성
IBM Cloud 클러스터에 OpenShift API for Data Protection(OADP) Operator를 설치하여 클러스터에서 애플리케이션을 백업 및 복원합니다. 백업을 저장하도록 IBM Cloud Object Storage(COS)를 구성합니다.
4.6.4.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
다음 명령을 실행하여 버킷 이름을 설정합니다.
$ BUCKET=<bucket_name>
다음 명령을 실행하여 버킷 리전을 설정합니다.
$ REGION=<bucket_region> 1
- 1
- 버킷 리전을 지정합니다(예:
eu-gb
).
다음 명령을 실행하여 리소스 그룹을 생성합니다.
$ ibmcloud resource group-create <resource_group_name>
다음 명령을 실행하여 대상 리소스 그룹을 설정합니다.
$ ibmcloud target -g <resource_group_name>
다음 명령을 실행하여 대상 리소스 그룹이 올바르게 설정되었는지 확인합니다.
$ ibmcloud target
출력 예
API endpoint: https://cloud.ibm.com Region: User: test-user Account: Test Account (fb6......e95) <-> 2...122 Resource group: Default
예제 출력에서 리소스 그룹은
Default
로 설정됩니다.다음 명령을 실행하여 리소스 그룹 이름을 설정합니다.
$ RESOURCE_GROUP=<resource_group> 1
- 1
- 리소스 그룹 이름을 지정합니다(예:
"default"
).
다음 명령을 실행하여 IBM Cloud
service-instance
리소스를 생성합니다.$ ibmcloud resource service-instance-create \ <service_instance_name> \1 <service_name> \2 <service_plan> \3 <region_name> 4
명령 예
$ ibmcloud resource service-instance-create test-service-instance cloud-object-storage \ 1 standard \ global \ -d premium-global-deployment 2
다음 명령을 실행하여 서비스 인스턴스 ID를 추출합니다.
$ SERVICE_INSTANCE_ID=$(ibmcloud resource service-instance test-service-instance --output json | jq -r '.[0].id')
다음 명령을 실행하여 COS 버킷을 생성합니다.
$ ibmcloud cos bucket-create \// --bucket $BUCKET \// --ibm-service-instance-id $SERVICE_INSTANCE_ID \// --region $REGION
$BUCKET
,$SERVICE_INSTANCE_ID
및$REGION
과 같은 변수는 이전에 설정한 값으로 교체됩니다.다음 명령을 실행하여
HMAC
자격 증명을 만듭니다.$ ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance --parameters {\"HMAC\":true}
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__
4.6.4.2. 기본 보안 생성
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
적절한 형식으로 오브젝트 스토리지에 대한
credentials-velero
파일을 생성해야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.6.4.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
-
오브젝트 스토리지에 적합한 형식으로 백업 위치에 대한
credentials-velero
파일을 생성합니다. 사용자 지정 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예제와 같이 사용자 지정 이름으로
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: <provider> default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix>
- 1
- 사용자 지정 이름으로 백업 위치 보안.
4.6.4.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
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: namespace: openshift-adp name: <dpa_name> spec: configuration: velero: defaultPlugins: - openshift - aws - csi backupLocations: - velero: provider: aws 1 default: true objectStorage: bucket: <bucket_name> 2 prefix: velero config: insecureSkipTLSVerify: 'true' profile: default region: <region_name> 3 s3ForcePathStyle: 'true' s3Url: <s3_url> 4 credential: key: cloud name: cloud-credentials 5
- 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
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
4.6.4.5. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: nodeSelector: <node_selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
4.6.4.6. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.4.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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.4.8. 두 개 이상의 BSL로 DPA 구성
DPA를 두 개 이상의 BSL로 구성하고 클라우드 공급자가 제공하는 자격 증명을 지정할 수 있습니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 클라우드 공급자가 제공하는 인증 정보를 사용하여 시크릿을 생성해야 합니다.
절차
두 개 이상의 BSL로 DPA를 구성합니다. 다음 예제를 참조하십시오.
DPA 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication #... backupLocations: - name: aws 1 velero: provider: aws default: true 2 objectStorage: bucket: <bucket_name> 3 prefix: <prefix> 4 config: region: <region_name> 5 profile: "default" credential: key: cloud name: cloud-credentials 6 - name: odf 7 velero: provider: aws default: false objectStorage: bucket: <bucket_name> prefix: <prefix> config: profile: "default" region: <region_name> s3Url: <url> 8 insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" credential: key: cloud name: <custom_secret_name_odf> 9 #...
- 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의 예
apiVersion: velero.io/v1 kind: Backup # ... spec: includedNamespaces: - <namespace> 1 storageLocation: <backup_storage_location> 2 defaultVolumesToFsBackup: true
4.6.4.9. DataProtectionApplication에서 노드 에이전트 비활성화
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: false 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: true 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.
4.6.5. Microsoft Azure를 사용하여 데이터 보호를 위한 OpenShift API 구성
OADP Operator를 설치하여 Microsoft Azure와 함께 OADP(OpenShift API for Data Protection)를 설치합니다. Operator는 Velero 1.14 를 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 Migration Toolkit for Containers Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Velero에 대해 Azure를 구성하고, 기본 Secret
을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.
제한된 네트워크 환경에서 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.6.5.1. Microsoft Azure 구성
OADP(OpenShift API for Data Protection)에 대해 Microsoft Azure를 구성합니다.
사전 요구 사항
- Azure CLI가 설치되어 있어야 합니다.
Azure 서비스를 사용하는 툴에는 항상 Azure 리소스가 안전한지 확인하기 위해 제한된 권한이 있어야 합니다. 따라서 애플리케이션이 완전히 권한이 있는 사용자로 로그인하는 대신 Azure는 서비스 주체를 제공합니다. Azure 서비스 주체는 애플리케이션, 호스팅 서비스 또는 자동화된 도구와 함께 사용할 수 있는 이름입니다.
이 ID는 리소스에 대한 액세스에 사용됩니다.
- 서비스 주체 생성
- 서비스 주체 및 암호를 사용하여 로그인
- 서비스 주체 및 인증서를 사용하여 로그인
- 서비스 주체 역할 관리
- 서비스 주체를 사용하여 Azure 리소스 생성
- 서비스 주체 인증 정보 재설정
자세한 내용은 Azure CLI를 사용하여 Azure 서비스 주체 만들기를 참조하십시오.
4.6.5.2. 백업 및 스냅샷 위치 및 시크릿 정보
DataProtectionApplication
CR(사용자 정의 리소스)에 백업 및 스냅샷 위치와 해당 시크릿을 지정합니다.
백업 위치
AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Red Hat Container Storage; Ceph Object Gateway, {odf-full}; 또는 MinIO와 같은 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
클라우드 공급자의 기본 스냅샷 API를 사용하여 영구 볼륨을 백업하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하므로 스냅샷 위치를 지정할 필요가 없습니다.
FSB(File System Backup)를 사용하는 경우 FSB가 오브젝트 스토리지에서 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 Secret
을 생성합니다.
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
백업
위치에
대한 사용자 지정 보안(DataProtectionApplication
CR에서 지정) -
DataProtectionApplication
CR에서 참조하지 않는 스냅샷 위치에 대한 기본 보안입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 Secret
을 생성할 수 있습니다.
4.6.5.2.1. 기본 보안 생성
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
Secret
의 기본 이름은 cloud-credentials-azure
입니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
적절한 형식으로 오브젝트 스토리지에 대한
credentials-velero
파일을 생성해야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.6.5.2.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 지정 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
스냅샷 위치
보안
(기본값:cloud-credentials-azure
). 이보안은
DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자의 적절한 형식으로 스냅샷 위치에 대한
credentials-velero
파일을 생성합니다. 기본 이름으로 스냅샷 위치에 대한 보안을 생성합니다.
$ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
-
오브젝트 스토리지에 적합한 형식으로 백업 위치에 대한
credentials-velero
파일을 생성합니다. 사용자 지정 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예제와 같이 사용자 지정 이름으로
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: config: resourceGroup: <azure_resource_group> storageAccount: <azure_storage_account_id> subscriptionId: <azure_subscription_id> storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY credential: key: cloud name: <custom_secret> 1 provider: azure default: true objectStorage: bucket: <bucket_name> prefix: <prefix> snapshotLocations: - velero: config: resourceGroup: <azure_resource_group> subscriptionId: <azure_subscription_id> incremental: "true" provider: azure
- 1
- 사용자 지정 이름으로 백업 위치 보안.
4.6.5.3. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.6.5.3.1. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: nodeSelector: <node_selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.
4.6.5.3.2. 자체 서명된 CA 인증서 활성화
알 수 없는 기관 오류로 서명된 인증서를 방지하려면
활성화해야 합니다.
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 오브젝트 스토리지에 자체 서명된 CA 인증서를
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
DataProtectionApplication
CR 매니페스트의spec.backupLocations.velero.objectStorage.caCert
매개변수 및spec.backupLocations.velero.config
매개변수를 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.6.5.3.2.1. Velero 배포에 별칭이 지정된 velero 명령과 함께 CA 인증서 사용
별칭을 생성하여 시스템에 로컬로 설치하지 않고 Velero CLI를 사용할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 클러스터에 로그인해야 합니다. OpenShift CLI(
oc
)가 설치되어 있어야 합니다.aliased Velero 명령을 사용하려면 다음 명령을 실행합니다.
$ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
다음 명령을 실행하여 별칭이 작동하는지 확인합니다.
예제
$ velero version Client: Version: v1.12.1-OADP Git commit: - Server: Version: v1.12.1-OADP
이 명령으로 CA 인증서를 사용하려면 다음 명령을 실행하여 Velero 배포에 인증서를 추가할 수 있습니다.
$ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
$ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
백업 로그를 가져오려면 다음 명령을 실행합니다.
$ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>
이러한 로그를 사용하여 백업할 수 없는 리소스에 대한 오류 및 경고를 볼 수 있습니다.
-
Velero 포드가 다시 시작되면
/tmp/your-cacert.txt
파일이 사라지고 이전 단계의 명령을 다시 실행하여/tmp/your-cacert.txt
파일을 다시 생성해야 합니다. 다음 명령을 실행하여
/tmp/your-cacert.txt
파일이 여전히 있는지 확인할 수 있습니다.$ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt
향후 OpenShift API for Data Protection(OADP) 릴리스에서는 이 단계가 필요하지 않도록 Velero 포드에 인증서를 마운트할 계획입니다.
4.6.5.4. 데이터 보호 애플리케이션 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials-azure
로 보안을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 보안을 생성해야 합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다. -
스냅샷 위치에 대한 다른 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다.
참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을 사용하여 기본Secret
을 생성할 수 있습니다. 기본Secret
이 없는 경우 설치가 실패합니다.-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operators 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 의 경우 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp 1 spec: configuration: velero: defaultPlugins: - azure - openshift 2 resourceTimeout: 10m 3 nodeAgent: 4 enable: true 5 uploaderType: kopia 6 podConfig: nodeSelector: <node_selector> 7 backupLocations: - velero: config: resourceGroup: <azure_resource_group> 8 storageAccount: <azure_storage_account_id> 9 subscriptionId: <azure_subscription_id> 10 storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY credential: key: cloud name: cloud-credentials-azure 11 provider: azure default: true objectStorage: bucket: <bucket_name> 12 prefix: <prefix> 13 snapshotLocations: 14 - velero: config: resourceGroup: <azure_resource_group> subscriptionId: <azure_subscription_id> incremental: "true" name: default provider: azure credential: key: cloud name: cloud-credentials-azure 15
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
openshift
플러그인은 필수입니다.- 3
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
- 4
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 5
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 6
- 업로드로
kopia
또는restic
을 입력합니다. 설치 후에는 선택을 변경할 수 없습니다. 기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 7
- Kopia 또는 Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia 또는 Restic은 모든 노드에서 실행됩니다.
- 8
- Azure 리소스 그룹을 지정합니다.
- 9
- Azure 스토리지 계정 ID를 지정합니다.
- 10
- Azure 서브스크립션 ID를 지정합니다.
- 11
- 이 값을 지정하지 않으면 기본값
cloud-credentials-azure
이 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 12
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 13
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다.
- 14
- CSI 스냅샷 또는 Restic을 사용하여 PV를 백업하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
- 15
- 생성한
Secret
오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본 이름,cloud-credentials-azure
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
4.6.5.5. 클라이언트 버스트 및 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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.5.5.1. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.5.5.2. DataProtectionApplication CR에서 CSI 활성화
CSI 스냅샷을 사용하여 영구 볼륨을 백업하기 위해 DataProtectionApplication
CR(사용자 정의 리소스)에서 CSI(Container Storage Interface)를 활성화합니다.
사전 요구 사항
- 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication ... spec: configuration: velero: defaultPlugins: - openshift - csi 1
- 1
csi
기본 플러그인을 추가합니다.
4.6.5.5.3. DataProtectionApplication에서 노드 에이전트 비활성화
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: false 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: true 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.
4.6.6. Google Cloud Platform을 사용하여 데이터 보호를 위한 OpenShift API 구성
OADP Operator를 설치하여 GCP(Google Cloud Platform)를 사용하여 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.14 를 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 Migration Toolkit for Containers Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Velero에 대해 GCP를 구성하고 기본 시크릿
을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.
제한된 네트워크 환경에서 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.6.6.1. GCP(Google Cloud Platform) 구성
OADP(Data Protection)를 OpenShift API용으로 GCP(Google Cloud Platform)를 구성합니다.
사전 요구 사항
-
gcloud
및gsutil
CLI 툴이 설치되어 있어야 합니다. 자세한 내용은 Google 클라우드 설명서를 참조하십시오.
절차
GCP에 로그인합니다.
$ gcloud auth login
BUCKET
변수를 설정합니다.$ BUCKET=<bucket> 1
- 1
- 버킷 이름을 지정합니다.
스토리지 버킷을 생성합니다.
$ gsutil mb gs://$BUCKET/
PROJECT_ID
변수를 활성 프로젝트로 설정합니다.$ PROJECT_ID=$(gcloud config get-value project)
서비스 계정을 생성합니다.
$ gcloud iam service-accounts create velero \ --display-name "Velero service account"
서비스 계정을 나열합니다.
$ gcloud iam service-accounts list
email
값과 일치하도록SERVICE_ACCOUNT_EMAIL
변수를 설정합니다.$ SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \ --filter="displayName:Velero service account" \ --format 'value(email)')
정책을 연결하여
velero
사용자에게 최소한의 필요한 권한을 부여합니다.$ ROLE_PERMISSIONS=( compute.disks.get compute.disks.create compute.disks.createSnapshot compute.snapshots.get compute.snapshots.create compute.snapshots.useReadOnly compute.snapshots.delete compute.zones.get storage.objects.create storage.objects.delete storage.objects.get storage.objects.list iam.serviceAccounts.signBlob )
velero.server
사용자 정의 역할을 생성합니다.$ gcloud iam roles create velero.server \ --project $PROJECT_ID \ --title "Velero Server" \ --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
프로젝트에 IAM 정책 바인딩을 추가합니다.
$ gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \ --role projects/$PROJECT_ID/roles/velero.server
IAM 서비스 계정을 업데이트합니다.
$ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
IAM 서비스 계정 키를 현재 디렉터리의
credentials-velero
파일에 저장합니다.$ gcloud iam service-accounts keys create credentials-velero \ --iam-account $SERVICE_ACCOUNT_EMAIL
데이터 보호 애플리케이션을 설치하기 전에
credentials-velero
파일을 사용하여 GCP용Secret
오브젝트를 생성합니다.
4.6.6.2. 백업 및 스냅샷 위치 및 시크릿 정보
DataProtectionApplication
CR(사용자 정의 리소스)에 백업 및 스냅샷 위치와 해당 시크릿을 지정합니다.
백업 위치
AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Red Hat Container Storage; Ceph Object Gateway, {odf-full}; 또는 MinIO와 같은 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
클라우드 공급자의 기본 스냅샷 API를 사용하여 영구 볼륨을 백업하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하므로 스냅샷 위치를 지정할 필요가 없습니다.
FSB(File System Backup)를 사용하는 경우 FSB가 오브젝트 스토리지에서 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 Secret
을 생성합니다.
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
백업
위치에
대한 사용자 지정 보안(DataProtectionApplication
CR에서 지정) -
DataProtectionApplication
CR에서 참조하지 않는 스냅샷 위치에 대한 기본 보안입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 Secret
을 생성할 수 있습니다.
4.6.6.2.1. 기본 보안 생성
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
Secret
의 기본 이름은 cloud-credentials-gcp
입니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
적절한 형식으로 오브젝트 스토리지에 대한
credentials-velero
파일을 생성해야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.6.6.2.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 지정 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
스냅샷
위치
기본 이름cloud-credentials-gcp
. 이보안은
DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자의 적절한 형식으로 스냅샷 위치에 대한
credentials-velero
파일을 생성합니다. 기본 이름으로 스냅샷 위치에 대한 보안을 생성합니다.
$ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
-
오브젝트 스토리지에 적합한 형식으로 백업 위치에 대한
credentials-velero
파일을 생성합니다. 사용자 지정 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예제와 같이 사용자 지정 이름으로
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: gcp default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix> snapshotLocations: - velero: provider: gcp default: true config: project: <project> snapshotLocation: us-west1
- 1
- 사용자 지정 이름으로 백업 위치 보안.
4.6.6.3. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.6.6.3.1. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: nodeSelector: <node_selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.
4.6.6.3.2. 자체 서명된 CA 인증서 활성화
알 수 없는 기관 오류로 서명된 인증서를 방지하려면
활성화해야 합니다.
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 오브젝트 스토리지에 자체 서명된 CA 인증서를
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
DataProtectionApplication
CR 매니페스트의spec.backupLocations.velero.objectStorage.caCert
매개변수 및spec.backupLocations.velero.config
매개변수를 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.6.6.3.2.1. Velero 배포에 별칭이 지정된 velero 명령과 함께 CA 인증서 사용
별칭을 생성하여 시스템에 로컬로 설치하지 않고 Velero CLI를 사용할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 클러스터에 로그인해야 합니다. OpenShift CLI(
oc
)가 설치되어 있어야 합니다.aliased Velero 명령을 사용하려면 다음 명령을 실행합니다.
$ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
다음 명령을 실행하여 별칭이 작동하는지 확인합니다.
예제
$ velero version Client: Version: v1.12.1-OADP Git commit: - Server: Version: v1.12.1-OADP
이 명령으로 CA 인증서를 사용하려면 다음 명령을 실행하여 Velero 배포에 인증서를 추가할 수 있습니다.
$ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
$ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
백업 로그를 가져오려면 다음 명령을 실행합니다.
$ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>
이러한 로그를 사용하여 백업할 수 없는 리소스에 대한 오류 및 경고를 볼 수 있습니다.
-
Velero 포드가 다시 시작되면
/tmp/your-cacert.txt
파일이 사라지고 이전 단계의 명령을 다시 실행하여/tmp/your-cacert.txt
파일을 다시 생성해야 합니다. 다음 명령을 실행하여
/tmp/your-cacert.txt
파일이 여전히 있는지 확인할 수 있습니다.$ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt
향후 OpenShift API for Data Protection(OADP) 릴리스에서는 이 단계가 필요하지 않도록 Velero 포드에 인증서를 마운트할 계획입니다.
4.6.6.4. Google 워크로드 ID 페더레이션 클라우드 인증
Google Cloud 외부에서 실행되는 애플리케이션은 사용자 이름 및 암호와 같은 서비스 계정 키를 사용하여 Google Cloud 리소스에 액세스할 수 있습니다. 이러한 서비스 계정 키는 올바르게 관리되지 않는 경우 보안 위험이 될 수 있습니다.
Google의 워크로드 ID 페더레이션을 사용하면 IAM(Identity and Access Management)을 사용하여 서비스 계정을 가장하는 기능을 포함하여 외부 ID IAM 역할을 제공할 수 있습니다. 이렇게 하면 서비스 계정 키와 관련된 유지 관리 및 보안 위험이 제거됩니다.
워크로드 ID 페더레이션은 인증서 암호화 및 암호 해독, 사용자 속성 추출 및 검증을 처리합니다. ID 페더레이션은 인증을 외부화하고 STS(Security Token Services)에 전달하여 개별 개발자의 요구 사항을 줄입니다. 리소스에 대한 액세스 권한 부여 및 제어는 애플리케이션의 책임이 그대로 유지됩니다.
볼륨을 백업할 때 Google 워크로드 ID 페더레이션 인증을 사용하여 GCP의 OADP는 CSI 스냅샷만 지원합니다.
Google 워크로드 ID 페더레이션 인증을 사용하는 GCP의 OADP는 VSL(volume Snapshot Locations) 백업을 지원하지 않습니다. 자세한 내용은 Google 워크로드 ID 페더레이션의 알려진 문제를 참조하십시오.
Google 워크로드 ID 페더레이션 클라우드 인증을 사용하지 않는 경우 데이터 보호 애플리케이션 설치를 계속합니다.
사전 요구 사항
- GCP 워크로드 ID가 구성되어 있는 수동 모드로 클러스터를 설치했습니다.
-
Cloud Credential Operator 유틸리티(
ccoctl
) 및 관련 워크로드 ID 풀에 액세스할 수 있습니다.
절차
다음 명령을 실행하여
oadp-credrequest
디렉터리를 생성합니다.$ mkdir -p oadp-credrequest
다음과 같이
CredentialsRequest.yaml
파일을 생성합니다.echo 'apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: oadp-operator-credentials namespace: openshift-cloud-credential-operator spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: GCPProviderSpec permissions: - compute.disks.get - compute.disks.create - compute.disks.createSnapshot - compute.snapshots.get - compute.snapshots.create - compute.snapshots.useReadOnly - compute.snapshots.delete - compute.zones.get - storage.objects.create - storage.objects.delete - storage.objects.get - storage.objects.list - iam.serviceAccounts.signBlob skipServiceCheck: true secretRef: name: cloud-credentials-gcp namespace: <OPERATOR_INSTALL_NS> serviceAccountNames: - velero ' > oadp-credrequest/credrequest.yaml
다음 명령을 실행하여
ccoctl
유틸리티를 사용하여oadp-credrequest
디렉터리에서CredentialsRequest
오브젝트를 처리합니다.$ ccoctl gcp create-service-accounts \ --name=<name> \ --project=<gcp_project_id> \ --credentials-requests-dir=oadp-credrequest \ --workload-identity-pool=<pool_id> \ --workload-identity-provider=<provider_id>
다음 단계에서
manifests/openshift-adp-cloud-credentials-gcp-credentials.yaml
파일을 사용할 수 있습니다.다음 명령을 실행하여 네임스페이스를 생성합니다.
$ oc create namespace <OPERATOR_INSTALL_NS>
다음 명령을 실행하여 네임스페이스에 인증 정보를 적용합니다.
$ oc apply -f manifests/openshift-adp-cloud-credentials-gcp-credentials.yaml
4.6.6.4.1. Google 워크로드 ID 페더레이션 알려진 문제
-
GCP 워크로드 ID 페더레이션이 구성된 경우 VSL(volume Snapshot Location) 백업은
부분적으로Failed
단계로 완료됩니다. Google 워크로드 ID 페더레이션 인증은 VSL 백업을 지원하지 않습니다.
4.6.6.5. 데이터 보호 애플리케이션 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials-gcp
로Secret
을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 보안을 생성해야 합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다. -
스냅샷 위치에 대한 다른 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다.
참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을 사용하여 기본Secret
을 생성할 수 있습니다. 기본Secret
이 없는 경우 설치가 실패합니다.-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operators 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 의 경우 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: <OPERATOR_INSTALL_NS> 1 spec: configuration: velero: defaultPlugins: - gcp - openshift 2 resourceTimeout: 10m 3 nodeAgent: 4 enable: true 5 uploaderType: kopia 6 podConfig: nodeSelector: <node_selector> 7 backupLocations: - velero: provider: gcp default: true credential: key: cloud 8 name: cloud-credentials-gcp 9 objectStorage: bucket: <bucket_name> 10 prefix: <prefix> 11 snapshotLocations: 12 - velero: provider: gcp default: true config: project: <project> snapshotLocation: us-west1 13 credential: key: cloud name: cloud-credentials-gcp 14 backupImages: true 15
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
openshift
플러그인은 필수입니다.- 3
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
- 4
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 5
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 6
- 업로드로
kopia
또는restic
을 입력합니다. 설치 후에는 선택을 변경할 수 없습니다. 기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 7
- Kopia 또는 Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia 또는 Restic은 모든 노드에서 실행됩니다.
- 8
- 인증 정보가 포함된 시크릿 키입니다. Google 워크로드 ID 페더레이션 클라우드 인증의 경우
service_account.json
을 사용합니다. - 9
- 인증 정보가 포함된 시크릿 이름입니다. 이 값을 지정하지 않으면 기본값
cloud-credentials-gcp
가 사용됩니다. - 10
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 11
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다.
- 12
- CSI 스냅샷 또는 Restic을 사용하여 PV를 백업하지 않는 한 스냅샷 위치를 지정합니다.
- 13
- 스냅샷 위치는 PV와 동일한 리전에 있어야 합니다.
- 14
- 생성한
Secret
오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본 이름,cloud-credentials-gcp
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 15
- Google 워크로드 ID 페더레이션은 내부 이미지 백업을 지원합니다. 이미지 백업을 사용하지 않으려면 이 필드를
false
로 설정합니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
4.6.6.6. 클라이언트 버스트 및 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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.6.6.1. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.6.6.2. DataProtectionApplication CR에서 CSI 활성화
CSI 스냅샷을 사용하여 영구 볼륨을 백업하기 위해 DataProtectionApplication
CR(사용자 정의 리소스)에서 CSI(Container Storage Interface)를 활성화합니다.
사전 요구 사항
- 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication ... spec: configuration: velero: defaultPlugins: - openshift - csi 1
- 1
csi
기본 플러그인을 추가합니다.
4.6.6.6.3. DataProtectionApplication에서 노드 에이전트 비활성화
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: false 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: true 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.
4.6.7. Multicloud Object Gateway를 사용하여 데이터 보호를 위한 OpenShift API 구성
OADP Operator를 설치하여 MCG(Multicloud Object Gateway)를 사용하여 OADP(OpenShift API for Data Protection)를 설치합니다. Operator는 Velero 1.14 를 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 Migration Toolkit for Containers Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Multicloud Object Gateway 를 백업 위치로 구성합니다. MCG는 OpenShift Data Foundation의 구성 요소입니다. MCG를 DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 위치로 구성합니다.
오브젝트 스토리지용 버킷 생성을 자동화하는 CloudStorage
API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
백업 위치에 대한
보안을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.
제한된 네트워크 환경에서 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.6.7.1. 멀티 클라우드 오브젝트 게이트웨이 인증 정보 검색
OADP(Data Protection)용 OpenShift API에 대한 Secret
CR(사용자 정의 리소스)을 생성해야 하는 MCG(Multicloud Object Gateway) 인증 정보를 검색해야 합니다.
MCG Operator는 더 이상 사용되지 않지만 OpenShift Data Foundation에서 MCG 플러그인을 계속 사용할 수 있습니다. 플러그인을 다운로드하려면 Red Hat OpenShift Data Foundation 을 다운로드하여 운영 체제에 적합한 MCG 플러그인을 다운로드합니다.
사전 요구 사항
절차
-
NooBaa
사용자 정의 리소스에서describe
명령을 실행하여 S3 엔드포인트AWS_ACCESS_KEY_ID
및AWS_SECRET_ACCESS_KEY
를 가져옵니다. credentials-velero
파일을 생성합니다.$ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF
Data Protection Application을 설치할 때
credentials-velero
파일을 사용하여Secret
오브젝트를 생성합니다.
4.6.7.2. 백업 및 스냅샷 위치 및 시크릿 정보
DataProtectionApplication
CR(사용자 정의 리소스)에 백업 및 스냅샷 위치와 해당 시크릿을 지정합니다.
백업 위치
AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Red Hat Container Storage; Ceph Object Gateway, {odf-full}; 또는 MinIO와 같은 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
클라우드 공급자의 기본 스냅샷 API를 사용하여 영구 볼륨을 백업하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하므로 스냅샷 위치를 지정할 필요가 없습니다.
FSB(File System Backup)를 사용하는 경우 FSB가 오브젝트 스토리지에서 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 Secret
을 생성합니다.
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
백업
위치에
대한 사용자 지정 보안(DataProtectionApplication
CR에서 지정) -
DataProtectionApplication
CR에서 참조하지 않는 스냅샷 위치에 대한 기본 보안입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 Secret
을 생성할 수 있습니다.
4.6.7.2.1. 기본 보안 생성
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
Secret
의 기본 이름은 cloud-credentials
입니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
적절한 형식으로 오브젝트 스토리지에 대한
credentials-velero
파일을 생성해야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.6.7.2.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 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
-
오브젝트 스토리지에 적합한 형식으로 백업 위치에 대한
credentials-velero
파일을 생성합니다. 사용자 지정 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예제와 같이 사용자 지정 이름으로
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: config: profile: "default" region: <region_name> 1 s3Url: <url> insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" provider: aws default: true credential: key: cloud name: <custom_secret> 2 objectStorage: bucket: <bucket_name> prefix: <prefix>
4.6.7.3. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.6.7.3.1. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: nodeSelector: <node_selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.
4.6.7.3.2. 자체 서명된 CA 인증서 활성화
알 수 없는 기관 오류로 서명된 인증서를 방지하려면
활성화해야 합니다.
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 오브젝트 스토리지에 자체 서명된 CA 인증서를
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
DataProtectionApplication
CR 매니페스트의spec.backupLocations.velero.objectStorage.caCert
매개변수 및spec.backupLocations.velero.config
매개변수를 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.6.7.3.2.1. Velero 배포에 별칭이 지정된 velero 명령과 함께 CA 인증서 사용
별칭을 생성하여 시스템에 로컬로 설치하지 않고 Velero CLI를 사용할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 클러스터에 로그인해야 합니다. OpenShift CLI(
oc
)가 설치되어 있어야 합니다.aliased Velero 명령을 사용하려면 다음 명령을 실행합니다.
$ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
다음 명령을 실행하여 별칭이 작동하는지 확인합니다.
예제
$ velero version Client: Version: v1.12.1-OADP Git commit: - Server: Version: v1.12.1-OADP
이 명령으로 CA 인증서를 사용하려면 다음 명령을 실행하여 Velero 배포에 인증서를 추가할 수 있습니다.
$ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
$ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
백업 로그를 가져오려면 다음 명령을 실행합니다.
$ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>
이러한 로그를 사용하여 백업할 수 없는 리소스에 대한 오류 및 경고를 볼 수 있습니다.
-
Velero 포드가 다시 시작되면
/tmp/your-cacert.txt
파일이 사라지고 이전 단계의 명령을 다시 실행하여/tmp/your-cacert.txt
파일을 다시 생성해야 합니다. 다음 명령을 실행하여
/tmp/your-cacert.txt
파일이 여전히 있는지 확인할 수 있습니다.$ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt
향후 OpenShift API for Data Protection(OADP) 릴리스에서는 이 단계가 필요하지 않도록 Velero 포드에 인증서를 마운트할 계획입니다.
4.6.7.4. 데이터 보호 애플리케이션 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials
를 사용하여 보안을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 보안을 생성해야 합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다. -
스냅샷 위치에 대한 다른 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다.
참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을 사용하여 기본Secret
을 생성할 수 있습니다. 기본Secret
이 없는 경우 설치가 실패합니다.-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operators 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 의 경우 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp 1 spec: configuration: velero: defaultPlugins: - aws 2 - openshift 3 resourceTimeout: 10m 4 nodeAgent: 5 enable: true 6 uploaderType: kopia 7 podConfig: nodeSelector: <node_selector> 8 backupLocations: - velero: config: profile: "default" region: <region_name> 9 s3Url: <url> 10 insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" provider: aws default: true credential: key: cloud name: cloud-credentials 11 objectStorage: bucket: <bucket_name> 12 prefix: <prefix> 13
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
- 스토리지 위치에 해당하는 오브젝트 저장소 플러그인이 필요합니다. 모든 S3 공급자의 경우 필요한 플러그인은
aws
입니다. Azure 및 GCP 오브젝트 저장소의 경우azure
또는gcp
플러그인이 필요합니다. - 3
openshift
플러그인은 필수입니다.- 4
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
- 5
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 6
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 7
- 업로드로
kopia
또는restic
을 입력합니다. 설치 후에는 선택을 변경할 수 없습니다. 기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 8
- Kopia 또는 Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia 또는 Restic은 모든 노드에서 실행됩니다.
- 9
- 오브젝트 스토리지 서버 설명서의 이름 지정 규칙에 따라 리전을 지정합니다.
- 10
- S3 끝점의 URL을 지정합니다.
- 11
- 생성한
Secret
오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본값cloud-credentials
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 12
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 13
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
4.6.7.5. 클라이언트 버스트 및 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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.7.5.1. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.7.5.2. DataProtectionApplication CR에서 CSI 활성화
CSI 스냅샷을 사용하여 영구 볼륨을 백업하기 위해 DataProtectionApplication
CR(사용자 정의 리소스)에서 CSI(Container Storage Interface)를 활성화합니다.
사전 요구 사항
- 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication ... spec: configuration: velero: defaultPlugins: - openshift - csi 1
- 1
csi
기본 플러그인을 추가합니다.
4.6.7.5.3. DataProtectionApplication에서 노드 에이전트 비활성화
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: false 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: true 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.
4.6.8. OpenShift Data Foundation으로 데이터 보호를 위한 OpenShift API 구성
OADP Operator를 설치하고 백업 위치와 스냅샷 위치를 구성하여 OpenShift Data Foundation을 사용하여 OADP(OpenShift API for Data Protection)를 설치합니다. 그런 다음 Data Protection Application을 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 Migration Toolkit for Containers Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Multicloud Object Gateway 또는 AWS S3 호환 오브젝트 스토리지를 백업 위치로 구성할 수 있습니다.
오브젝트 스토리지용 버킷 생성을 자동화하는 CloudStorage
API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
백업 위치에 대한
보안을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.
제한된 네트워크 환경에서 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.6.8.1. 백업 및 스냅샷 위치 및 시크릿 정보
DataProtectionApplication
CR(사용자 정의 리소스)에 백업 및 스냅샷 위치와 해당 시크릿을 지정합니다.
백업 위치
AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Red Hat Container Storage; Ceph Object Gateway, {odf-full}; 또는 MinIO와 같은 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
클라우드 공급자의 기본 스냅샷 API를 사용하여 영구 볼륨을 백업하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하므로 스냅샷 위치를 지정할 필요가 없습니다.
FSB(File System Backup)를 사용하는 경우 FSB가 오브젝트 스토리지에서 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 Secret
을 생성합니다.
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
백업
위치에
대한 사용자 지정 보안(DataProtectionApplication
CR에서 지정) -
DataProtectionApplication
CR에서 참조하지 않는 스냅샷 위치에 대한 기본 보안입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 Secret
을 생성할 수 있습니다.
4.6.8.1.1. 기본 보안 생성
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
백업 스토리지 공급자에 aws
,azure
또는 gcp
와 같은 기본 플러그인이 없으면 Secret
의 기본 이름은 cloud-credentials
입니다. 이 경우 기본 이름은 공급자별 OADP 설치 절차에 지정됩니다.
DataProtectionApplication
사용자 정의 리소스 (CR)에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지의 경우 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
적절한 형식으로 오브젝트 스토리지에 대한
credentials-velero
파일을 생성해야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Data Protection Application을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 Secret
을 참조합니다.
4.6.8.1.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 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
-
오브젝트 스토리지에 적합한 형식으로 백업 위치에 대한
credentials-velero
파일을 생성합니다. 사용자 지정 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예제와 같이 사용자 지정 이름으로
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: <provider> default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix>
- 1
- 사용자 지정 이름으로 백업 위치 보안.
4.6.8.2. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.6.8.2.1. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod에 대한 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록의 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: nodeSelector: <node_selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.
4.6.8.2.1.1. 수집된 데이터를 기반으로 Ceph CPU 및 메모리 요구 사항 조정
다음 권장 사항은 규모 및 성능 랩에서 수행된 성능 관찰을 기반으로 합니다. 변경 사항은 특히 {odf-first}와 관련이 있습니다. {odf-short}로 작업하는 경우 공식 권장 사항은 적절한 튜닝 가이드를 참조하십시오.
4.6.8.2.1.1.1. 구성에 대한 CPU 및 메모리 요구 사항
백업 및 복원 작업에는 대량의 CephFS PersistentVolume
(PV)이 필요합니다. 메모리
부족(OOM) 오류로 Ceph MDS Pod를 재시작하지 않으려면 다음 설정이 권장됩니다.
구성 유형 | 요청 | 최대 제한 |
---|---|---|
CPU | 3으로 변경됨 | 최대 제한 3 |
메모리 | 8Gi로 변경됨 | 최대 제한 128Gi |
4.6.8.2.2. 자체 서명된 CA 인증서 활성화
알 수 없는 기관 오류로 서명된 인증서를 방지하려면
활성화해야 합니다.
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 오브젝트 스토리지에 자체 서명된 CA 인증서를
사전 요구 사항
- OADP(Data Protection) Operator가 설치되어 있어야 합니다.
절차
DataProtectionApplication
CR 매니페스트의spec.backupLocations.velero.objectStorage.caCert
매개변수 및spec.backupLocations.velero.config
매개변수를 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.6.8.2.2.1. Velero 배포에 별칭이 지정된 velero 명령과 함께 CA 인증서 사용
별칭을 생성하여 시스템에 로컬로 설치하지 않고 Velero CLI를 사용할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 클러스터에 로그인해야 합니다. OpenShift CLI(
oc
)가 설치되어 있어야 합니다.aliased Velero 명령을 사용하려면 다음 명령을 실행합니다.
$ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
다음 명령을 실행하여 별칭이 작동하는지 확인합니다.
예제
$ velero version Client: Version: v1.12.1-OADP Git commit: - Server: Version: v1.12.1-OADP
이 명령으로 CA 인증서를 사용하려면 다음 명령을 실행하여 Velero 배포에 인증서를 추가할 수 있습니다.
$ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
$ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
백업 로그를 가져오려면 다음 명령을 실행합니다.
$ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>
이러한 로그를 사용하여 백업할 수 없는 리소스에 대한 오류 및 경고를 볼 수 있습니다.
-
Velero 포드가 다시 시작되면
/tmp/your-cacert.txt
파일이 사라지고 이전 단계의 명령을 다시 실행하여/tmp/your-cacert.txt
파일을 다시 생성해야 합니다. 다음 명령을 실행하여
/tmp/your-cacert.txt
파일이 여전히 있는지 확인할 수 있습니다.$ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt
향후 OpenShift API for Data Protection(OADP) 릴리스에서는 이 단계가 필요하지 않도록 Velero 포드에 인증서를 마운트할 계획입니다.
4.6.8.3. 데이터 보호 애플리케이션 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials
를 사용하여 보안을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 보안을 생성해야 합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다. -
스냅샷 위치에 대한 다른 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을DataProtectionApplication
CR에 추가합니다.
참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을 사용하여 기본Secret
을 생성할 수 있습니다. 기본Secret
이 없는 경우 설치가 실패합니다.-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operators 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 의 경우 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp 1 spec: configuration: velero: defaultPlugins: - aws 2 - kubevirt 3 - csi 4 - openshift 5 resourceTimeout: 10m 6 nodeAgent: 7 enable: true 8 uploaderType: kopia 9 podConfig: nodeSelector: <node_selector> 10 backupLocations: - velero: provider: gcp 11 default: true credential: key: cloud name: <default_secret> 12 objectStorage: bucket: <bucket_name> 13 prefix: <prefix> 14
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
- 스토리지 위치에 해당하는 오브젝트 저장소 플러그인이 필요합니다. 모든 S3 공급자의 경우 필요한 플러그인은
aws
입니다. Azure 및 GCP 오브젝트 저장소의 경우azure
또는gcp
플러그인이 필요합니다. - 3
- 선택 사항:
kubevirt
플러그인은 OpenShift Virtualization과 함께 사용됩니다. - 4
- CSI 스냅샷을 사용하여 PV를 백업하는 경우
csi
기본 플러그인을 지정합니다.csi
플러그인은 Velero CSI 베타 스냅샷 API 를 사용합니다. 스냅샷 위치를 구성할 필요가 없습니다. - 5
openshift
플러그인은 필수입니다.- 6
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
- 7
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 8
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 9
- 업로드로
kopia
또는restic
을 입력합니다. 설치 후에는 선택을 변경할 수 없습니다. 기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 10
- Kopia 또는 Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia 또는 Restic은 모든 노드에서 실행됩니다.
- 11
- 백업 공급자를 지정합니다.
- 12
- 백업 공급자에 기본 플러그인을 사용하는 경우
Secret
의 올바른 기본 이름(예:cloud-credentials-gcp
)을 지정합니다. 사용자 지정 이름을 지정하면 사용자 지정 이름이 백업 위치에 사용됩니다.Secret
이름을 지정하지 않으면 기본 이름이 사용됩니다. - 13
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 14
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
4.6.8.4. 클라이언트 버스트 및 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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.8.4.1. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.8.4.2. OpenShift Data Foundation에서 재해 복구에 대한 오브젝트 버킷 클레임 생성
OpenShift Data Foundation에서 MCG(Multicloud Object Gateway) 버킷 backupStorageLocation
에 클러스터 스토리지를 사용하는 경우 OpenShift 웹 콘솔을 사용하여 OBC(Object Bucket Claim)를 생성합니다.
OBC(Object Bucket Claim)를 구성하지 않으면 백업을 사용할 수 없습니다.
달리 지정하지 않는 한 "NooBa"는 경량 오브젝트 스토리지를 제공하는 오픈 소스 프로젝트를 나타내며 "MCG(Multicloud Object Gateway)는 NooBaa의 Red Hat 배포를 나타냅니다.
MCG에 대한 자세한 내용은 애플리케이션을 사용하여 Multicloud Object Gateway 액세스를 참조하십시오.
절차
- OpenShift 웹 콘솔을 사용하여 Object Bucket Claim 생성에 설명된 대로 OpenShift 웹 콘솔을 사용하여 Object Bucket 클레임(OBC)을 생성합니다.
4.6.8.4.3. DataProtectionApplication CR에서 CSI 활성화
CSI 스냅샷을 사용하여 영구 볼륨을 백업하기 위해 DataProtectionApplication
CR(사용자 정의 리소스)에서 CSI(Container Storage Interface)를 활성화합니다.
사전 요구 사항
- 클라우드 공급자는 CSI 스냅샷을 지원해야 합니다.
절차
다음 예제와 같이
DataProtectionApplication
CR을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication ... spec: configuration: velero: defaultPlugins: - openshift - csi 1
- 1
csi
기본 플러그인을 추가합니다.
4.6.8.4.4. DataProtectionApplication에서 노드 에이전트 비활성화
백업에 Restic
,Kopia
또는 DataMover
를 사용하지 않는 경우 DataProtectionApplication
CR(사용자 정의 리소스)에서 nodeAgent
필드를 비활성화할 수 있습니다. nodeAgent
를 비활성화하기 전에 OADP Operator가 유휴 상태이고 백업을 실행하지 않는지 확인합니다.
절차
nodeAgent
를 비활성화하려면enable
플래그를false
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: false 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 비활성화합니다.
nodeAgent
를 활성화하려면enable
플래그를true
로 설정합니다. 다음 예제를 참조하십시오.Example
DataProtectionApplication
CR# ... configuration: nodeAgent: enable: true 1 uploaderType: kopia # ...
- 1
- 노드 에이전트를 활성화합니다.
DataProtectionApplication
CR에서 nodeAgent
필드를 활성화하고 비활성화하는 작업을 설정할 수 있습니다. 자세한 내용은 "작업을 사용하여 Pod에서 작업 실행"을 참조하십시오.
4.6.9. OpenShift Virtualization을 사용하여 데이터 보호를 위한 OpenShift API 구성
OADP Operator를 설치하고 백업 위치를 구성하여 OpenShift Virtualization을 사용하여 OADP(OpenShift API for Data Protection)를 설치할 수 있습니다. 그런 다음 데이터 보호 애플리케이션을 설치할 수 있습니다.
OpenShift API for Data Protection 을 사용하여 가상 머신을 백업하고 복원합니다.
OpenShift Virtualization을 사용한 OpenShift API for Data Protection에서는 다음과 같은 백업 및 복원 스토리지 옵션을 지원합니다.
- CSI(Container Storage Interface) 백업
- DataMover를 사용한 CSI(Container Storage Interface) 백업
다음 스토리지 옵션은 제외됩니다.
- 파일 시스템 백업 및 복원
- 볼륨 스냅샷 백업 및 복원
자세한 내용은 파일 시스템 백업: Kopia 또는 Restic을 사용하여 애플리케이션 백업을 참조하십시오.
제한된 네트워크 환경에서 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.6.9.1. OpenShift Virtualization을 사용하여 OADP 설치 및 구성
클러스터 관리자는 OADP Operator를 설치하여 OADP를 설치합니다.
Operator는 Velero 1.14 를 설치합니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
- 스토리지 공급자의 지침에 따라 OADP Operator를 설치합니다.
-
kubevirt
및openshift
OADP 플러그인으로 DPA(Data Protection Application)를 설치합니다. Backup
CR(사용자 정의 리소스)을 생성하여 가상 머신을 백업합니다.주의Red Hat 지원은 다음 옵션으로 제한됩니다.
- CSI 백업
- DataMover를 사용한 CSI 백업.
Restore CR을 생성하여 Backup
CR을 복원합니다
.
4.6.9.2. 데이터 보호 애플리케이션 설치
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
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp 1 spec: configuration: velero: defaultPlugins: - kubevirt 2 - gcp 3 - csi 4 - openshift 5 resourceTimeout: 10m 6 nodeAgent: 7 enable: true 8 uploaderType: kopia 9 podConfig: nodeSelector: <node_selector> 10 backupLocations: - velero: provider: gcp 11 default: true credential: key: cloud name: <default_secret> 12 objectStorage: bucket: <bucket_name> 13 prefix: <prefix> 14
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
kubevirt
플러그인은 OpenShift Virtualization에 필수입니다.- 3
- 백업 공급자의 플러그인을 지정합니다(예:
gcp
). - 4
- CSI 스냅샷을 사용하여 PV를 백업하려면
csi
플러그인이 필요합니다.csi
플러그인은 Velero CSI 베타 스냅샷 API 를 사용합니다. 스냅샷 위치를 구성할 필요가 없습니다. - 5
openshift
플러그인은 필수입니다.- 6
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
- 7
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 8
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 9
- Built-in DataMover를 사용하려면 업로드기로
kopia
를 입력합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 10
- Kopia를 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia는 모든 노드에서 실행됩니다.
- 11
- 백업 공급자를 지정합니다.
- 12
- 백업 공급자에 기본 플러그인을 사용하는 경우
Secret
의 올바른 기본 이름(예:cloud-credentials-gcp
)을 지정합니다. 사용자 지정 이름을 지정하면 사용자 지정 이름이 백업 위치에 사용됩니다.Secret
이름을 지정하지 않으면 기본 이름이 사용됩니다. - 13
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 14
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다.
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
VM이 재부팅된 직후 Microsoft Windows 가상 머신(VM)의 백업을 실행하는 경우 부분적으로Failed
오류와 함께 백업이 실패할 수 있습니다. 이는 VM이 부팅된 직후 Microsoft Windows Volume shadow Copy Service(VSS) 및 게스트 에이전트(GA) 서비스가 준비되지 않았기 때문입니다. VSS 및 GA 서비스가 준비되지 않아 백업이 실패합니다. 이러한 경우 VM이 부팅된 후 몇 분 후에 백업을 다시 시도합니다.
4.6.9.3. 클라이언트 버스트 및 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가 설치되어 있습니다.
절차
다음 예와 같이 DPA에서
client-burst
및client-qps
필드를 구성합니다.데이터 보호 애플리케이션 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 1 client-qps: 300 2 defaultPlugins: - openshift - aws - kubevirt
4.6.9.3.1. 노드 에이전트 및 노드 라벨 구성
OADP의 DPA는 nodeSelector
필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector
필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다.
지정된 라벨은 각 노드의 라벨과 일치해야 합니다.
선택하는 노드에서 노드 에이전트를 실행하는 올바른 방법은 사용자 정의 라벨을 사용하여 노드에 레이블을 지정하는 것입니다.
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
노드에 레이블을 지정하는 데 사용한 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
에서 동일한 사용자 지정 레이블을 사용합니다. 예를 들면 다음과 같습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""
다음 예제는 nodeSelector
의 안티 패턴이며 'node-role.kubernetes.io/infra: ""'
및 'node-role.kubernetes.io/worker: ""'
둘 다 노드에 있지 않으면 작동하지 않습니다.
configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
4.6.9.4. 증분 백업 지원 정보
OADP는 컨테이너화된 워크로드와 OpenShift Virtualization 워크로드 모두에 대해 블록
및 Filesystem
영구 볼륨의 증분 백업을 지원합니다. 다음 표에는 파일 시스템 백업(FSB), CSI(Container Storage Interface) 및 CSI 데이터 Mover에 대한 지원이 요약되어 있습니다.
볼륨 모드 | FSB - Restic | FSB - Kopia | CSI | CSI 데이터 Mover |
---|---|---|---|---|
파일 시스템 | S [1], I [2] | S [1], I [2] | S [1] | S [1], I [2] |
블록 | N [3] | N [3] | S [1] | S [1], I [2] |
볼륨 모드 | FSB - Restic | FSB - Kopia | CSI | CSI 데이터 Mover |
---|---|---|---|---|
파일 시스템 | N [3] | N [3] | S [1] | S [1], I [2] |
블록 | N [3] | N [3] | S [1] | S [1], I [2] |
- 지원되는 백업
- 증분 백업 지원
- 지원되지 않음
CSI Data Mover 백업은 uploaderType
과 관계없이 Kopia를 사용합니다.
Red Hat은 OADP 버전 1.3.0 이상과 OpenShift Virtualization 버전 4.14 이상만 지원합니다.
1.3.0 이전 OADP 버전은 OpenShift Virtualization의 백업 및 복원에 지원되지 않습니다.
4.6.10. 두 개 이상의 Backup Storage 위치를 사용하여 OADP(OpenShift API for Data Protection) 구성
DPA(Data Protection Application)에서 하나 이상의 백업 스토리지 위치(BSL)를 구성할 수 있습니다. 백업을 생성할 때 백업을 저장할 위치를 선택할 수도 있습니다. 이 구성을 사용하면 다음과 같은 방법으로 백업을 저장할 수 있습니다.
- 다른 리전으로
- 다른 스토리지 공급자로 전환
OADP는 두 개 이상의 BSL을 구성하기 위한 여러 자격 증명을 지원하므로 모든 BSL과 함께 사용할 인증 정보를 지정할 수 있습니다.
4.6.10.1. 두 개 이상의 BSL로 DPA 구성
DPA를 두 개 이상의 BSL로 구성하고 클라우드 공급자가 제공하는 자격 증명을 지정할 수 있습니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 클라우드 공급자가 제공하는 인증 정보를 사용하여 시크릿을 생성해야 합니다.
절차
두 개 이상의 BSL로 DPA를 구성합니다. 다음 예제를 참조하십시오.
DPA 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication #... backupLocations: - name: aws 1 velero: provider: aws default: true 2 objectStorage: bucket: <bucket_name> 3 prefix: <prefix> 4 config: region: <region_name> 5 profile: "default" credential: key: cloud name: cloud-credentials 6 - name: odf 7 velero: provider: aws default: false objectStorage: bucket: <bucket_name> prefix: <prefix> config: profile: "default" region: <region_name> s3Url: <url> 8 insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" credential: key: cloud name: <custom_secret_name_odf> 9 #...
- 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의 예
apiVersion: velero.io/v1 kind: Backup # ... spec: includedNamespaces: - <namespace> 1 storageLocation: <backup_storage_location> 2 defaultVolumesToFsBackup: true
4.6.10.2. 두 개의 BSL 사용 사례
이 사용 사례에서는 두 개의 클라우드 인증 정보를 사용하여 두 개의 스토리지 위치로 DPA를 구성합니다. 기본 BSL을 사용하여 데이터베이스와 함께 애플리케이션을 백업합니다. OADP는 백업 리소스를 기본 BSL에 저장합니다. 그런 다음 두 번째 BSL을 사용하여 애플리케이션을 다시 백업합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- AWS S3 및 MCG(Multicloud Object Gateway)의 두 개의 백업 스토리지 위치를 구성해야 합니다.
- Red Hat OpenShift 클러스터에 배포된 데이터베이스가 있는 애플리케이션이 있어야 합니다.
절차
다음 명령을 실행하여 기본 이름으로 AWS S3 스토리지 공급자에 대한 첫 번째 보안을 생성합니다.
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=<aws_credentials_file_name> 1
- 1
- AWS S3의 클라우드 인증 정보 파일의 이름을 지정합니다.
다음 명령을 실행하여 사용자 지정 이름으로 MCG의 두 번째 보안을 생성합니다.
$ oc create secret generic mcg-secret -n openshift-adp --from-file cloud=<MCG_credentials_file_name> 1
- 1
- MCG의 클라우드 인증 정보 파일의 이름을 지정합니다.
mcg-secret
사용자 정의 시크릿의 이름을 확인합니다.
다음 예와 같이 두 개의 BSL로 DPA를 구성합니다.
DPA 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: two-bsl-dpa namespace: openshift-adp spec: backupLocations: - name: aws velero: config: profile: default region: <region_name> 1 credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> 2 prefix: velero provider: aws - name: mcg velero: config: insecureSkipTLSVerify: "true" profile: noobaa region: <region_name> 3 s3ForcePathStyle: "true" s3Url: <s3_url> 4 credential: key: cloud name: mcg-secret 5 objectStorage: bucket: <bucket_name_mcg> 6 prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: kopia velero: defaultPlugins: - openshift - aws
다음 명령을 실행하여 DPA를 생성합니다.
$ oc create -f <dpa_file_name> 1
- 1
- 구성한 DPA의 파일 이름을 지정합니다.
다음 명령을 실행하여 DPA가 조정되었는지 확인합니다.
$ oc get dpa -o yaml
다음 명령을 실행하여 BSL을 사용할 수 있는지 확인합니다.
$ oc get bsl
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT aws Available 5s 3m28s true mcg Available 5s 3m28s
기본 BSL을 사용하여 백업 CR을 생성합니다.
참고다음 예제에서는
storageLocation
필드가 백업 CR에 지정되지 않습니다.백업 CR의 예
apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup1 namespace: openshift-adp spec: includedNamespaces: - <mysql_namespace> 1 defaultVolumesToFsBackup: true
- 1
- 클러스터에 설치된 애플리케이션의 네임스페이스를 지정합니다.
다음 명령을 실행하여 백업을 생성합니다.
$ oc apply -f <backup_file_name> 1
- 1
- 백업 CR 파일의 이름을 지정합니다.
다음 명령을 실행하여 백업이 기본 BSL로 완료되었는지 확인합니다.
$ oc get backup <backup_name> -o yaml 1
- 1
- 백업 이름을 지정합니다.
MCG를 BSL로 사용하여 백업 CR을 생성합니다. 다음 예제에서는 백업 CR 생성 시 두 번째
storageLocation
값이 지정됩니다.백업
CR
의 예apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup1 namespace: openshift-adp spec: includedNamespaces: - <mysql_namespace> 1 storageLocation: mcg 2 defaultVolumesToFsBackup: true
다음 명령을 실행하여 두 번째 백업을 생성합니다.
$ oc apply -f <backup_file_name> 1
- 1
- 백업 CR 파일의 이름을 지정합니다.
다음 명령을 실행하여 스토리지 위치를 MCG로 사용하여 백업이 완료되었는지 확인합니다.
$ oc get backup <backup_name> -o yaml 1
- 1
- 백업 이름을 지정합니다.
추가 리소스
4.6.11. 두 개 이상의 Volume Snapshot Location으로 OADP(OpenShift API for Data Protection) 구성
스냅샷을 다른 클라우드 공급자 지역에 저장하도록 하나 이상의 볼륨 스냅샷 위치(VSL)를 구성할 수 있습니다.
4.6.11.1. 두 개 이상의 VSL로 DPA 구성
두 개 이상의 VSL로 DPA를 구성하고 클라우드 공급자가 제공하는 인증 정보를 지정합니다. 영구 볼륨과 동일한 리전에 스냅샷 위치를 구성해야 합니다. 다음 예제를 참조하십시오.
DPA 예
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication #... snapshotLocations: - velero: config: profile: default region: <region> 1 credential: key: cloud name: cloud-credentials provider: aws - velero: config: profile: default region: <region> credential: key: cloud name: <custom_credential> 2 provider: aws #...