4.2. OADP 설치 및 구성


4.2.1. OADP 설치 정보

클러스터 관리자는 OADP Operator를 설치하여 OADP(데이터 보호)용 OpenShift API를 설치합니다. OADP Operator는 Velero 1.7 을 설치합니다.

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

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

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

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

클라우드 공급자가 스냅샷을 지원하지 않거나 스토리지가 NFS인 경우 Restic.

스토리지 공급자 인증 정보에 대한 Secret 오브젝트를 생성한 다음 데이터 보호 애플리케이션을 설치합니다.

추가 리소스
  • Velero 문서 의 백업 위치 및 스냅샷 위치에 대한 개요입니다.

4.2.2. Amazon Web Services를 사용하여 데이터 보호용 OpenShift API 설치 및 구성

OADP Operator를 설치하고 Velero에 AWS를 구성한 다음 데이터 보호 애플리케이션을 설치하여 AWS(Amazon Web Services)를 사용하여 OADP(Data Protection)용 OpenShift API를 설치합니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

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

4.2.2.1. OADP Operator 설치

OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.8에 OADP(Data Protection) Operator의 OpenShift API를 설치합니다.

OADP Operator는 Velero 1.7 을 설치합니다.

사전 요구 사항

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

프로세스

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

4.2.2.2. Amazon Web Services S3 구성

MTC(Migration Toolkit for Containers)의 복제 리포지토리로 AWS(Amazon Web Services) S3 스토리지 버킷을 구성할 수 있습니다.

사전 요구 사항

  • 소스 및 대상 클러스터에서 AWS S3 스토리지 버킷에 액세스할 수 있어야 합니다.
  • AWS CLI가 설치되어 있어야 합니다.
  • 스냅샷 복사 방법을 사용하는 경우:

    • EC2 EBS(Elastic Block Storage)에 액세스할 수 있어야 합니다.
    • 소스 및 대상 클러스터는 동일한 지역에 있어야 합니다.
    • 소스 및 대상 클러스터는 동일한 스토리지 클래스를 보유해야 합니다.
    • 스토리지 클래스는 스냅샷과 호환 가능해야 합니다.

프로세스

  1. AWS S3 버킷을 생성합니다.

    $ aws s3api create-bucket \
        --bucket <bucket> \ 1
        --region <bucket_region> 2
    1
    S3 버킷 이름을 지정합니다.
    2
    S3 버킷 영역을 지정합니다(예: us-east-1).
  2. IAM 사용자 velero를 생성합니다.

    $ aws iam create-user --user-name velero
  3. EC2 EBS 스냅샷 정책을 생성합니다.

    $ cat > velero-ec2-snapshot-policy.json <<EOF
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "ec2:DescribeVolumes",
                    "ec2:DescribeSnapshots",
                    "ec2:CreateTags",
                    "ec2:CreateVolume",
                    "ec2:CreateSnapshot",
                    "ec2:DeleteSnapshot"
                ],
                "Resource": "*"
            }
        ]
    }
    EOF
  4. 하나 또는 모든 S3 버킷에 대한 AWS S3 액세스 정책을 생성합니다.

    $ cat > velero-s3-policy.json <<EOF
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:GetObject",
                    "s3:DeleteObject",
                    "s3:PutObject",
                    "s3:AbortMultipartUpload",
                    "s3:ListMultipartUploadParts"
                ],
                "Resource": [
                    "arn:aws:s3:::<bucket>/*" 1
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket",
                    "s3:GetBucketLocation",
                    "s3:ListBucketMultipartUploads"
                ],
                "Resource": [
                    "arn:aws:s3:::<bucket>" 2
                ]
            }
        ]
    }
    EOF
    1 2
    단일 S3 버킷에 대한 액세스 권한을 부여하려면 버킷 이름을 지정합니다. 모든 AWS S3 버킷에 대한 액세스 권한을 부여하려면 다음 예제와 같이 버킷 이름 대신 *를 지정합니다.

    출력 예

    "Resource": [
        "arn:aws:s3:::*"

  5. EC2 EBS 정책을 velero에 연결합니다.

    $ aws iam put-user-policy \
      --user-name velero \
      --policy-name velero-ebs \
      --policy-document file://velero-ec2-snapshot-policy.json
  6. AWS S3 정책을 velero에 연결합니다.

    $ aws iam put-user-policy \
      --user-name velero \
      --policy-name velero-s3 \
      --policy-document file://velero-s3-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>, 1
            "AccessKeyId": <AWS_ACCESS_KEY_ID> 2
        }
    }
  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

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

4.2.2.3. 백업 및 스냅샷 위치에 대한 보안 생성

동일한 인증 정보를 사용하는 경우 백업 및 스냅샷 위치에 대한 Secret 오브젝트를 생성합니다.

보안의 기본 이름은 cloud-credentials 입니다.

전제 조건

  • 오브젝트 스토리지 및 클라우드 스토리지에서 동일한 인증 정보를 사용해야 합니다.
  • Velero의 오브젝트 스토리지를 구성해야 합니다.
  • 적절한 형식으로 오브젝트 스토리지에 대한 credentials-velero 파일을 생성해야 합니다.

    참고

    DataProtectionApplication CR(사용자 정의 리소스)에는 보안을 설치해야 합니다. spec.backupLocations.credential.name 값이 지정되지 않은 경우 기본 이름이 사용됩니다.

    백업 위치 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 이름으로 보안을 생성해야 합니다.

