검색

4.4. OADP 설치 및 구성

download PDF

4.4.1. OADP 설치 정보

클러스터 관리자는 OADP Operator를 설치하여 OADP(Data Protection)용 OpenShift API를 설치합니다. OADP Operator는 Velero 1.12 를 설치합니다.

참고

OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.

Kubernetes 리소스 및 내부 이미지를 백업하려면 다음 스토리지 유형 중 하나와 같은 오브젝트 스토리지를 백업 위치로 보유해야 합니다.

개별 OADP 배포에 대해 동일한 네임스페이스 내에서 여러 백업 스토리지 위치를 구성할 수 있습니다.

참고

달리 지정하지 않는 한 "NooBa"는 경량 오브젝트 스토리지를 제공하는 오픈 소스 프로젝트를 나타내며 "MCG(Multicloud Object Gateway)는 NooBaa의 Red Hat 배포를 나타냅니다.

MCG에 대한 자세한 내용은 애플리케이션을 사용하여 Multicloud Object Gateway 액세스를 참조하십시오.

중요

개체 스토리지의 버킷 생성을 자동화하는 CloudStorage API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

스냅샷 또는 Restic을 사용하여 PV(영구 볼륨)를 백업할 수 있습니다.

스냅샷을 사용하여 PV를 백업하려면 다음 클라우드 공급자 중 하나와 같은 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원하는 클라우드 공급자가 있어야 합니다.

참고

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인 경우 오브젝트 스토리지에서 Restic 백업을 사용하여 애플리케이션을 백업할 수 있습니다.

기본 보안을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.

4.4.1.1. AWS S3 호환 백업 스토리지 공급자

OADP는 다양한 백업 및 스냅샷 작업에 사용하기 위해 많은 오브젝트 스토리지 공급자와 호환됩니다. 여러 오브젝트 스토리지 공급자가 완전히 지원되며, 일부 오브젝트 스토리지 공급자는 지원되지만 작동하지 않으며 일부에는 알려진 제한 사항이 있습니다.

4.4.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)
참고

다음과 같은 호환 오브젝트 스토리지 공급자가 지원되며 자체 Velero 오브젝트 저장소 플러그인이 있습니다.

  • GCP(Google Cloud Platform)
  • Microsoft Azure
4.4.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.4.1.1.3. 알려진 제한이 있는 백업 스토리지 공급자

다음 AWS S3 호환 오브젝트 스토리지 공급자는 제한된 기능 세트로 AWS 플러그인을 통해 Velero와 함께 작동하는 것으로 알려져 있습니다.

  • Swift - 백업 스토리지의 백업 스토리지 위치로 사용하기 위해 작동하지만 파일 시스템 기반 볼륨 백업 및 복원에는 Restic과 호환되지 않습니다.

4.4.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 액세스를 참조하십시오.

절차

4.4.1.3. OADP 업데이트 채널 정보

OADP Operator를 설치할 때 업데이트 채널을 선택합니다. 이 채널은 OADP Operator 및 수신하는 Velero에 대한 업그레이드를 결정합니다. 언제든지 채널을 변경할 수 있습니다.

다음 업데이트 채널을 사용할 수 있습니다.

  • stable 채널이 더 이상 사용되지 않습니다. stable 채널에는 OADP.v1.1.z 용 OADP ClusterServiceVersionOADP.v1.0.z 의 이전 버전의 패치(z-stream 업데이트)가 포함되어 있습니다.
  • stable-1.0 채널은 더 이상 사용되지 않으며 지원되지 않습니다.
  • stable-1.1 채널은 더 이상 사용되지 않으며 지원되지 않습니다.
  • stable-1.2 채널은 더 이상 사용되지 않으며 지원되지 않습니다.
  • stable-1.3 채널에는 최신 OADP 1.3 ClusterServiceVersionOADP.v1.3.z 가 포함되어 있습니다.
  • stable-1.4 채널에는 최신 OADP 1.4 ClusterServiceVersionOADP.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로 업그레이드한 다음 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.4.1.4. 여러 네임스페이스에 OADP 설치

OADP를 동일한 클러스터의 여러 네임스페이스에 설치할 수 있으므로 여러 프로젝트 소유자가 자체 OADP 인스턴스를 관리할 수 있습니다. 이 사용 사례는 Restic 및 CSI에서 검증되었습니다.

다음 추가 요구 사항을 사용하여 이 문서에 포함된 플랫폼별 절차에 따라 OADP의 각 인스턴스를 설치합니다.

  • 동일한 클러스터에 있는 OADP의 모든 배포는 동일한 버전이어야 합니다(예: 1.1.4). 동일한 클러스터에 다른 버전의 OADP를 설치할 수 없습니다.
  • OADP의 개별 배포마다 고유한 인증 정보 세트 및 하나 이상의 BackupStorageLocation 구성이 있어야 합니다. 동일한 네임 스페이스 내에서 여러 BackupStorageLocation 구성을 사용할 수도 있습니다.
  • 기본적으로 각 OADP 배포에는 네임스페이스에서 클러스터 수준 액세스 권한이 있습니다. OpenShift Container Platform 관리자는 보안 및 RBAC 설정을 주의 깊게 검토하고 각 OADP 인스턴스에 올바른 권한이 있는지 확인하기 위해 필요한 사항을 변경해야 합니다.

4.4.1.5. 수집된 데이터를 기반으로 하는 Velero CPU 및 메모리 요구 사항

다음 권장 사항은 규모 및 성능 랩에서 수행된 성능 관찰을 기반으로 합니다. 백업 및 복원 리소스는 플러그인 유형, 해당 백업 또는 복원에 필요한 리소스 양, 해당 리소스와 관련된 PV(영구 볼륨)에 포함된 해당 데이터의 영향을 받을 수 있습니다.

4.4.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] DataMover

해당 없음

해당 없음

10m - 평균 사용량