프로세스

  • 기본 이름으로 보안을 생성합니다.

    $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero

Secret 은 Data Protection 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조됩니다.

4.2.2.3.1. 다른 백업 및 스냅샷 위치 인증 정보에 대한 보안 구성

백업 및 스냅샷 위치가 다른 자격 증명을 사용하는 경우 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:
        - name: default
          velero:
            provider: aws
            config:
              region: us-west-2
              profile: "volumeSnapshot"

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

Velero 리소스 할당을 구성하고 자체 서명된 CA 인증서를 활성화할 수 있습니다.

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

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

전제 조건

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

프로세스

  • 다음 예와 같이 DataProtectionApplication CR 매니페스트의 spec.configuration.velero.podConfig.ResourceAllocations 블록의 값을 편집합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    ...
      configuration:
        velero:
          podConfig:
            resourceAllocations:
              limits:
                cpu: "1" 1
                memory: 512Mi 2
              requests:
                cpu: 500m 3
                memory: 256Mi 4
    1 2 1 1
    밀리코어icpus 또는 CPU 단위로 값을 지정합니다. 기본값은 500m 또는 하나의 CPU 단위입니다.
    2
    기본값은 512Mi 입니다.
    3
    기본값은 500m 또는 하나의 CPU 단위입니다.
    4
    기본값은 256Mi 입니다.
4.2.2.4.2. 자체 서명된 CA 인증서 활성화

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

전제 조건

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

프로세스

  • DataProtectionApplication CR 매니페스트의 spec.backupLocations.veleLocation.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
    Base46-encoded CA 인증서 문자열을 지정합니다.
    2
    SSL/TLS 보안을 비활성화하려면 false 여야 합니다.

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

DataProtectionApplication API의 인스턴스를 생성하여 DPA(Data Protection Application)를 설치합니다.

전제 조건

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

    참고

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

프로세스

  1. Operator 설치된 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
        restic:
          enable: true 2
      backupLocations:
        - name: default
          velero:
            provider: aws
            default: true
            objectStorage:
              bucket: <bucket_name> 3
              prefix: <prefix> 4
            config:
              region: <region>
              profile: "default"
            credential:
              key: cloud
              name: cloud-credentials 5
      snapshotLocations: 6
        - name: default
          velero:
            provider: aws
            config:
              region: <region> 7
              profile: "default"
    1
    OpenShift Container Platform 클러스터에서 네임스페이스를 백업하고 복원하려면 openshift 플러그인이 필요합니다.
    2
    Restic 설치를 비활성화하려면 false 로 설정합니다. Restic은 데몬 세트를 배포하므로 각 작업자 노드에 Restic pod가 실행됩니다. Backup CR에 spec.defaultVolumesToRestic: true 를 추가하여 백업에 대한 Restic을 구성합니다.
    3
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    4
    여러 용도로 버킷이 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
    5
    생성한 Secret 오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본 이름 cloud-credentials 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 정의 이름이 사용됩니다.
    6
    PV를 백업하기 위해 CSI 스냅샷 또는 Restic을 사용하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
    7
    스냅샷 위치는 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/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k   1/1     Running   0          95s
    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
    service/oadp-velero-sample-1-aws-registry-svc              ClusterIP   172.30.130.230   <none>        5000/TCP   95s
    
    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/oadp-velero-sample-1-aws-registry   1/1     1            1           96s
    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/oadp-velero-sample-1-aws-registry-5d6968cbdd   1         1         1       96s
    replicaset.apps/velero-588db7f655                              1         1         1       96s

4.2.2.5.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
        featureFlags:
        - EnableCSI 2
    1
    csi 기본 플러그인을 추가합니다.
    2
    EnableCSI 기능 플래그를 추가합니다.

4.2.3. Microsoft Azure로 데이터 보호용 OpenShift API 설치 및 구성

OADP Operator를 설치하고 Velero용으로 Azure를 구성한 다음 Data Protection Application을 설치하여 Microsoft Azure와 함께 OADP(데이터 보호)용 OpenShift API를 설치합니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

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

4.2.3.1. OADP Operator 설치

OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.8에 OADP(Data Protection) Operator의 OpenShift API를 설치합니다.

OADP Operator는 Velero 1.7 을 설치합니다.

사전 요구 사항

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

프로세스

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

4.2.3.2. Microsoft Azure Blob 구성

Microsoft Azure Blob 스토리지 컨테이너를 MTC(Migration Toolkit for Containers)의 복제 리포지토리로 구성할 수 있습니다.

사전 요구 사항

  • Azure 스토리지 계정이 있어야 합니다.
  • Azure CLI가 설치되어 있어야 합니다.
  • Azure Blob 스토리지 컨테이너는 소스 및 대상 클러스터에 액세스할 수 있어야 합니다.
  • 스냅샷 복사 방법을 사용하는 경우:

    • 소스 및 대상 클러스터는 동일한 지역에 있어야 합니다.
    • 소스 및 대상 클러스터는 동일한 스토리지 클래스를 보유해야 합니다.
    • 스토리지 클래스는 스냅샷과 호환 가능해야 합니다.