60m - 대규모 사용

  1. 평균 사용량 - 대부분의 사용 상황에 대해 이러한 설정을 사용합니다.
  2. 대규모 사용 - 대규모 PV(500GB 사용), 다중 네임스페이스(100+) 또는 단일 네임스페이스(2000 pods+) 내의 여러 Pod 및 대규모 데이터 세트와 관련된 백업 및 복원을 위한 최적의 성능을 위해 이러한 설정을 사용합니다.
  3. Restic 리소스 사용량은 데이터 양 및 데이터 유형에 해당합니다. 예를 들어 많은 작은 파일 또는 대량의 데이터가 있으면 Restic이 대량의 리소스를 활용할 수 있습니다. Velero 문서는 500m을 제공된 기본값으로 참조합니다. 대부분의 테스트에서는 1000m 제한으로 적합한 200m 요청을 발견했습니다. Velero 문서에서 인용한 대로 정확한 CPU 및 메모리 사용은 환경 제한 외에도 파일 및 디렉터리의 크기에 따라 달라집니다.
  4. CPU를 늘리면 백업 및 복원 시간 개선에 큰 영향을 미칩니다.
  5. DataMover - DataMover 기본 리소스 제한 시간은 10m입니다. 테스트 결과 대규모 PV(500GB 사용량)를 복원하려면 resourceTimeout을 60m로 늘려야 합니다.
참고

가이드 전체에 나열된 리소스 요구 사항은 평균 사용량 전용입니다. 큰 용도의 경우 위의 표에 설명된 대로 설정을 조정합니다.

4.4.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.4.2. OADP Operator 설치

OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.12에 OADP(OpenShift API for Data Protection) Operator를 설치할 수 있습니다.

OADP Operator는 Velero 1.12 를 설치합니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인해야 합니다.

절차

  1. OpenShift Container Platform 웹 콘솔에서 Operator OperatorHub를 클릭합니다.
  2. 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
  3. OADP Operator 를 선택하고 설치를 클릭합니다.
  4. openshift-adp 프로젝트에서 Operator를 설치하려면 설치를 클릭합니다.
  5. Operators 설치된 Operators 를 클릭하여 설치를 확인합니다.

4.4.2.1. OADP-Velero-OpenShift Container Platform 버전 관계

OADP 버전Velero 버전OpenShift Container Platform 버전

1.1.0

1.9

4.9 이상

1.1.1

1.9

4.9 이상

1.1.2

1.9

4.9 이상

1.1.3

1.9

4.9 이상

1.1.4

1.9

4.9 이상

1.1.5

1.9

4.9 이상

1.1.6

1.9

4.11 이상

1.1.7

1.9

4.11 이상

1.2.0

1.11

4.11 이상

1.2.1

1.11

4.11 이상

1.2.2

1.11

4.11 이상

1.2.3

1.11

4.11 이상

1.3.0

1.12

4.10 - 4.15

1.3.1

1.12

4.10 - 4.15

1.3.2

1.12

4.10 - 4.15

1.3.3

1.12

4.10 - 4.15

4.4.3. Amazon Web Services를 사용하여 데이터 보호를 위한 OpenShift API 구성

OADP Operator를 설치하여 AWS(Amazon Web Services)에서 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.12 를 설치합니다.

참고

OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.

Velero에 대해 AWS를 구성하고 기본 시크릿 을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.

제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.

4.4.3.1. Amazon Web Services 구성

OADP(OpenShift API for Data Protection)에 대해 AWS(Amazon Web Services)를 구성합니다.

사전 요구 사항

  • AWS CLI가 설치되어 있어야 합니다.

절차

  1. BUCKET 변수를 설정합니다.

    $ BUCKET=<your_bucket>
  2. REGION 변수를 설정합니다.

    $ REGION=<your_region>
  3. AWS S3 버킷을 생성합니다.

    $ aws s3api create-bucket \
        --bucket $BUCKET \
        --region $REGION \
        --create-bucket-configuration LocationConstraint=$REGION 1
    1
    us-east-1LocationConstraint를 지원하지 않습니다. 리전이 us-east-1인 경우 --create-bucket-configuration LocationConstraint=$REGION을 생략합니다.
  4. IAM 사용자를 생성합니다.

    $ aws iam create-user --user-name velero 1
    1
    Velero를 사용하여 여러 S3 버킷이 있는 여러 클러스터를 백업하려면 각 클러스터에 대해 고유한 사용자 이름을 생성합니다.
  5. 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
  6. 정책을 연결하여 velero 사용자에게 필요한 최소 권한을 부여합니다.

    $ aws iam put-user-policy \
      --user-name velero \
      --policy-name velero \
      --policy-document file://velero-policy.json
  7. 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>
      }
    }

  8. credentials-velero 파일을 만듭니다.

    $ cat << EOF > ./credentials-velero
    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
    EOF

    데이터 보호 애플리케이션을 설치하기 전에 credentials-velero 파일을 사용하여 AWS용 Secret 오브젝트를 생성합니다.

4.4.3.2. 백업 및 스냅샷 위치 및 보안 정보

DataProtectionApplication CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.

백업 위치

AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Ceph RADOS Gateway 또는 MinIO와 같은 백업 위치로 지정합니다.

Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.

스냅샷 위치

영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.

CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.

Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.

보안

백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿 을 생성합니다.

백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.

  • DataProtectionApplication CR에서 지정하는 백업 위치에 대한 사용자 정의 시크릿 입니다.
  • DataProtectionApplication CR에서 참조되지 않는 스냅샷 위치에 대한 기본 시크릿 입니다.
중요

데이터 보호 애플리케이션에는 기본 보안이 필요합니다. 그렇지 않으면 설치에 실패합니다.

설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다.

4.4.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

Secret 은 데이터 보호 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조합니다.

4.4.3.2.2. 다양한 인증 정보에 대한 프로필 생성

백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 credentials-velero 파일에 별도의 프로필을 생성합니다.

그런 다음 Secret 오브젝트를 생성하고 DataProtectionApplication CR(사용자 정의 리소스)에서 프로필을 지정합니다.

절차

  1. 다음 예제와 같이 백업 및 스냅샷 위치에 대한 별도의 프로필을 사용하여 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>
  2. credentials-velero 파일을 사용하여 Secret 오브젝트를 생성합니다.

    $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero 1
  3. 다음 예와 같이 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.4.3.3. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.

4.4.3.3.1. Velero CPU 및 메모리 리소스 할당 설정

DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero Pod의 CPU 및 메모리 리소스 할당을 설정합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    1 1
    Velero podSpec에 제공할 노드 선택기를 지정합니다.
    2
    나열된 resourceAllocations 는 평균 사용량입니다.

nodeSelector 필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector 필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.

자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.

4.4.3.3.2. 자체 서명 CA 인증서 활성화

알 수 없는 기관 오류로 서명된 인증서를 방지하려면 DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 개체 스토리지에 대해 자체 서명된 CA 인증서를 활성화해야 합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    ...
    1
    Base64 인코딩 CA 인증서 문자열을 지정합니다.
    2
    insecureSkipTLSVerify 구성은 "true" 또는 "false" 로 설정할 수 있습니다. "true" 로 설정하면 SSL/TLS 보안이 비활성화됩니다. "false" 로 설정하면 SSL/TLS 보안이 활성화됩니다.

4.4.3.4. 데이터 보호 애플리케이션 설치

Data ProtectionApplication API 인스턴스를 만들어 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

  • OADP Operator를 설치해야 합니다.
  • 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
  • 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
  • 백업 및 스냅샷 위치가 동일한 자격 증명을 사용하는 경우 기본 이름 cloud-credentials 를 사용하여 Secret 을 생성해야 합니다.
  • 백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 백업 및 스냅샷 위치 자격 증명에 대한 별도의 프로필이 포함된 기본 이름 cloud-credentials 를 사용하여 Secret 을 생성해야 합니다.

    참고

    설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다. 기본 보안이 없으면 설치에 실패합니다.

    참고

    Velero는 기본 백업 리포지토리 암호가 포함된 OADP 네임스페이스에 velero-repo-credentials 라는 시크릿을 생성합니다. 백업 리포지토리를 대상으로 하는 첫 번째 백업을 실행하기 전에 base64로 인코딩된 고유한 암호로 시크릿을 업데이트할 수 있습니다. 업데이트할 키의 값은 Data[repository-password] 입니다.

    DPA를 생성한 후 백업 리포지토리를 대상으로 하는 백업을 처음 실행하면 Velero에서 시크릿이 기본 암호 또는 교체한 암호가 포함된 velero-repo-credentials 인 백업 리포지토리를 생성합니다. 첫 번째 백업 시크릿 암호를 업데이트하면 새 암호가 velero-repo-credentials 의 암호와 일치하지 않으므로 Velero는 이전 백업과 연결할 수 없습니다.

절차

  1. Operators 설치된 Operator 를 클릭하고 OADP Operator를 선택합니다.
  2. 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
  3. YAML 보기를 클릭하고 DataProtectionApplication 매니페스트의 매개변수를 업데이트합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - openshift 1
            - aws
          resourceTimeout: 10m 2
        restic:
          enable: true 3
          podConfig:
            nodeSelector: <node_selector> 4
      backupLocations:
        - name: default
          velero:
            provider: aws
            default: true
            objectStorage:
              bucket: <bucket_name> 5
              prefix: <prefix> 6
            config:
              region: <region>
              profile: "default"
            credential:
              key: cloud
              name: cloud-credentials 7
      snapshotLocations: 8
        - velero:
            provider: aws
            config:
              region: <region> 9
              profile: "default"
    1
    openshift 플러그인은 필수입니다.
    2
    Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
    3
    Restic 설치를 비활성화하려면 이 값을 false 로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, Restic pod는 각 작업 노드에서 실행됩니다. OADP 버전 1.2 이상에서는 Backup CR에 spec.defaultVolumesToFsBackup: true 를 추가하여 백업에 대해 Restic을 구성할 수 있습니다. OADP 버전 1.1에서 Backup CR에 spec.defaultVolumesToRestic: true 를 추가합니다.
    4
    Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Restic은 모든 노드에서 실행됩니다.
    5
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    6
    버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
    7
    생성한 Secret 오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본 이름 cloud-credentials 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.
    8
    CSI 스냅샷 또는 Restic을 사용하여 PV를 백업하지 않는 한 스냅샷 위치를 지정합니다.
    9
    스냅샷 위치는 PV와 동일한 리전에 있어야 합니다.
  4. 생성을 클릭합니다.
  5. OADP 리소스를 확인하여 설치를 확인합니다.

    $ oc get all -n openshift-adp

    출력 예

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/restic-9cq4q                                         1/1     Running   0          94s
    pod/restic-m4lts                                         1/1     Running   0          94s
    pod/restic-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
    
    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/restic   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

4.4.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.4.3.4.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.4.4. Microsoft Azure를 사용하여 데이터 보호를 위한 OpenShift API 구성

OADP Operator를 설치하여 Microsoft Azure와 함께 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.12 를 설치합니다.

참고

OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.

Velero에 대해 Azure를 구성하고 기본 시크릿 을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.

제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.

4.4.4.1. Microsoft Azure 구성

OADP(OpenShift API for Data Protection)에 대해 Microsoft Azure를 구성합니다.

사전 요구 사항

  • Azure CLI가 설치되어 있어야 합니다.

Azure 서비스를 사용하는 툴에는 항상 Azure 리소스가 안전한지 확인하기 위해 제한된 권한이 있어야 합니다. 따라서 애플리케이션이 완전히 권한이 있는 사용자로 로그인하는 대신 Azure는 서비스 주체를 제공합니다. Azure 서비스 주체는 애플리케이션, 호스팅 서비스 또는 자동화된 도구와 함께 사용할 수 있는 이름입니다.

이 ID는 리소스에 대한 액세스에 사용됩니다.

  • 서비스 주체 생성
  • 서비스 주체 및 암호를 사용하여 로그인
  • 서비스 주체 및 인증서를 사용하여 로그인
  • 서비스 주체 역할 관리
  • 서비스 주체를 사용하여 Azure 리소스 생성
  • 서비스 주체 인증 정보 재설정

자세한 내용은 Azure CLI를 사용하여 Azure 서비스 주체 만들기를 참조하십시오.

4.4.4.2. 백업 및 스냅샷 위치 및 보안 정보

DataProtectionApplication CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.

백업 위치

AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Ceph RADOS Gateway 또는 MinIO와 같은 백업 위치로 지정합니다.

Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.

스냅샷 위치

영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.

CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.

Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.

보안

백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿 을 생성합니다.

백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.

  • DataProtectionApplication CR에서 지정하는 백업 위치에 대한 사용자 정의 시크릿 입니다.
  • DataProtectionApplication CR에서 참조되지 않는 스냅샷 위치에 대한 기본 시크릿 입니다.
중요

데이터 보호 애플리케이션에는 기본 보안이 필요합니다. 그렇지 않으면 설치에 실패합니다.

설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다.

4.4.4.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

Secret 은 데이터 보호 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조합니다.