프로세스

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

    $ AZURE_RESOURCE_GROUP=Velero_Backups
  2. Azure 리소스 그룹을 생성합니다.

    $ az group create -n $AZURE_RESOURCE_GROUP --location <CentralUS> 1
    1
    위치를 지정합니다.
  3. AZURE_STORAGE_ACCOUNT_ID 변수를 설정합니다.

    $ AZURE_STORAGE_ACCOUNT_ID=velerobackups
  4. Azure 스토리지 계정을 생성합니다.

    $ az storage account create \
      --name $AZURE_STORAGE_ACCOUNT_ID \
      --resource-group $AZURE_RESOURCE_GROUP \
      --sku Standard_GRS \
      --encryption-services blob \
      --https-only true \
      --kind BlobStorage \
      --access-tier Hot
  5. BLOB_CONTAINER 변수를 설정합니다.

    $ BLOB_CONTAINER=velero
  6. Azure Blob 스토리지 컨테이너를 생성합니다.

    $ az storage container create \
      -n $BLOB_CONTAINER \
      --public-access off \
      --account-name $AZURE_STORAGE_ACCOUNT_ID
  7. 스토리지 계정 액세스 키를 가져옵니다.

    $ AZURE_STORAGE_ACCOUNT_ACCESS_KEY=`az storage account keys list \
      --account-name $AZURE_STORAGE_ACCOUNT_ID \
      --query "[?keyName == 'key1'].value" -o tsv`
  8. credentials-velero 파일을 생성합니다.

    $ cat << EOF > ./credentials-velero
    AZURE_SUBSCRIPTION_ID=${AZURE_SUBSCRIPTION_ID}
    AZURE_TENANT_ID=${AZURE_TENANT_ID}
    AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
    AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}
    AZURE_RESOURCE_GROUP=${AZURE_RESOURCE_GROUP}
    AZURE_STORAGE_ACCOUNT_ACCESS_KEY=${AZURE_STORAGE_ACCOUNT_ACCESS_KEY} 1
    AZURE_CLOUD_NAME=AzurePublicCloud
    EOF
    1
    필수 항목입니다. credentials-velero 파일에 서비스 주체 자격 증명만 포함된 경우 내부 이미지를 백업할 수 없습니다.

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

4.2.3.3. 백업 및 스냅샷 위치에 대한 보안 생성

동일한 인증 정보를 사용하는 경우 백업 및 스냅샷 위치에 대한 Secret 오브젝트를 생성합니다.

보안의 기본 이름은 cloud -credentials-azure 입니다.

사전 요구 사항

  • 오브젝트 스토리지 및 클라우드 스토리지에서 동일한 인증 정보를 사용해야 합니다.
  • Velero의 오브젝트 스토리지를 구성해야 합니다.
  • 적절한 형식으로 오브젝트 스토리지에 대한 credentials-velero 파일을 생성해야 합니다.

    참고

    DataProtectionApplication CR(사용자 정의 리소스)에는 보안을 설치해야 합니다. spec.backupLocations.credential.name 값이 지정되지 않은 경우 기본 이름이 사용됩니다.

    백업 위치 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero 파일을 사용하여 기본 이름으로 보안을 생성해야 합니다.

프로세스

  • 기본 이름으로 보안을 생성합니다.

    $ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero

Secret 은 Data Protection 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조됩니다.

4.2.3.3.1. 다른 백업 및 스냅샷 위치 인증 정보에 대한 보안 구성

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

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

프로세스

  1. 클라우드 공급자에 대한 적절한 형식으로 스냅샷 위치에 대한 credentials-velero 파일을 만듭니다.
  2. 기본 이름을 사용하여 스냅샷 위치에 대한 보안을 생성합니다.

    $ 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. 다음 와 같이 사용자 지정 이름으로 보안을 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"
            name: default
            provider: azure
    1
    사용자 이름이 있는 백업 위치 시크릿.

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

Velero 리소스 할당을 구성하고 자체 서명된 CA 인증서를 활성화할 수 있습니다.

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

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

프로세스

  • 다음 예와 같이 DataProtectionApplication CR 매니페스트의 spec.configuration.velero.podConfig.ResourceAllocations 블록의 값을 편집합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    ...
      configuration:
        velero:
          podConfig:
            resourceAllocations:
              limits:
                cpu: "1" 1
                memory: 512Mi 2
              requests:
                cpu: 500m 3
                memory: 256Mi 4
    1
    밀리코어icpus 또는 CPU 단위로 값을 지정합니다. 기본값은 500m 또는 하나의 CPU 단위입니다.
    2
    기본값은 512Mi 입니다.
    3
    기본값은 500m 또는 하나의 CPU 단위입니다.
    4
    기본값은 256Mi 입니다.
4.2.3.4.2. 자체 서명된 CA 인증서 활성화

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

프로세스

  • DataProtectionApplication CR 매니페스트의 spec.backupLocations.veleLocation.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
    Base46-encoded CA 인증서 문자열을 지정합니다.
    2
    SSL/TLS 보안을 비활성화하려면 false 여야 합니다.

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

DataProtectionApplication API의 인스턴스를 생성하여 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

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

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

      참고

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