4.4.4.2.2. 다른 인증 정보의 보안 생성

백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret 오브젝트를 생성해야 합니다.

  • 사용자 지정 이름을 사용한 백업 위치 시크릿. 사용자 정의 이름은 DataProtectionApplication CR(사용자 정의 리소스)의 spec.backupLocations 블록에 지정됩니다.
  • 기본 이름 cloud-credentials-azure 인 스냅샷 위치 시크릿. 이 SecretDataProtectionApplication CR에 지정되지 않습니다.

절차

  1. 클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한 자격 증명-velero 파일을 만듭니다.
  2. 기본 이름으로 스냅샷 위치에 대한 Secret 을 생성합니다.

    $ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
  3. 오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한 credentials-velero 파일을 만듭니다.
  4. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.

    $ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
  5. 다음 예와 같이 사용자 지정 이름이 있는 SecretDataProtectionApplication 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.4.4.3. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.

4.4.4.3.1. Velero CPU 및 메모리 리소스 할당 설정

DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero Pod의 CPU 및 메모리 리소스 할당을 설정합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    1
    Velero podSpec에 제공할 노드 선택기를 지정합니다.
    2
    나열된 resourceAllocations 는 평균 사용량입니다.

nodeSelector 필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector 필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.

자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.

4.4.4.3.2. 자체 서명 CA 인증서 활성화

알 수 없는 기관 오류로 서명된 인증서를 방지하려면 DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 개체 스토리지에 대해 자체 서명된 CA 인증서를 활성화해야 합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    ...
    1
    Base64 인코딩 CA 인증서 문자열을 지정합니다.
    2
    insecureSkipTLSVerify 구성은 "true" 또는 "false" 로 설정할 수 있습니다. "true" 로 설정하면 SSL/TLS 보안이 비활성화됩니다. "false" 로 설정하면 SSL/TLS 보안이 활성화됩니다.

4.4.4.4. 데이터 보호 애플리케이션 설치

Data ProtectionApplication API 인스턴스를 만들어 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

  • OADP Operator를 설치해야 합니다.
  • 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
  • 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
  • 백업 및 스냅샷 위치가 동일한 자격 증명을 사용하는 경우 기본 이름 cloud-credentials-azure 를 사용하여 Secret 을 생성해야 합니다.
  • 백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 을 생성해야 합니다.

    • 백업 위치에 대한 사용자 지정 이름이 있는 시크릿 입니다. 이 보안을 DataProtectionApplication CR에 추가합니다.
    • 스냅샷 위치에 대한 기본 이름 cloud-credentials-azure 가 있는 시크릿 입니다. 이 보안DataProtectionApplication CR에서 참조되지 않습니다.

      참고

      설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다. 기본 보안이 없으면 설치에 실패합니다.

      참고

      Velero는 기본 백업 리포지토리 암호가 포함된 OADP 네임스페이스에 velero-repo-credentials 라는 시크릿을 생성합니다. 백업 리포지토리를 대상으로 하는 첫 번째 백업을 실행하기 전에 base64로 인코딩된 고유한 암호로 시크릿을 업데이트할 수 있습니다. 업데이트할 키의 값은 Data[repository-password] 입니다.

      DPA를 생성한 후 백업 리포지토리를 대상으로 하는 백업을 처음 실행하면 Velero에서 시크릿이 기본 암호 또는 교체한 암호가 포함된 velero-repo-credentials 인 백업 리포지토리를 생성합니다. 첫 번째 백업 시크릿 암호를 업데이트하면 새 암호가 velero-repo-credentials 의 암호와 일치하지 않으므로 Velero는 이전 백업과 연결할 수 없습니다.

절차

  1. Operators 설치된 Operator 를 클릭하고 OADP Operator를 선택합니다.
  2. 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
  3. YAML 보기를 클릭하고 DataProtectionApplication 매니페스트의 매개변수를 업데이트합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - azure
            - openshift 1
          resourceTimeout: 10m 2
        restic:
          enable: true 3
          podConfig:
            nodeSelector: <node_selector> 4
      backupLocations:
        - velero:
            config:
              resourceGroup: <azure_resource_group> 5
              storageAccount: <azure_storage_account_id> 6
              subscriptionId: <azure_subscription_id> 7
              storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY
            credential:
              key: cloud
              name: cloud-credentials-azure  8
            provider: azure
            default: true
            objectStorage:
              bucket: <bucket_name> 9
              prefix: <prefix> 10
      snapshotLocations: 11
        - velero:
            config:
              resourceGroup: <azure_resource_group>
              subscriptionId: <azure_subscription_id>
              incremental: "true"
            name: default
            provider: azure
    1
    openshift 플러그인은 필수입니다.
    2
    Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
    3
    Restic 설치를 비활성화하려면 이 값을 false 로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, Restic pod는 각 작업 노드에서 실행됩니다. OADP 버전 1.2 이상에서는 Backup CR에 spec.defaultVolumesToFsBackup: true 를 추가하여 백업에 대해 Restic을 구성할 수 있습니다. OADP 버전 1.1에서 Backup CR에 spec.defaultVolumesToRestic: true 를 추가합니다.
    4
    Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Restic은 모든 노드에서 실행됩니다.
    5
    Azure 리소스 그룹을 지정합니다.
    6
    Azure 스토리지 계정 ID를 지정합니다.
    7
    Azure 서브스크립션 ID를 지정합니다.
    8
    이 값을 지정하지 않으면 기본 이름 cloud-credentials-azure 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.
    9
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    10
    버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
    11
    PV를 백업하기 위해 CSI 스냅샷 또는 Restic을 사용하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
  4. 생성을 클릭합니다.
  5. OADP 리소스를 확인하여 설치를 확인합니다.

    $ oc get all -n openshift-adp

    출력 예

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/restic-9cq4q                                         1/1     Running   0          94s
    pod/restic-m4lts                                         1/1     Running   0          94s
    pod/restic-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
    
    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/restic   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

4.4.4.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.4.4.4.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.4.5. Google Cloud Platform을 사용하여 데이터 보호를 위한 OpenShift API 구성

OADP Operator를 설치하여 GCP(Google Cloud Platform)에서 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.12 를 설치합니다.

참고

OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.

Velero에 대한 GCP를 구성하고 기본 시크릿 을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.

제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.

4.4.5.1. GCP(Google Cloud Platform) 구성