프로세스

  1. Operator 설치된 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
        restic:
          enable: true 2
      backupLocations:
        - velero:
            config:
              resourceGroup: <azure_resource_group> 3
              storageAccount: <azure_storage_account_id> 4
              subscriptionId: <azure_subscription_id> 5
              storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY
            credential:
              key: cloud
              name: cloud-credentials-azure  6
            provider: azure
            default: true
            objectStorage:
              bucket: <bucket_name> 7
              prefix: <prefix> 8
      snapshotLocations: 9
        - velero:
            config:
              resourceGroup: <azure_resource_group>
              subscriptionId: <azure_subscription_id>
              incremental: "true"
            name: default
            provider: azure
    1
    OpenShift Container Platform 클러스터에서 네임스페이스를 백업하고 복원하려면 openshift 플러그인이 필요합니다.
    2
    Restic 설치를 비활성화하려면 false 로 설정합니다. Restic은 데몬 세트를 배포하므로 각 작업자 노드에 Restic pod가 실행됩니다. Backup CR에 spec.defaultVolumesToRestic: true 를 추가하여 백업에 대한 Restic을 구성합니다.
    3
    Azure 리소스 그룹을 지정합니다.
    4
    Azure 스토리지 계정 ID를 지정합니다.
    5
    Azure 서브스크립션 ID를 지정합니다.
    6
    이 값을 지정하지 않으면 기본 이름 cloud-credentials-azure 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 정의 이름이 사용됩니다.
    7
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    8
    여러 용도로 버킷이 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
    9
    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/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k   1/1     Running   0          95s
    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
    service/oadp-velero-sample-1-aws-registry-svc              ClusterIP   172.30.130.230   <none>        5000/TCP   95s
    
    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/oadp-velero-sample-1-aws-registry   1/1     1            1           96s
    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/oadp-velero-sample-1-aws-registry-5d6968cbdd   1         1         1       96s
    replicaset.apps/velero-588db7f655                              1         1         1       96s

4.2.3.5.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
        featureFlags:
        - EnableCSI 2
    1
    csi 기본 플러그인을 추가합니다.
    2
    EnableCSI 기능 플래그를 추가합니다.

4.2.4. Google Cloud Platform으로 데이터 보호용 OpenShift API 설치 및 구성

OADP Operator를 설치하고 Velero용 GCP를 구성한 다음 데이터 보호 애플리케이션을 설치하여 GCP(Google Cloud Platform)를 사용하여 OADP(데이터 보호)용 OpenShift API를 설치합니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

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

4.2.4.1. OADP Operator 설치

OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.8에 OADP(Data Protection) Operator의 OpenShift API를 설치합니다.

OADP Operator는 Velero 1.7 을 설치합니다.

사전 요구 사항

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

절차

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

4.2.4.2. GCP(Google Cloud Platform) 구성

GCP(Google Cloud Platform) 스토리지 버킷을 MTC(Migration Toolkit for Containers)의 복제 리포지토리로 구성할 수 있습니다.

사전 요구 사항

  • 소스 및 대상 클러스터에서 GCP 스토리지 버킷에 액세스할 수 있어야 합니다.
  • gsutil이 설치되어 있어야 합니다.
  • 스냅샷 복사 방법을 사용하는 경우:

    • 소스 및 대상 클러스터는 동일한 지역에 있어야 합니다.
    • 소스 및 대상 클러스터는 동일한 스토리지 클래스를 보유해야 합니다.
    • 스토리지 클래스는 스냅샷과 호환 가능해야 합니다.

절차

  1. gsutil에 로그인합니다.

    $ gsutil init

    출력 예

    Welcome! This command will take you through the configuration of gcloud.
    
    Your current configuration has been set to: [default]
    
    To continue, you must login. Would you like to login (Y/n)?

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

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

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

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

    $ gcloud iam service-accounts create velero \
        --display-name "Velero Storage"
  6. SERVICE_ACCOUNT_EMAIL 변수를 생성합니다.

    $ SERVICE_ACCOUNT_EMAIL=`gcloud iam service-accounts list \
      --filter="displayName:Velero Storage" \
      --format 'value(email)'`
  7. ROLE_PERMISSIONS 변수를 생성합니다.

    $ 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
    )
  8. velero.server 사용자 정의 역할을 생성합니다.

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

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

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

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

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

4.2.4.3. 백업 및 스냅샷 위치에 대한 보안 생성

동일한 인증 정보를 사용하는 경우 백업 및 스냅샷 위치에 대한 Secret 오브젝트를 생성합니다.

Secret 의 기본 이름은 cloud-credentials-gcp 입니다.

사전 요구 사항

  • 오브젝트 스토리지 및 클라우드 스토리지에서 동일한 인증 정보를 사용해야 합니다.
  • Velero의 오브젝트 스토리지를 구성해야 합니다.
  • 적절한 형식으로 오브젝트 스토리지에 대한 credentials-velero 파일을 생성해야 합니다.

절차

  • 기본 이름으로 보안을 생성합니다.

    $ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero

Secret 은 Data Protection 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조됩니다.

4.2.4.3.1. 다른 백업 및 스냅샷 위치 인증 정보에 대한 보안 구성

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

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