OADP(OpenShift API for Data Protection)에 대해 GCP(Google Cloud Platform)를 구성합니다.

사전 요구 사항

절차

  1. GCP에 로그인합니다.

    $ gcloud auth login
  2. BUCKET 변수를 설정합니다.

    $ BUCKET=<bucket> 1
    1
    버킷 이름을 지정합니다.
  3. 스토리지 버킷을 생성합니다.

    $ gsutil mb gs://$BUCKET/
  4. PROJECT_ID 변수를 활성 프로젝트로 설정합니다.

    $ PROJECT_ID=$(gcloud config get-value project)
  5. 서비스 계정을 생성합니다.

    $ gcloud iam service-accounts create velero \
        --display-name "Velero service account"
  6. 서비스 계정을 나열합니다.

    $ gcloud iam service-accounts list
  7. email 값과 일치하도록 SERVICE_ACCOUNT_EMAIL 변수를 설정합니다.

    $ SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \
        --filter="displayName:Velero service account" \
        --format 'value(email)')
  8. 정책을 연결하여 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
    )
  9. velero.server 사용자 정의 역할을 생성합니다.

    $ gcloud iam roles create velero.server \
        --project $PROJECT_ID \
        --title "Velero Server" \
        --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
  10. 프로젝트에 IAM 정책 바인딩을 추가합니다.

    $ gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
        --role projects/$PROJECT_ID/roles/velero.server
  11. IAM 서비스 계정을 업데이트합니다.

    $ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
  12. IAM 서비스 계정 키를 현재 디렉터리의 credentials-velero 파일에 저장합니다.

    $ gcloud iam service-accounts keys create credentials-velero \
        --iam-account $SERVICE_ACCOUNT_EMAIL

    credentials-velero 파일을 사용하여 데이터 보호 애플리케이션을 설치하기 전에 GCP용 Secret 오브젝트를 생성합니다.

4.4.5.2. 백업 및 스냅샷 위치 및 보안 정보

DataProtectionApplication CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.

백업 위치

AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Ceph RADOS Gateway 또는 MinIO와 같은 백업 위치로 지정합니다.

Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.

스냅샷 위치

영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.

CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.

Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.

보안

백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿 을 생성합니다.

백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.

  • DataProtectionApplication CR에서 지정하는 백업 위치에 대한 사용자 정의 시크릿 입니다.
  • DataProtectionApplication CR에서 참조되지 않는 스냅샷 위치에 대한 기본 시크릿 입니다.
중요

데이터 보호 애플리케이션에는 기본 보안이 필요합니다. 그렇지 않으면 설치에 실패합니다.

설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다.

4.4.5.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

Secret 은 데이터 보호 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조합니다.

4.4.5.2.2. 다른 인증 정보의 보안 생성

백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret 오브젝트를 생성해야 합니다.

  • 사용자 지정 이름을 사용한 백업 위치 시크릿. 사용자 정의 이름은 DataProtectionApplication CR(사용자 정의 리소스)의 spec.backupLocations 블록에 지정됩니다.
  • 기본 이름 cloud-credentials-gcp 를 사용한 스냅샷 위치 시크릿. 이 SecretDataProtectionApplication CR에 지정되지 않습니다.

절차

  1. 클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한 자격 증명-velero 파일을 만듭니다.
  2. 기본 이름으로 스냅샷 위치에 대한 Secret 을 생성합니다.

    $ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
  3. 오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한 credentials-velero 파일을 만듭니다.
  4. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.

    $ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
  5. 다음 예와 같이 사용자 지정 이름이 있는 SecretDataProtectionApplication 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.4.5.3. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.

4.4.5.3.1. Velero CPU 및 메모리 리소스 할당 설정

DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero Pod의 CPU 및 메모리 리소스 할당을 설정합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    1
    Velero podSpec에 제공할 노드 선택기를 지정합니다.
    2
    나열된 resourceAllocations 는 평균 사용량입니다.

nodeSelector 필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector 필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.

자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.

4.4.5.3.2. 자체 서명 CA 인증서 활성화

알 수 없는 기관 오류로 서명된 인증서를 방지하려면 DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 개체 스토리지에 대해 자체 서명된 CA 인증서를 활성화해야 합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    ...
    1
    Base64 인코딩 CA 인증서 문자열을 지정합니다.
    2
    insecureSkipTLSVerify 구성은 "true" 또는 "false" 로 설정할 수 있습니다. "true" 로 설정하면 SSL/TLS 보안이 비활성화됩니다. "false" 로 설정하면 SSL/TLS 보안이 활성화됩니다.

4.4.5.4. 데이터 보호 애플리케이션 설치

Data ProtectionApplication API 인스턴스를 만들어 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

  • OADP Operator를 설치해야 합니다.
  • 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
  • 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
  • 백업 및 스냅샷 위치가 동일한 자격 증명을 사용하는 경우 기본 이름 cloud-credentials-gcp 를 사용하여 Secret 을 생성해야 합니다.
  • 백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 을 생성해야 합니다.

    • 백업 위치에 대한 사용자 지정 이름이 있는 시크릿 입니다. 이 보안을 DataProtectionApplication CR에 추가합니다.
    • 스냅샷 위치에 대한 기본 이름 cloud-credentials-gcp 가 있는 시크릿 입니다. 이 보안DataProtectionApplication CR에서 참조되지 않습니다.

      참고

      설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다. 기본 보안이 없으면 설치에 실패합니다.

      참고

      Velero는 기본 백업 리포지토리 암호가 포함된 OADP 네임스페이스에 velero-repo-credentials 라는 시크릿을 생성합니다. 백업 리포지토리를 대상으로 하는 첫 번째 백업을 실행하기 전에 base64로 인코딩된 고유한 암호로 시크릿을 업데이트할 수 있습니다. 업데이트할 키의 값은 Data[repository-password] 입니다.

      DPA를 생성한 후 백업 리포지토리를 대상으로 하는 백업을 처음 실행하면 Velero에서 시크릿이 기본 암호 또는 교체한 암호가 포함된 velero-repo-credentials 인 백업 리포지토리를 생성합니다. 첫 번째 백업 시크릿 암호를 업데이트하면 새 암호가 velero-repo-credentials 의 암호와 일치하지 않으므로 Velero는 이전 백업과 연결할 수 없습니다.