절차

  1. 클라우드 공급자에 대한 적절한 형식으로 스냅샷 위치에 대한 credentials-velero 파일을 만듭니다.
  2. 기본 이름을 사용하여 스냅샷 위치에 대한 보안을 생성합니다.

    $ 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. 다음 와 같이 사용자 지정 이름으로 보안을 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.2.4.4. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 구성하고 자체 서명된 CA 인증서를 활성화할 수 있습니다.

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

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

절차

  • 다음 예와 같이 DataProtectionApplication CR 매니페스트의 spec.configuration.velero.podConfig.ResourceAllocations 블록의 값을 편집합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    ...
      configuration:
        velero:
          podConfig:
            resourceAllocations:
              limits:
                cpu: "1" 1
                memory: 512Mi 2
              requests:
                cpu: 500m 3
                memory: 256Mi 4
    1
    밀리코어icpus 또는 CPU 단위로 값을 지정합니다. 기본값은 500m 또는 하나의 CPU 단위입니다.
    2
    기본값은 512Mi 입니다.
    3
    기본값은 500m 또는 하나의 CPU 단위입니다.
    4
    기본값은 256Mi 입니다.
4.2.4.4.2. 자체 서명된 CA 인증서 활성화

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

절차

  • DataProtectionApplication CR 매니페스트의 spec.backupLocations.veleLocation.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
    Base46-encoded CA 인증서 문자열을 지정합니다.
    2
    SSL/TLS 보안을 비활성화하려면 false 여야 합니다.

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

DataProtectionApplication API의 인스턴스를 생성하여 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

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

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

      참고

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

절차

  1. Operator 설치된 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
        restic:
          enable: true 2
      backupLocations:
        - velero:
            provider: gcp
            default: true
            credential:
              key: cloud
              name: cloud-credentials-gcp 3
            objectStorage:
              bucket: <bucket_name> 4
              prefix: <prefix> 5
      snapshotLocations: 6
        - velero:
            provider: gcp
            default: true
            config:
              project: <project>
              snapshotLocation: us-west1 7
    1
    OpenShift Container Platform 클러스터에서 네임스페이스를 백업하고 복원하려면 openshift 플러그인이 필요합니다.
    2
    Restic 설치를 비활성화하려면 false 로 설정합니다. Restic은 데몬 세트를 배포하므로 각 작업자 노드에 Restic pod가 실행됩니다. Backup CR에 spec.defaultVolumesToRestic: true 를 추가하여 백업에 대한 Restic을 구성합니다.
    3
    이 값을 지정하지 않으면 기본 이름 cloud-credentials-gcp 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 정의 이름이 사용됩니다.
    4
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    5
    여러 용도로 버킷이 사용되는 경우 Velero 백업의 접두사(예: velero )를 지정합니다.
    6
    PV를 백업하기 위해 CSI 스냅샷 또는 Restic을 사용하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
    7
    스냅샷 위치는 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/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k   1/1     Running   0          95s
    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
    service/oadp-velero-sample-1-aws-registry-svc              ClusterIP   172.30.130.230   <none>        5000/TCP   95s
    
    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/oadp-velero-sample-1-aws-registry   1/1     1            1           96s
    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/oadp-velero-sample-1-aws-registry-5d6968cbdd   1         1         1       96s
    replicaset.apps/velero-588db7f655                              1         1         1       96s

4.2.4.5.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
        featureFlags:
        - EnableCSI 2
    1
    csi 기본 플러그인을 추가합니다.
    2
    EnableCSI 기능 플래그를 추가합니다.

4.2.5. Multicloud Object Gateway로 데이터 보호용 OpenShift API 설치 및 구성

OADP Operator를 설치하고 Secret 오브젝트를 생성한 다음 데이터 보호 애플리케이션을 설치하여 MCG(Multicloud Object Gateway)를 사용하여 OADP(Data Protection)용 OpenShift API를 설치합니다.

MCG는 OpenShift Container Storage (OCS)의 구성 요소입니다. MCG를 DataProtectionApplication CR(사용자 정의 리소스)에서 백업 위치로 구성합니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

클라우드 공급자에 기본 스냅샷 API가 있는 경우 스냅샷 위치를 구성합니다. 클라우드 공급자가 스냅샷을 지원하지 않거나 스토리지가 NFS인 경우 Restic을 사용하여 백업을 생성할 수 있습니다.

Restic 또는 CSI(Container Storage Interface) 스냅샷에 대한 DataProtectionApplication CR에서 스냅샷 위치를 지정할 필요가 없습니다.

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

4.2.5.1. OADP Operator 설치

OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.8에 OADP(Data Protection) Operator의 OpenShift API를 설치합니다.

OADP Operator는 Velero 1.7 을 설치합니다.

사전 요구 사항

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

절차

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

4.2.5.2. MCG(Multi-Cloud Object Gateway) 구성

OpenShift Container Storage Operator를 설치하고 MCG(Multi-Cloud Object Gateway) 스토리지 버킷을 MTC(Migration Toolkit for Containers)의 복제 리포지토리로 구성할 수 있습니다.

4.2.5.2.1. OpenShift Container Storage Operator 설치

OperatorHub에서 OpenShift Container Storage Operator를 설치할 수 있습니다.

절차

  1. OpenShift Container Platform 웹 콘솔에서 Operator OperatorHub를 클릭합니다.
  2. 키워드로 필터링(이 경우 OCS)을 사용하여 OpenShift Container Storage Operator를 찾습니다.
  3. OpenShift Container Storage Operator를 선택하고 설치를 클릭합니다.
  4. 업데이트 채널, 설치 모드승인 전략을 선택합니다.
  5. 설치를 클릭합니다.

    설치된 운영자 페이지에서 OpenShift Container Storage Operatoropenshift-storage 프로젝트에 Succeeded 상태로 나타납니다.

4.2.5.2.2. Multi-Cloud Object Gateway 스토리지 버킷 작성

MCG(Multi-Cloud Object Gateway) 스토리지 버킷의 사용자 정의 리소스(CR)를 생성할 수 있습니다.

절차

  1. OpenShift Container Platform 클러스터에 로그인합니다.

    $ oc login -u <username>
  2. 다음과 같은 내용과 함께 NooBaa CR 구성 파일, noobaa.yml을 생성합니다.

    apiVersion: noobaa.io/v1alpha1
    kind: NooBaa
    metadata:
      name: <noobaa>
      namespace: openshift-storage
    spec:
     dbResources:
       requests:
         cpu: 0.5 1
         memory: 1Gi
     coreResources:
       requests:
         cpu: 0.5 2
         memory: 1Gi
    1 2
    매우 작은 클러스터의 경우 값을 0.1로 변경할 수 있습니다.
  3. NooBaa 오브젝트를 생성합니다.

    $ oc create -f noobaa.yml
  4. 다음과 같은 내용과 함께 BackingStore CR 구성 파일 bs.yml을 생성합니다.

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: <mcg_backing_store>
      namespace: openshift-storage
    spec:
      pvPool:
        numVolumes: 3 1
        resources:
          requests:
            storage: <volume_size> 2
        storageClass: <storage_class> 3
      type: pv-pool
    1
    영구 볼륨 풀에서 볼륨 수를 지정합니다.
    2
    볼륨의 크기를 지정합니다. (예: 50Gi)
    3
    스토리지 클래스를 지정합니다. (예: gp2)
  5. BackingStore 오브젝트를 생성합니다.

    $ oc create -f bs.yml
  6. 다음과 같은 내용으로 BucketClass CR 구성 파일, bc.yml을 생성합니다.

    apiVersion: noobaa.io/v1alpha1
    kind: BucketClass
    metadata:
      labels:
        app: noobaa
      name: <mcg_bucket_class>
      namespace: openshift-storage
    spec:
      placementPolicy:
        tiers:
        - backingStores:
          - <mcg_backing_store>
          placement: Spread
  7. BucketClass 오브젝트를 생성합니다.

    $ oc create -f bc.yml
  8. 다음과 같은 내용과 함께 ObjectBucketClaim CR 구성 파일, obc.yml을 생성합니다.

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <bucket>
      namespace: openshift-storage
    spec:
      bucketName: <bucket> 1
      storageClassName: <storage_class>
      additionalConfig:
        bucketclass: <mcg_bucket_class>
    1
    MTC 웹 콘솔에 복제 리포지토리를 추가하기 위한 버킷 이름을 기록합니다.
  9. ObjectBucketClaim 오브젝트를 생성합니다.

    $ oc create -f obc.yml
  10. 리소스 생성 프로세스를 보고 ObjectBucketClaim 상태가 Bound인지 확인합니다.

    $ watch -n 30 'oc get -n openshift-storage objectbucketclaim migstorage -o yaml'

    이 프로세스는 5-10분 정도 걸릴 수 있습니다.

  11. MTC 웹 콘솔에 복제 리포지토리를 추가할 때 필요한 다음 값을 확보하고 기록합니다.

    • S3 끝점:

      $ oc get route -n openshift-storage s3
    • S3 공급자 액세스 키:

      $ oc get secret -n openshift-storage migstorage \
        -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decode
    • S3 공급자 보안 액세스 키:

      $ oc get secret -n openshift-storage migstorage \
        -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode

4.2.5.3. 백업 및 스냅샷 위치에 대한 보안 생성

동일한 인증 정보를 사용하는 경우 백업 및 스냅샷 위치에 대한 Secret 오브젝트를 생성합니다.

보안의 기본 이름은 cloud-credentials 입니다.

사전 요구 사항

  • 오브젝트 스토리지 및 클라우드 스토리지에서 동일한 인증 정보를 사용해야 합니다.
  • Velero의 오브젝트 스토리지를 구성해야 합니다.
  • 적절한 형식으로 오브젝트 스토리지에 대한 credentials-velero 파일을 생성해야 합니다.

절차

  • 기본 이름으로 보안을 생성합니다.

    $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero

Secret 은 Data Protection 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조됩니다.

4.2.5.3.1. 다른 백업 및 스냅샷 위치 인증 정보에 대한 보안 구성

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

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

절차

  1. 클라우드 공급자에 대한 적절한 형식으로 스냅샷 위치에 대한 credentials-velero 파일을 만듭니다.
  2. 기본 이름을 사용하여 스냅샷 위치에 대한 보안을 생성합니다.

    $ 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. 다음 와 같이 사용자 지정 이름으로 보안을 DataProtectionApplication CR에 추가합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - aws
            - openshift
        restic:
          enable: true
      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.2.5.4. 데이터 보호 애플리케이션 구성