절차

  1. Operators 설치된 Operator 를 클릭하고 OADP Operator를 선택합니다.
  2. 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
  3. YAML 보기를 클릭하고 DataProtectionApplication 매니페스트의 매개변수를 업데이트합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - gcp
            - openshift 1
          resourceTimeout: 10m 2
        restic:
          enable: true 3
          podConfig:
            nodeSelector: <node_selector> 4
      backupLocations:
        - velero:
            provider: gcp
            default: true
            credential:
              key: cloud
              name: cloud-credentials-gcp 5
            objectStorage:
              bucket: <bucket_name> 6
              prefix: <prefix> 7
      snapshotLocations: 8
        - velero:
            provider: gcp
            default: true
            config:
              project: <project>
              snapshotLocation: us-west1 9
    1
    openshift 플러그인은 필수입니다.
    2
    Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
    3
    Restic 설치를 비활성화하려면 이 값을 false 로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, Restic pod는 각 작업 노드에서 실행됩니다. OADP 버전 1.2 이상에서는 Backup CR에 spec.defaultVolumesToFsBackup: true 를 추가하여 백업에 대해 Restic을 구성할 수 있습니다. OADP 버전 1.1에서 Backup CR에 spec.defaultVolumesToRestic: true 를 추가합니다.
    4
    Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Restic은 모든 노드에서 실행됩니다.
    5
    이 값을 지정하지 않으면 기본 이름 cloud-credentials-gcp 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.
    6
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    7
    버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
    8
    CSI 스냅샷 또는 Restic을 사용하여 PV를 백업하지 않는 한 스냅샷 위치를 지정합니다.
    9
    스냅샷 위치는 PV와 동일한 리전에 있어야 합니다.
  4. 생성을 클릭합니다.
  5. OADP 리소스를 확인하여 설치를 확인합니다.

    $ oc get all -n openshift-adp

    출력 예

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/restic-9cq4q                                         1/1     Running   0          94s
    pod/restic-m4lts                                         1/1     Running   0          94s
    pod/restic-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
    
    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/restic   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

4.4.5.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.4.5.4.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.4.6. Multicloud Object Gateway를 사용하여 데이터 보호를 위한 OpenShift API 구성

OADP Operator를 설치하여 MCG(Multicloud Object Gateway)를 사용하여 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.12 를 설치합니다.

참고

OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.

Multicloud Object Gateway 를 백업 위치로 구성합니다. MCG는 OpenShift Data Foundation의 구성 요소입니다. DataProtectionApplication CR(사용자 정의 리소스)에서 MCG를 백업 위치로 구성합니다.

중요

개체 스토리지의 버킷 생성을 자동화하는 CloudStorage API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

백업 위치에 대한 시크릿 을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.

제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.

4.4.6.1. 멀티 클라우드 오브젝트 게이트웨이 인증 정보 검색

OADP(데이터 보호)용 OpenShift API에 대한 Secret CR(사용자 정의 리소스)을 생성하려면 MCG(Multicloud Object Gateway) 인증 정보를 검색해야 합니다.

MCG는 OpenShift Data Foundation의 구성 요소입니다.

사전 요구 사항

절차

  1. NooBaa 사용자 정의 리소스에서 describe 명령을 실행하여 S3 끝점, AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY를 가져옵니다.
  2. credentials-velero 파일을 만듭니다.

    $ cat << EOF > ./credentials-velero
    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
    EOF

    credentials-velero 파일을 사용하여 데이터 보호 애플리케이션을 설치할 때 Secret 오브젝트를 생성합니다.

4.4.6.2. 백업 및 스냅샷 위치 및 보안 정보

DataProtectionApplication CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.

백업 위치

AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Ceph RADOS Gateway 또는 MinIO와 같은 백업 위치로 지정합니다.

Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.

스냅샷 위치

영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.

CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.

Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.

보안

백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿 을 생성합니다.

백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.

  • DataProtectionApplication CR에서 지정하는 백업 위치에 대한 사용자 정의 시크릿 입니다.
  • DataProtectionApplication CR에서 참조되지 않는 스냅샷 위치에 대한 기본 시크릿 입니다.
중요

데이터 보호 애플리케이션에는 기본 보안이 필요합니다. 그렇지 않으면 설치에 실패합니다.

설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다.

4.4.6.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

Secret 은 데이터 보호 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조합니다.

4.4.6.2.2. 다른 인증 정보의 보안 생성

백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret 오브젝트를 생성해야 합니다.

  • 사용자 지정 이름을 사용한 백업 위치 시크릿. 사용자 정의 이름은 DataProtectionApplication CR(사용자 정의 리소스)의 spec.backupLocations 블록에 지정됩니다.
  • 기본 이름 cloud-credentials 가 있는 스냅샷 위치 시크릿. 이 SecretDataProtectionApplication CR에 지정되지 않습니다.

절차

  1. 클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한 자격 증명-velero 파일을 만듭니다.
  2. 기본 이름으로 스냅샷 위치에 대한 Secret 을 생성합니다.

    $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
  3. 오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한 credentials-velero 파일을 만듭니다.
  4. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.

    $ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
  5. 다음 예와 같이 사용자 지정 이름이 있는 SecretDataProtectionApplication CR에 추가합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
    ...
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: minio
              s3Url: <url>
              insecureSkipTLSVerify: "true"
              s3ForcePathStyle: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name:  <custom_secret> 1
            objectStorage:
              bucket: <bucket_name>
              prefix: <prefix>
    1
    사용자 정의 이름으로 백업 위치 시크릿.

4.4.6.3. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.

4.4.6.3.1. Velero CPU 및 메모리 리소스 할당 설정

DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero Pod의 CPU 및 메모리 리소스 할당을 설정합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    1
    Velero podSpec에 제공할 노드 선택기를 지정합니다.
    2
    나열된 resourceAllocations 는 평균 사용량입니다.

nodeSelector 필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector 필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.

자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.

4.4.6.3.2. 자체 서명 CA 인증서 활성화

알 수 없는 기관 오류로 서명된 인증서를 방지하려면 DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 개체 스토리지에 대해 자체 서명된 CA 인증서를 활성화해야 합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    ...
    1
    Base64 인코딩 CA 인증서 문자열을 지정합니다.
    2
    insecureSkipTLSVerify 구성은 "true" 또는 "false" 로 설정할 수 있습니다. "true" 로 설정하면 SSL/TLS 보안이 비활성화됩니다. "false" 로 설정하면 SSL/TLS 보안이 활성화됩니다.