Velero 리소스 할당을 구성하고 자체 서명된 CA 인증서를 활성화할 수 있습니다.

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

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

절차

  • 다음 예와 같이 DataProtectionApplication CR 매니페스트의 spec.configuration.velero.podConfig.ResourceAllocations 블록의 값을 편집합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    ...
      configuration:
        velero:
          podConfig:
            resourceAllocations:
              limits:
                cpu: "1" 1
                memory: 512Mi 2
              requests:
                cpu: 500m 3
                memory: 256Mi 4
    1
    밀리코어icpus 또는 CPU 단위로 값을 지정합니다. 기본값은 500m 또는 하나의 CPU 단위입니다.
    2
    기본값은 512Mi 입니다.
    3
    기본값은 500m 또는 하나의 CPU 단위입니다.
    4
    기본값은 256Mi 입니다.
4.2.5.4.2. 자체 서명된 CA 인증서 활성화

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

절차

  • DataProtectionApplication CR 매니페스트의 spec.backupLocations.veleLocation.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
    Base46-encoded CA 인증서 문자열을 지정합니다.
    2
    SSL/TLS 보안을 비활성화하려면 false 여야 합니다.

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

DataProtectionApplication API의 인스턴스를 생성하여 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

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

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

      참고

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

절차

  1. Operator 설치된 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
        restic:
          enable: true 2
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: minio
              s3Url: <url> 3
              insecureSkipTLSVerify: "true"
              s3ForcePathStyle: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name: cloud-credentials 4
            objectStorage:
              bucket: <bucket_name> 5
              prefix: <prefix> 6
    1
    OpenShift Container Platform 클러스터에서 네임스페이스를 백업하고 복원하려면 openshift 플러그인이 필요합니다.
    2
    Restic 설치를 비활성화하려면 false 로 설정합니다. Restic은 데몬 세트를 배포하므로 각 작업자 노드에 Restic pod가 실행됩니다. Backup CR에 spec.defaultVolumesToRestic: true 를 추가하여 백업에 대한 Restic을 구성합니다.
    3
    S3 끝점의 URL을 지정합니다.
    4
    이 값을 지정하지 않으면 기본 이름 cloud-credentials 가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 정의 이름이 사용됩니다.
    5
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    6
    여러 용도로 버킷이 사용되는 경우 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/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k   1/1     Running   0          95s
    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
    service/oadp-velero-sample-1-aws-registry-svc              ClusterIP   172.30.130.230   <none>        5000/TCP   95s
    
    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/oadp-velero-sample-1-aws-registry   1/1     1            1           96s
    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/oadp-velero-sample-1-aws-registry-5d6968cbdd   1         1         1       96s
    replicaset.apps/velero-588db7f655                              1         1         1       96s

4.2.5.5.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
        featureFlags:
        - EnableCSI 2
    1
    csi 기본 플러그인을 추가합니다.
    2
    EnableCSI 기능 플래그를 추가합니다.

4.2.6. OpenShift Container Storage를 사용하여 데이터 보호용 OpenShift API 설치 및 구성

OADP Operator를 설치하고 백업 위치와 스냅샷 위치를 구성하여 OCS(OpenShift Container Storage)를 사용하여 OADP(Data Protection)용 OpenShift API를 설치합니다. 그런 다음 Data Protection 애플리케이션을 설치합니다.

Multicloud Object Gateway 또는 모든 S3 호환 오브젝트 스토리지를 DataProtectionApplication CR(사용자 정의 리소스)의 백업 위치로 구성할 수 있습니다.

중요

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

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

클라우드 공급자에 기본 스냅샷 API가 있는 경우 DataProtectionApplication CR의 스냅샷 위치로 클라우드 스토리지를 구성할 수 있습니다. Restic 또는 CSI(Container Storage Interface) 스냅샷의 스냅샷 위치를 지정할 필요가 없습니다.

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

4.2.6.1. OADP Operator 설치

OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.8에 OADP(Data Protection) Operator의 OpenShift API를 설치합니다.

OADP Operator는 Velero 1.7 을 설치합니다.

사전 요구 사항

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

절차

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

OADP Operator를 설치한 후 클라우드 공급자가 네이티브 스냅샷 API를 지원하는 경우 오브젝트 스토리지를 백업 위치 및 클라우드 스토리지로 구성합니다.

클라우드 공급자가 스냅샷을 지원하지 않거나 스토리지가 NFS인 경우 Restic. Restic에는 스냅샷 위치가 필요하지 않습니다.

4.2.6.2. 백업 및 스냅샷 위치에 대한 보안 생성

동일한 인증 정보를 사용하는 경우 백업 및 스냅샷 위치에 대한 Secret 오브젝트를 생성합니다.

백업 스토리지 공급자의 기본 플러그인을 지정하지 않는 한 Secret 의 기본 이름은 cloud-credentials 입니다.

사전 요구 사항

  • 오브젝트 스토리지 및 클라우드 스토리지에서 동일한 인증 정보를 사용해야 합니다.
  • Velero의 오브젝트 스토리지를 구성해야 합니다.
  • 적절한 형식으로 오브젝트 스토리지에 대한 credentials-velero 파일을 생성해야 합니다.

절차

  • 기본 이름으로 보안을 생성합니다.

    $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero

Secret 은 Data Protection 애플리케이션을 설치할 때 DataProtectionApplication CR의 spec.backupLocations.credential 블록에서 참조됩니다.

4.2.6.2.1. 다른 백업 및 스냅샷 위치 인증 정보에 대한 보안 구성

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

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

절차

  1. 클라우드 공급자에 대한 적절한 형식으로 스냅샷 위치에 대한 credentials-velero 파일을 만듭니다.
  2. 기본 이름을 사용하여 스냅샷 위치에 대한 보안을 생성합니다.

    $ 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. 다음 와 같이 사용자 지정 이름으로 보안을 DataProtectionApplication CR에 추가합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - csi
            - openshift
        featureFlags:
        - EnableCSI
        restic:
          enable: true
      backupLocations:
        - velero:
            provider: gcp
            default: true
            credential:
              key: cloud
              name: <custom_secret> 1
            objectStorage:
              bucket: <bucket_name>
              prefix: <prefix>
    1
    사용자 이름이 있는 백업 위치 시크릿.

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

Velero 리소스 할당을 구성하고 자체 서명된 CA 인증서를 활성화할 수 있습니다.

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

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

절차

  • 다음 예와 같이 DataProtectionApplication CR 매니페스트의 spec.configuration.velero.podConfig.ResourceAllocations 블록의 값을 편집합니다.

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    ...
      configuration:
        velero:
          podConfig:
            resourceAllocations:
              limits:
                cpu: "1" 1
                memory: 512Mi 2
              requests:
                cpu: 500m 3
                memory: 256Mi 4
    1
    밀리코어icpus 또는 CPU 단위로 값을 지정합니다. 기본값은 500m 또는 하나의 CPU 단위입니다.
    2
    기본값은 512Mi 입니다.
    3
    기본값은 500m 또는 하나의 CPU 단위입니다.
    4
    기본값은 256Mi 입니다.
4.2.6.3.2. 자체 서명된 CA 인증서 활성화

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

사전 요구 사항

  • OADP(Data Protection) Operator를 위한 OpenShift API가 설치되어 있어야 합니다.

절차

  • DataProtectionApplication CR 매니페스트의 spec.backupLocations.veleLocation.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
    Base46-encoded CA 인증서 문자열을 지정합니다.
    2
    SSL/TLS 보안을 비활성화하려면 false 여야 합니다.

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

DataProtectionApplication API의 인스턴스를 생성하여 DPA(Data Protection Application)를 설치합니다.

사전 요구 사항

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

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

      참고

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

절차

  1. Operator 설치된 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 <.>
            - csi <.>
            - openshift 1
        restic:
          enable: true 2
      backupLocations:
        - velero:
            provider: gcp 3
            default: true
            credential:
              key: cloud
              name: <default_secret> 4
            objectStorage:
              bucket: <bucket_name> 5
              prefix: <prefix> 6
    1
    필요한 경우 백업 공급자의 기본 플러그인을 지정합니다(예: gcp ).
    2
    CSI 스냅샷을 사용하여 PV를 백업하는 경우 csi 기본 플러그인을 지정합니다. csi 플러그인은 Velero CSI 베타 스냅샷 API 를 사용합니다. 스냅샷 위치를 구성할 필요가 없습니다.
    3
    OpenShift Container Platform 클러스터에서 네임스페이스를 백업하고 복원하려면 openshift 플러그인이 필요합니다.
    4
    Restic 설치를 비활성화하려면 false 로 설정합니다. Restic은 데몬 세트를 배포하므로 각 작업자 노드에 Restic pod가 실행됩니다. Backup CR에 spec.defaultVolumesToRestic: true 를 추가하여 백업에 대한 Restic을 구성합니다.
    5
    백업 공급자를 지정합니다.
    6
    백업 공급자에 기본 플러그인을 사용하는 경우 Secret 에 대해 올바른 기본 이름을 지정해야 합니다(예: cloud-credentials-gcp ). 사용자 지정 이름을 지정하면 백업 위치에 사용자 정의 이름이 사용됩니다. Secret 이름을 지정하지 않으면 기본 이름이 사용됩니다.
    버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
    여러 용도로 버킷이 사용되는 경우 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/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k   1/1     Running   0          95s
    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
    service/oadp-velero-sample-1-aws-registry-svc              ClusterIP   172.30.130.230   <none>        5000/TCP   95s
    
    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/oadp-velero-sample-1-aws-registry   1/1     1            1           96s
    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/oadp-velero-sample-1-aws-registry-5d6968cbdd   1         1         1       96s
    replicaset.apps/velero-588db7f655                              1         1         1       96s

4.2.6.4.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
        featureFlags:
        - EnableCSI 2
    1
    csi 기본 플러그인을 추가합니다.
    2
    EnableCSI 기능 플래그를 추가합니다.

4.2.7. 데이터 보호를 위한 OpenShift API 설치 제거

OADP Operator를 삭제하여 OADP(Data Protection)용 OpenShift API를 설치 제거합니다. 자세한 내용은 클러스터에서 Operator 삭제를 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.