4.4.6.4. 데이터 보호 애플리케이션 설치

Data ProtectionApplication API 인스턴스를 만들어 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

  • OADP Operator를 설치해야 합니다.
  • 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
  • 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
  • 백업 및 스냅샷 위치가 동일한 자격 증명을 사용하는 경우 기본 이름 cloud-credentials 를 사용하여 Secret 을 생성해야 합니다.
  • 백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 을 생성해야 합니다.

    • 백업 위치에 대한 사용자 지정 이름이 있는 시크릿 입니다. 이 보안을 DataProtectionApplication CR에 추가합니다.
    • 스냅샷 위치에 대한 기본 이름 cloud-credentials 가 있는 시크릿 입니다. 이 보안DataProtectionApplication CR에서 참조되지 않습니다.

      참고

      설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다. 기본 보안이 없으면 설치에 실패합니다.

      참고

      Velero는 기본 백업 리포지토리 암호가 포함된 OADP 네임스페이스에 velero-repo-credentials 라는 시크릿을 생성합니다. 백업 리포지토리를 대상으로 하는 첫 번째 백업을 실행하기 전에 base64로 인코딩된 고유한 암호로 시크릿을 업데이트할 수 있습니다. 업데이트할 키의 값은 Data[repository-password] 입니다.

      DPA를 생성한 후 백업 리포지토리를 대상으로 하는 백업을 처음 실행하면 Velero에서 시크릿이 기본 암호 또는 교체한 암호가 포함된 velero-repo-credentials 인 백업 리포지토리를 생성합니다. 첫 번째 백업 시크릿 암호를 업데이트하면 새 암호가 velero-repo-credentials 의 암호와 일치하지 않으므로 Velero는 이전 백업과 연결할 수 없습니다.

절차

  1. Operators 설치된 Operator 를 클릭하고 OADP Operator를 선택합니다.
  2. 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
  3. YAML 보기를 클릭하고 DataProtectionApplication 매니페스트의 매개변수를 업데이트합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - aws
            - openshift 1
          resourceTimeout: 10m 2
        restic:
          enable: true 3
          podConfig:
            nodeSelector: <node_selector> 4
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: minio
              s3Url: <url> 5
              insecureSkipTLSVerify: "true"
              s3ForcePathStyle: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name: cloud-credentials 6
            objectStorage:
              bucket: <bucket_name> 7
              prefix: <prefix> 8
    1
    openshift 플러그인은 필수입니다.
    2
    Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
    3
    Restic 설치를 비활성화하려면 이 값을 false 로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, Restic pod는 각 작업 노드에서 실행됩니다. OADP 버전 1.2 이상에서는 Backup CR에 spec.defaultVolumesToFsBackup: true 를 추가하여 백업에 대해 Restic을 구성할 수 있습니다. OADP 버전 1.1에서 Backup CR에 spec.defaultVolumesToRestic: true 를 추가합니다.
    4
    Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Restic은 모든 노드에서 실행됩니다.
    5
    S3 끝점의 URL을 지정합니다.
    6
    이 값을 지정하지 않으면 기본 이름 cloud-credentials 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.
    7
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    8
    버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
  4. 생성을 클릭합니다.
  5. OADP 리소스를 확인하여 설치를 확인합니다.

    $ oc get all -n openshift-adp

    출력 예

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/restic-9cq4q                                         1/1     Running   0          94s
    pod/restic-m4lts                                         1/1     Running   0          94s
    pod/restic-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
    
    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/restic   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

4.4.6.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.4.6.4.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.4.7. OpenShift Data Foundation으로 데이터 보호를 위한 OpenShift API 구성

OADP Operator를 설치하고 백업 위치와 스냅샷 위치를 구성하여 OpenShift Data Foundation과 함께 OADP(Data Protection)용 OpenShift API를 설치합니다. 그런 다음 데이터 보호 애플리케이션을 설치합니다.

참고

OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.

Multicloud Object Gateway 또는 S3 호환 오브젝트 스토리지를 백업 위치로 구성할 수 있습니다.

중요

개체 스토리지의 버킷 생성을 자동화하는 CloudStorage API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

백업 위치에 대한 시크릿 을 생성한 다음 데이터 보호 애플리케이션을 설치합니다. 자세한 내용은 OADP Operator 설치를 참조하십시오.

제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.

4.4.7.1. 백업 및 스냅샷 위치 및 보안 정보

DataProtectionApplication CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.

백업 위치

AWS S3 호환 오브젝트 스토리지를 Multicloud Object Gateway, Ceph RADOS Gateway 또는 MinIO와 같은 백업 위치로 지정합니다.

Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.

스냅샷 위치

영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.

CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.

Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.

보안

백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿 을 생성합니다.

백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.

  • DataProtectionApplication CR에서 지정하는 백업 위치에 대한 사용자 정의 시크릿 입니다.
  • DataProtectionApplication CR에서 참조되지 않는 스냅샷 위치에 대한 기본 시크릿 입니다.
중요

데이터 보호 애플리케이션에는 기본 보안이 필요합니다. 그렇지 않으면 설치에 실패합니다.

설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다.

4.4.7.1.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

Secret 은 데이터 보호 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조합니다.

4.4.7.1.2. 다른 인증 정보의 보안 생성

백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret 오브젝트를 생성해야 합니다.

  • 사용자 지정 이름을 사용한 백업 위치 시크릿. 사용자 정의 이름은 DataProtectionApplication CR(사용자 정의 리소스)의 spec.backupLocations 블록에 지정됩니다.
  • 기본 이름 cloud-credentials 가 있는 스냅샷 위치 시크릿. 이 SecretDataProtectionApplication CR에 지정되지 않습니다.

절차

  1. 클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한 자격 증명-velero 파일을 만듭니다.
  2. 기본 이름으로 스냅샷 위치에 대한 Secret 을 생성합니다.

    $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
  3. 오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한 credentials-velero 파일을 만듭니다.
  4. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.

    $ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
  5. 다음 예와 같이 사용자 지정 이름이 있는 SecretDataProtectionApplication CR에 추가합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
    ...
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: minio
              s3Url: <url>
              insecureSkipTLSVerify: "true"
              s3ForcePathStyle: "true"
            provider: gcp
            default: true
            credential:
              key: cloud
              name:  <custom_secret> 1
            objectStorage:
              bucket: <bucket_name>
              prefix: <prefix>
    1
    사용자 정의 이름으로 백업 위치 시크릿.

4.4.7.2. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.

4.4.7.2.1. Velero CPU 및 메모리 리소스 할당 설정

DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero Pod의 CPU 및 메모리 리소스 할당을 설정합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    1
    Velero podSpec에 제공할 노드 선택기를 지정합니다.
    2
    나열된 resourceAllocations 는 평균 사용량입니다.

nodeSelector 필드를 사용하여 노드 에이전트를 실행할 수 있는 노드를 선택합니다. nodeSelector 필드는 권장되는 노드 선택 제약 조건의 가장 간단한 형식입니다. 지정된 라벨은 각 노드의 라벨과 일치해야 합니다.

자세한 내용은 노드 에이전트 및 노드 라벨 구성을 참조하십시오.

4.4.7.2.1.1. 수집된 데이터를 기반으로 Ceph CPU 및 메모리 요구 사항 조정

다음 권장 사항은 규모 및 성능 랩에서 수행된 성능 관찰을 기반으로 합니다. 변경 사항은 특히 {odf-first}와 관련이 있습니다. {odf-short}로 작업하는 경우 공식 권장 사항은 적절한 튜닝 가이드를 참조하십시오.

4.4.7.2.1.1.1. 구성에 대한 CPU 및 메모리 요구 사항

백업 및 복원 작업에는 대량의 CephFS PersistentVolume (PV)이 필요합니다. 메모리 부족(OOM) 오류로 Ceph MDS Pod를 재시작하지 않으려면 다음 설정이 권장됩니다.

구성 유형요청최대 제한

CPU

3으로 변경됨

최대 제한 3

메모리

8Gi로 변경됨

최대 제한 128Gi

4.4.7.2.2. 자체 서명 CA 인증서 활성화

알 수 없는 기관 오류로 서명된 인증서를 방지하려면 DataProtectionApplication CR(사용자 정의 리소스) 매니페스트를 편집하여 개체 스토리지에 대해 자체 서명된 CA 인증서를 활성화해야 합니다.

사전 요구 사항

  • OADP(OpenShift API for 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
    ...
    1
    Base64 인코딩 CA 인증서 문자열을 지정합니다.
    2
    insecureSkipTLSVerify 구성은 "true" 또는 "false" 로 설정할 수 있습니다. "true" 로 설정하면 SSL/TLS 보안이 비활성화됩니다. "false" 로 설정하면 SSL/TLS 보안이 활성화됩니다.

4.4.7.3. 데이터 보호 애플리케이션 설치

Data ProtectionApplication API 인스턴스를 만들어 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

  • OADP Operator를 설치해야 합니다.
  • 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
  • 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
  • 백업 및 스냅샷 위치가 동일한 자격 증명을 사용하는 경우 기본 이름 cloud-credentials 를 사용하여 Secret 을 생성해야 합니다.
  • 백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 을 생성해야 합니다.

    • 백업 위치에 대한 사용자 지정 이름이 있는 시크릿 입니다. 이 보안을 DataProtectionApplication CR에 추가합니다.
    • 스냅샷 위치에 대한 기본 이름 cloud-credentials 가 있는 시크릿 입니다. 이 보안DataProtectionApplication CR에서 참조되지 않습니다.

      참고

      설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 보안을 생성할 수 있습니다. 기본 보안이 없으면 설치에 실패합니다.

      참고

      Velero는 기본 백업 리포지토리 암호가 포함된 OADP 네임스페이스에 velero-repo-credentials 라는 시크릿을 생성합니다. 백업 리포지토리를 대상으로 하는 첫 번째 백업을 실행하기 전에 base64로 인코딩된 고유한 암호로 시크릿을 업데이트할 수 있습니다. 업데이트할 키의 값은 Data[repository-password] 입니다.

      DPA를 생성한 후 백업 리포지토리를 대상으로 하는 백업을 처음 실행하면 Velero에서 시크릿이 기본 암호 또는 교체한 암호가 포함된 velero-repo-credentials 인 백업 리포지토리를 생성합니다. 첫 번째 백업 시크릿 암호를 업데이트하면 새 암호가 velero-repo-credentials 의 암호와 일치하지 않으므로 Velero는 이전 백업과 연결할 수 없습니다.

절차

  1. Operators 설치된 Operator 를 클릭하고 OADP Operator를 선택합니다.
  2. 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
  3. YAML 보기를 클릭하고 DataProtectionApplication 매니페스트의 매개변수를 업데이트합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - aws
            - openshift 1
          resourceTimeout: 10m 2
        restic:
          enable: true 3
          podConfig:
            nodeSelector: <node_selector> 4
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: minio
              s3Url: <url> 5
              insecureSkipTLSVerify: "true"
              s3ForcePathStyle: "true"
            provider: gcp
            default: true
            credential:
              key: cloud
              name: cloud-credentials 6
            objectStorage:
              bucket: <bucket_name> 7
              prefix: <prefix> 8
    1
    openshift 플러그인은 필수입니다.
    2
    Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 분을 지정합니다. 기본값은 10m입니다.
    3
    Restic 설치를 비활성화하려면 이 값을 false 로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, Restic pod는 각 작업 노드에서 실행됩니다. OADP 버전 1.2 이상에서는 Backup CR에 spec.defaultVolumesToFsBackup: true 를 추가하여 백업에 대해 Restic을 구성할 수 있습니다. OADP 버전 1.1에서 Backup CR에 spec.defaultVolumesToRestic: true 를 추가합니다.
    4
    Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Restic은 모든 노드에서 실행됩니다.
    5
    S3 끝점의 URL을 지정합니다.
    6
    이 값을 지정하지 않으면 기본 이름 cloud-credentials 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.
    7
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    8
    버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
  4. 생성을 클릭합니다.
  5. OADP 리소스를 확인하여 설치를 확인합니다.

    $ oc get all -n openshift-adp

    출력 예

    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/restic-9cq4q                                         1/1     Running   0          94s
    pod/restic-m4lts                                         1/1     Running   0          94s
    pod/restic-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
    
    NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/restic   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

4.4.7.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.4.7.3.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 액세스를 참조하십시오.

4.4.7.3.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 기본 플러그인을 추가합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.