4.3. OADP 설치 및 구성
4.3.1. OADP 설치 정보
클러스터 관리자는 OADP Operator를 설치하여 OADP(Data Protection)용 OpenShift API를 설치합니다. OADP Operator는 Velero 1.7 을 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Kubernetes 리소스 및 내부 이미지를 백업하려면 다음 스토리지 유형 중 하나와 같은 오브젝트 스토리지를 백업 위치로 보유해야 합니다.
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- Multicloud Object Gateway
- S3 호환 오브젝트 스토리지(예: Noobaa 또는 Minio)
개체 스토리지의 버킷 생성을 자동화하는 CloudStorage
API는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
스냅샷 또는 Restic을 사용하여 PV(영구 볼륨)를 백업할 수 있습니다.
스냅샷을 사용하여 PV를 백업하려면 다음 클라우드 공급자 중 하나와 같은 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원하는 클라우드 공급자가 있어야 합니다.
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- CSI 스냅샷 지원 클라우드 공급자(예: OpenShift Data Foundation)
클라우드 공급자가 스냅샷을 지원하지 않거나 스토리지가 NFS인 경우 개체 스토리지에서 Restic 백업을 사용하여 애플리케이션을 백업할 수 있습니다.
기본 보안을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.
4.3.1.1. OpenShift Data Foundation에서 재해 복구를 위해 NooBaa 구성
OpenShift Data Foundation에서 NooBaa 버킷 backupStorageLocation
에 클러스터 스토리지를 사용하는 경우 NooBaa를 외부 오브젝트 저장소로 구성합니다.
NooBaa를 외부 오브젝트 저장소로 구성하지 못하면 백업을 사용할 수 없을 수 있습니다.
절차
- 하이브리드 또는 Multicloud에 대한 스토리지 리소스 추가 에 설명된 대로 NooBaa를 외부 오브젝트 저장소로 구성합니다.
추가 리소스
- Velero 문서 의 백업 위치 및 스냅샷 위치 개요.
/// 모듈은 다음 assembly에 포함되어 있습니다.
4.3.1.2. OADP 업데이트 채널 정보
OADP Operator를 설치할 때 업데이트 채널을 선택합니다. 이 채널은 OADP Operator 및 수신하는 Velero에 대한 업그레이드를 결정합니다. 언제든지 채널을 변경할 수 있습니다.
다음 세 가지 업데이트 채널이 있습니다.
-
stable 채널에는 OADP ClusterServiceVersion의 최신 마이너 업데이트(y-stream 업데이트) 및 패치(z-stream 업데이트)가 포함되어 있습니다. 각 새 릴리스가 게시되면 OADP Operator의 사용 가능한
ClusterServiceVersion
에 사용 가능한 최신 마이너 패치가 추가됩니다. -
stable-1.0 채널에는 최신 OADP 1.0
ClusterServiceVersion
인oadp.v1.0.z
가 포함되어 있습니다. -
stable-1.1 채널에는 최신 OADP 1.1
ClusterServiceVersion
인oadp.v1.1.z
가 포함되어 있습니다.
어떤 업데이트 채널을 사용할 수 있습니까?
- 안정적인 최신 OADP 버전을 설치하고 마이너 업데이트와 패치를 모두 받으려면 stable 업데이트 채널을 선택합니다. 이 채널을 선택하면 x.y.z 의 모든 y-스트림 및 모든 z-stream 업데이트가 제공됩니다.
- stable-1.y 업데이트 채널을 선택하여 OADP 1.y 를 설치하고 계속 패치를 수신합니다. 이 채널을 선택하면 버전 1에 대한 모든 z-stream 패치가 제공됩니다.y.z.
언제 업데이트 채널을 전환해야합니까?
- OADP 1.y 가 설치되어 있고 해당 y-stream 전용 패치를 받으려면 stable 업데이트 채널에서 stable-1.y 업데이트 채널로 전환해야 합니다. 그런 다음 버전 1.y. z에 대한 모든z -stream 패치가 제공됩니다.
- OADP 1.0이 설치되어 있고 OADP 1.1로 업그레이드하려는 경우 패치는 stable-1.0 업데이트 채널에서 stable-1.1 업데이트 채널로 전환해야 합니다. 그런 다음 버전 1.1.z 에 대한 모든 z-stream 패치가 제공됩니다.
- OADP 1. y 가 0보다 크게 설치되어 있고 OADP 1.0으로 전환하려는 경우 OADP Operator를 제거한 다음 stable-1.0 업데이트 채널을 사용하여 다시 설치해야 합니다. 그러면 버전 1.0.z 에 대한 모든 z-stream 패치가 제공됩니다.
업데이트 채널을 전환하여 OADP 1.y 에서 OADP 1.0으로 전환할 수 없습니다. Operator를 제거한 다음 다시 설치해야 합니다.
추가 리소스
4.3.2. Amazon Web Services를 통한 데이터 보호를 위한 OpenShift API 설치 및 구성
OADP Operator를 설치하여 AWS(Amazon Web Services)에서 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.7 을 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Velero에 대해 AWS를 구성하고 기본 시크릿
을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.
제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.3.2.1. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.10에 OADP(OpenShift API for Data Protection) Operator를 설치합니다.
OADP Operator는 Velero 1.7 을 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
openshift-adp
프로젝트에서 Operator를 설치하려면 설치를 클릭합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
4.3.2.2. Amazon Web Services 구성
OADP(OpenShift API for Data Protection)에 대해 AWS(Amazon Web Services)를 구성합니다.
사전 요구 사항
- AWS CLI 가 설치되어 있어야 합니다.
절차
BUCKET
변수를 설정합니다.$ BUCKET=<your_bucket>
REGION
변수를 설정합니다.$ REGION=<your_region>
AWS S3 버킷을 생성합니다.
$ aws s3api create-bucket \ --bucket $BUCKET \ --region $REGION \ --create-bucket-configuration LocationConstraint=$REGION 1
- 1
us-east-1
은LocationConstraint
를 지원하지 않습니다. 리전이us-east-1
인 경우--create-bucket-configuration LocationConstraint=$REGION
을 생략합니다.
IAM 사용자를 생성합니다.
$ aws iam create-user --user-name velero 1
- 1
- Velero를 사용하여 여러 S3 버킷이 있는 여러 클러스터를 백업하려면 각 클러스터에 대해 고유한 사용자 이름을 생성합니다.
velero-policy.json
파일을 생성합니다.$ cat > velero-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::${BUCKET}/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::${BUCKET}" ] } ] } EOF
정책을 연결하여
velero
사용자에게 필요한 최소 권한을 부여합니다.$ aws iam put-user-policy \ --user-name velero \ --policy-name velero \ --policy-document file://velero-policy.json
velero
사용자에 대한 액세스 키를 생성합니다.$ aws iam create-access-key --user-name velero
출력 예
{ "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, "AccessKeyId": <AWS_ACCESS_KEY_ID> } }
credentials-velero
파일을 만듭니다.$ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF
데이터 보호 애플리케이션을 설치하기 전에
credentials-velero
파일을 사용하여 AWS용Secret
오브젝트를 생성합니다.
4.3.2.3. 백업 및 스냅샷 위치 및 보안 정보
DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.
백업 위치
Multicloud Object Gateway, Noobaa 또는 Minio와 같은 S3 호환 개체 스토리지를 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.
Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿
을 생성합니다.
백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
DataProtectionApplication
CR에서 지정하는 백업 위치에 대한 사용자 정의시크릿
입니다. -
DataProtectionApplication
CR에서 참조되지 않는 스냅샷 위치에 대한 기본시크릿
입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여
기본 보안을 생성할 수 있습니다.
4.3.2.3.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.3.2.3.2. 다양한 인증 정보에 대한 프로필 생성
백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 credentials-velero
파일에 별도의 프로필을 생성합니다.
그런 다음 Secret
오브젝트를 생성하고 DataProtectionApplication
CR(사용자 정의 리소스)에서 프로필을 지정합니다.
절차
다음 예제와 같이 백업 및 스냅샷 위치에 대한 별도의 프로필을 사용하여
credentials-velero
파일을 만듭니다.[backupStorage] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> [volumeSnapshot] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
credentials-velero
파일을 사용하여Secret
오브젝트를 생성합니다.$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero 1
다음 예와 같이
DataProtectionApplication
CR에 프로필을 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket_name> prefix: <prefix> config: region: us-east-1 profile: "backupStorage" credential: key: cloud name: cloud-credentials snapshotLocations: - name: default velero: provider: aws config: region: us-west-2 profile: "volumeSnapshot"
4.3.2.4. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.3.2.4.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: limits: cpu: "1" memory: 512Mi requests: cpu: 500m memory: 256Mi
4.3.2.4.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 ...
4.3.2.5. 데이터 보호 애플리케이션 설치
Data ProtectionApplication API 인스턴스를 만들어 DPA(Data Protection Application)를
설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하는 경우 기본 이름
cloud-credentials
를 사용하여Secret
을 생성해야 합니다. 백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 백업 및 스냅샷 위치 자격 증명에 대한 별도의 프로필이 포함된 기본 이름
cloud-credentials
를 사용하여Secret
을 생성해야 합니다.참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본 보안이없으면
설치에 실패합니다.
절차
-
Operators
설치된 Operator 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
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 podConfig: nodeSelector: <node selector> 3 backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket_name> 4 prefix: <prefix> 5 config: region: <region> profile: "default" credential: key: cloud name: cloud-credentials 6 snapshotLocations: 7 - name: default velero: provider: aws config: region: <region> 8 profile: "default"
- 1
openshift
플러그인은 필수입니다.- 2
- Restic 설치를 비활성화하려면
false
로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, 각 작업자 노드에Restic
pod가 실행됩니다.Backup
CR에spec.defaultVolumesToRestic: true
를 추가하여 백업에 Restic을 구성합니다. - 3
- Restic podSpec에 제공할 노드 선택기를 지정합니다.
- 4
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 5
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예:
velero
)를 지정합니다. - 6
- 생성한
Secret
오브젝트의 이름을 지정합니다. 이 값을 지정하지 않으면 기본 이름cloud-credentials
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 7
- PV를 백업하기 위해 CSI 스냅샷 또는 Restic을 사용하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
- 8
- 스냅샷 위치는 PV와 동일한 리전에 있어야 합니다.
- 생성을 클릭합니다.
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.3.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
- 1
csi
기본 플러그인을 추가합니다.
4.3.3. Microsoft Azure를 사용하여 OpenShift API for Data Protection 설치 및 구성
OADP Operator를 설치하여 Microsoft Azure와 함께 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.7 을 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Velero에 대해 Azure를 구성하고 기본 시크릿
을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.
제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.3.3.1. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.10에 OADP(OpenShift API for Data Protection) Operator를 설치합니다.
OADP Operator는 Velero 1.7 을 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
openshift-adp
프로젝트에서 Operator를 설치하려면 설치를 클릭합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
4.3.3.2. Microsoft Azure 구성
OADP(OpenShift API for Data Protection)를 위해 Microsoft Azure를 구성합니다.
사전 요구 사항
- Azure CLI 가 설치되어 있어야 합니다.
절차
Azure에 로그인합니다.
$ az login
AZURE_RESOURCE_GROUP
변수를 설정합니다.$ AZURE_RESOURCE_GROUP=Velero_Backups
Azure 리소스 그룹을 생성합니다.
$ az group create -n $AZURE_RESOURCE_GROUP --location CentralUS 1
- 1
- 위치를 지정합니다.
AZURE_STORAGE_ACCOUNT_ID
변수를 설정합니다.$ AZURE_STORAGE_ACCOUNT_ID="velero$(uuidgen | cut -d '-' -f5 | tr '[A-Z]' '[a-z]')"
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
BLOB_CONTAINER
변수를 설정합니다.$ BLOB_CONTAINER=velero
Azure Blob 스토리지 컨테이너를 생성합니다.
$ az storage container create \ -n $BLOB_CONTAINER \ --public-access off \ --account-name $AZURE_STORAGE_ACCOUNT_ID
스토리지 계정 액세스 키를 가져옵니다.
$ AZURE_STORAGE_ACCOUNT_ACCESS_KEY=`az storage account keys list \ --account-name $AZURE_STORAGE_ACCOUNT_ID \ --query "[?keyName == 'key1'].value" -o tsv`
필요한 최소 권한이 있는 사용자 지정 역할을 생성합니다.
AZURE_ROLE=Velero az role definition create --role-definition '{ "Name": "'$AZURE_ROLE'", "Description": "Velero related permissions to perform backups, restores and deletions", "Actions": [ "Microsoft.Compute/disks/read", "Microsoft.Compute/disks/write", "Microsoft.Compute/disks/endGetAccess/action", "Microsoft.Compute/disks/beginGetAccess/action", "Microsoft.Compute/snapshots/read", "Microsoft.Compute/snapshots/write", "Microsoft.Compute/snapshots/delete", "Microsoft.Storage/storageAccounts/listkeys/action", "Microsoft.Storage/storageAccounts/regeneratekey/action" ], "AssignableScopes": ["/subscriptions/'$AZURE_SUBSCRIPTION_ID'"] }'
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.3.3.3. 백업 및 스냅샷 위치 및 보안 정보
DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.
백업 위치
Multicloud Object Gateway, Noobaa 또는 Minio와 같은 S3 호환 개체 스토리지를 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.
Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿
을 생성합니다.
백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
DataProtectionApplication
CR에서 지정하는 백업 위치에 대한 사용자 정의시크릿
입니다. -
DataProtectionApplication
CR에서 참조되지 않는 스냅샷 위치에 대한 기본시크릿
입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여
기본 보안을 생성할 수 있습니다.
4.3.3.3.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.3.3.3.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 정의 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
기본 이름
cloud-credentials-azure
인 스냅샷 위치시크릿
. 이Secret
은DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한
자격 증명-velero
파일을 만듭니다. 기본 이름으로 스냅샷 위치에 대한
Secret
을 생성합니다.$ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
-
오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한
credentials-velero
파일을 만듭니다. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예와 같이 사용자 지정 이름이 있는
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: config: resourceGroup: <azure_resource_group> storageAccount: <azure_storage_account_id> subscriptionId: <azure_subscription_id> storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY credential: key: cloud name: <custom_secret> 1 provider: azure default: true objectStorage: bucket: <bucket_name> prefix: <prefix> snapshotLocations: - velero: config: resourceGroup: <azure_resource_group> subscriptionId: <azure_subscription_id> incremental: "true" name: default provider: azure
- 1
- 사용자 정의 이름으로 백업 위치
시크릿
.
4.3.3.4. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.3.3.4.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: limits: cpu: "1" memory: 512Mi requests: cpu: 500m memory: 256Mi
- 1
- Velero podSpec에 제공할 노드 선택기 지정
4.3.3.4.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 ...
4.3.3.5. 데이터 보호 애플리케이션 설치
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
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본 보안이없으면
설치에 실패합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operator 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
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 podConfig: nodeSelector: <node selector> 3 backupLocations: - velero: config: resourceGroup: <azure_resource_group> 4 storageAccount: <azure_storage_account_id> 5 subscriptionId: <azure_subscription_id> 6 storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY credential: key: cloud name: cloud-credentials-azure 7 provider: azure default: true objectStorage: bucket: <bucket_name> 8 prefix: <prefix> 9 snapshotLocations: 10 - velero: config: resourceGroup: <azure_resource_group> subscriptionId: <azure_subscription_id> incremental: "true" name: default provider: azure
- 1
openshift
플러그인은 필수입니다.- 2
- Restic 설치를 비활성화하려면
false
로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, 각 작업자 노드에Restic
pod가 실행됩니다.Backup
CR에spec.defaultVolumesToRestic: true
를 추가하여 백업에 Restic을 구성합니다. - 3
- Restic podSpec에 제공할 노드 선택기를 지정합니다.
- 4
- Azure 리소스 그룹을 지정합니다.
- 5
- Azure 스토리지 계정 ID를 지정합니다.
- 6
- Azure 서브스크립션 ID를 지정합니다.
- 7
- 이 값을 지정하지 않으면 기본 이름
cloud-credentials-azure
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 8
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 9
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예:
velero
)를 지정합니다. - 10
- PV를 백업하기 위해 CSI 스냅샷 또는 Restic을 사용하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
- 생성을 클릭합니다.
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.3.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
- 1
csi
기본 플러그인을 추가합니다.
4.3.4. Google Cloud Platform으로 데이터 보호를 위한 OpenShift API 설치 및 구성
OADP Operator를 설치하여 GCP(Google Cloud Platform)에서 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.7 을 설치합니다.
OADP 1.0.4부터 모든 OADP 1.0.z 버전은 MTC Operator의 종속성으로만 사용할 수 있으며 독립 실행형 Operator로 사용할 수 없습니다.
Velero에 대한 GCP를 구성하고 기본 시크릿
을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.
제한된 네트워크 환경에 OADP Operator를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.3.4.1. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.10에 OADP(OpenShift API for Data Protection) Operator를 설치합니다.
OADP Operator는 Velero 1.7 을 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
openshift-adp
프로젝트에서 Operator를 설치하려면 설치를 클릭합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
4.3.4.2. GCP(Google Cloud Platform) 구성
OADP(OpenShift API for Data Protection)에 대해 GCP(Google Cloud Platform)를 구성합니다.
사전 요구 사항
-
gcloud
및gsutil
CLI 툴이 설치되어 있어야 합니다. 자세한 내용은 Google 클라우드 설명서를 참조하십시오.
절차
GCP에 로그인합니다.
$ gcloud auth login
BUCKET
변수를 설정합니다.$ BUCKET=<bucket> 1
- 1
- 버킷 이름을 지정합니다.
스토리지 버킷을 생성합니다.
$ gsutil mb gs://$BUCKET/
PROJECT_ID
변수를 활성 프로젝트로 설정합니다.$ PROJECT_ID=$(gcloud config get-value project)
서비스 계정을 생성합니다.
$ gcloud iam service-accounts create velero \ --display-name "Velero service account"
서비스 계정을 나열합니다.
$ gcloud iam service-accounts list
email
값과 일치하도록SERVICE_ACCOUNT_EMAIL
변수를 설정합니다.$ SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \ --filter="displayName:Velero service account" \ --format 'value(email)')
정책을 연결하여
velero
사용자에게 필요한 최소 권한을 부여합니다.$ ROLE_PERMISSIONS=( compute.disks.get compute.disks.create compute.disks.createSnapshot compute.snapshots.get compute.snapshots.create compute.snapshots.useReadOnly compute.snapshots.delete compute.zones.get )
velero.server
사용자 정의 역할을 생성합니다.$ gcloud iam roles create velero.server \ --project $PROJECT_ID \ --title "Velero Server" \ --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
프로젝트에 IAM 정책 바인딩을 추가합니다.
$ gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \ --role projects/$PROJECT_ID/roles/velero.server
IAM 서비스 계정을 업데이트합니다.
$ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
IAM 서비스 계정 키를 현재 디렉터리의
credentials-velero
파일에 저장합니다.$ gcloud iam service-accounts keys create credentials-velero \ --iam-account $SERVICE_ACCOUNT_EMAIL
credentials-velero
파일을 사용하여 데이터 보호 애플리케이션을 설치하기 전에 GCP용Secret
오브젝트를 생성합니다.
4.3.4.3. 백업 및 스냅샷 위치 및 보안 정보
DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.
백업 위치
Multicloud Object Gateway, Noobaa 또는 Minio와 같은 S3 호환 개체 스토리지를 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.
Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿
을 생성합니다.
백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
DataProtectionApplication
CR에서 지정하는 백업 위치에 대한 사용자 정의시크릿
입니다. -
DataProtectionApplication
CR에서 참조되지 않는 스냅샷 위치에 대한 기본시크릿
입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여
기본 보안을 생성할 수 있습니다.
4.3.4.3.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.3.4.3.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 정의 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
기본 이름
cloud-credentials-gcp
를 사용한 스냅샷 위치시크릿
. 이Secret
은DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한
자격 증명-velero
파일을 만듭니다. 기본 이름으로 스냅샷 위치에 대한
Secret
을 생성합니다.$ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
-
오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한
credentials-velero
파일을 만듭니다. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예와 같이 사용자 지정 이름이 있는
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: gcp default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix> snapshotLocations: - velero: provider: gcp default: true config: project: <project> snapshotLocation: us-west1
- 1
- 사용자 정의 이름으로 백업 위치
시크릿
.
4.3.4.4. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.3.4.4.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: limits: cpu: "1" memory: 512Mi requests: cpu: 500m memory: 256Mi
- 1
- Velero podSpec에 제공할 노드 선택기 지정
4.3.4.4.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 ...
4.3.4.5. 데이터 보호 애플리케이션 설치
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
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본 보안이없으면
설치에 실패합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operator 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
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 podConfig: nodeSelector: <node selector> 3 backupLocations: - velero: provider: gcp default: true credential: key: cloud name: cloud-credentials-gcp 4 objectStorage: bucket: <bucket_name> 5 prefix: <prefix> 6 snapshotLocations: 7 - velero: provider: gcp default: true config: project: <project> snapshotLocation: us-west1 8
- 1
openshift
플러그인은 필수입니다.- 2
- Restic 설치를 비활성화하려면
false
로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, 각 작업자 노드에Restic
pod가 실행됩니다.Backup
CR에spec.defaultVolumesToRestic: true
를 추가하여 백업에 Restic을 구성합니다. - 3
- Restic podSpec에 제공할 노드 선택기를 지정합니다.
- 4
- 이 값을 지정하지 않으면 기본 이름
cloud-credentials-gcp
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 5
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 6
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예:
velero
)를 지정합니다. - 7
- PV를 백업하기 위해 CSI 스냅샷 또는 Restic을 사용하는 경우 스냅샷 위치를 지정할 필요가 없습니다.
- 8
- 스냅샷 위치는 PV와 동일한 리전에 있어야 합니다.
- 생성을 클릭합니다.
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.3.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
- 1
csi
기본 플러그인을 추가합니다.
4.3.5. Multicloud Object Gateway를 사용하여 데이터 보호를 위한 OpenShift API 설치 및 구성
OADP Operator를 설치하여 MCG(Multicloud Object Gateway)를 사용하여 OADP(Data Protection)용 OpenShift API를 설치합니다. Operator는 Velero 1.7 을 설치합니다.
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를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.3.5.1. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.10에 OADP(OpenShift API for Data Protection) Operator를 설치합니다.
OADP Operator는 Velero 1.7 을 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
openshift-adp
프로젝트에서 Operator를 설치하려면 설치를 클릭합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
4.3.5.2. 멀티 클라우드 오브젝트 게이트웨이 인증 정보 검색
OADP(데이터 보호)용 OpenShift API에 대한 Secret
CR(사용자 정의 리소스)을 생성하려면 MCG(Multicloud Object Gateway) 인증 정보를 검색해야 합니다.
MCG는 OpenShift Data Foundation의 구성 요소입니다.
사전 요구 사항
- 적절한 OpenShift Data Foundation 배포 가이드를 사용하여 OpenShift Data Foundation을 배포 해야 합니다.
절차
-
NooBaa
사용자 정의 리소스에서describe
명령을 실행하여 S3 끝점,AWS_ACCESS_ID
및AWS_SECRET_ACCESS_KEY
를 가져옵니다. credentials-velero
파일을 만듭니다.$ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF
credentials-velero
파일을 사용하여 데이터 보호 애플리케이션을 설치할 때Secret
오브젝트를 생성합니다.
4.3.5.3. 백업 및 스냅샷 위치 및 보안 정보
DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.
백업 위치
Multicloud Object Gateway, Noobaa 또는 Minio와 같은 S3 호환 개체 스토리지를 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.
Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿
을 생성합니다.
백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
DataProtectionApplication
CR에서 지정하는 백업 위치에 대한 사용자 정의시크릿
입니다. -
DataProtectionApplication
CR에서 참조되지 않는 스냅샷 위치에 대한 기본시크릿
입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여
기본 보안을 생성할 수 있습니다.
4.3.5.3.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.3.5.3.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 정의 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
기본 이름
cloud-credentials
가 있는 스냅샷 위치시크릿
. 이Secret
은DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한
자격 증명-velero
파일을 만듭니다. 기본 이름으로 스냅샷 위치에 대한
Secret
을 생성합니다.$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
-
오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한
credentials-velero
파일을 만듭니다. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예와 같이 사용자 지정 이름이 있는
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: config: profile: "default" region: 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.3.5.4. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.3.5.4.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: limits: cpu: "1" memory: 512Mi requests: cpu: 500m memory: 256Mi
- 1
- Velero podSpec에 제공할 노드 선택기 지정
4.3.5.4.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 ...
4.3.5.5. 데이터 보호 애플리케이션 설치
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
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본 보안이없으면
설치에 실패합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operator 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
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 podConfig: nodeSelector: <node selector> 3 backupLocations: - velero: config: profile: "default" region: minio s3Url: <url> 4 insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" provider: aws default: true credential: key: cloud name: cloud-credentials 5 objectStorage: bucket: <bucket_name> 6 prefix: <prefix> 7
- 1
openshift
플러그인은 필수입니다.- 2
- Restic 설치를 비활성화하려면
false
로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, 각 작업자 노드에Restic
pod가 실행됩니다.Backup
CR에spec.defaultVolumesToRestic: true
를 추가하여 백업에 Restic을 구성합니다. - 3
- Restic podSpec에 제공할 노드 선택기를 지정합니다.
- 4
- S3 끝점의 URL을 지정합니다.
- 5
- 이 값을 지정하지 않으면 기본 이름
cloud-credentials
가 사용됩니다. 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다. - 6
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 7
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예:
velero
)를 지정합니다.
- 생성을 클릭합니다.
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.3.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
- 1
csi
기본 플러그인을 추가합니다.
4.3.6. OpenShift Data Foundation으로 OpenShift Data Protection을 위한 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를 설치하려면 먼저 기본 OperatorHub 소스를 비활성화하고 Operator 카탈로그를 미러링해야 합니다. 자세한 내용은 제한된 네트워크에서 Operator Lifecycle Manager 사용을 참조하십시오.
4.3.6.1. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.10에 OADP(OpenShift API for Data Protection) Operator를 설치합니다.
OADP Operator는 Velero 1.7 을 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
절차
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
openshift-adp
프로젝트에서 Operator를 설치하려면 설치를 클릭합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
4.3.6.2. 백업 및 스냅샷 위치 및 보안 정보
DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치 및 해당 시크릿을 지정합니다.
백업 위치
Multicloud Object Gateway, Noobaa 또는 Minio와 같은 S3 호환 개체 스토리지를 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
영구 볼륨을 백업하기 위해 클라우드 공급자의 네이티브 스냅샷 API를 사용하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성하기 때문에 스냅샷 위치를 지정할 필요가 없습니다.
Restic을 사용하는 경우 Restic이 개체 스토리지의 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 시크릿
을 생성합니다.
백업 및 스냅샷 위치가 다른 인증 정보를 사용하는 경우 두 개의 시크릿 오브젝트를 생성합니다.
-
DataProtectionApplication
CR에서 지정하는 백업 위치에 대한 사용자 정의시크릿
입니다. -
DataProtectionApplication
CR에서 참조되지 않는 스냅샷 위치에 대한 기본시크릿
입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그렇지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여
기본 보안을 생성할 수 있습니다.
4.3.6.2.1. 기본 보안 생성
백업 및 스냅샷 위치가 동일한 자격 증명을 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
백업 스토리지 공급자에 aws
,azure
, gcp
와 같은 기본 플러그인이 없으면 Secret
의 기본 이름은 cloud-credentials
입니다. 이 경우 기본 이름은 공급자별 OADP 설치 절차에 지정됩니다.
DataProtectionApplication
CR(사용자 정의 리소스)에는 기본 시크릿
이 필요합니다. 그렇지 않으면 설치에 실패합니다. 백업 위치 Secret
의 이름이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 자격 증명을 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 Secret
을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지는 동일한 인증 정보를 사용해야 합니다.
- Velero에 대한 오브젝트 스토리지를 구성해야 합니다.
-
오브젝트 스토리지의
credentials-velero
파일을 적절한 형식으로 만들어야 합니다.
절차
기본 이름으로 보안을 생성합니다.
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Secret
은 데이터 보호 애플리케이션을 설치할 때 DataProtectionApplication
CR의 spec.backupLocations.credential
블록에서 참조합니다.
4.3.6.2.2. 다른 인증 정보의 보안 생성
백업 및 스냅샷 위치에 다른 인증 정보를 사용하는 경우 두 개의 Secret
오브젝트를 생성해야 합니다.
-
사용자 지정 이름을 사용한 백업 위치
시크릿
. 사용자 정의 이름은DataProtectionApplication
CR(사용자 정의 리소스)의spec.backupLocations
블록에 지정됩니다. -
기본 이름
cloud-credentials
가 있는 스냅샷 위치시크릿
. 이Secret
은DataProtectionApplication
CR에 지정되지 않습니다.
절차
-
클라우드 공급자에 적합한 형식으로 스냅샷 위치에 대한
자격 증명-velero
파일을 만듭니다. 기본 이름으로 스냅샷 위치에 대한
Secret
을 생성합니다.$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
-
오브젝트 스토리지의 적절한 형식으로 백업 위치에 대한
credentials-velero
파일을 만듭니다. 사용자 정의 이름으로 백업 위치에 대한 보안을 생성합니다.
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
다음 예와 같이 사용자 지정 이름이 있는
Secret
을DataProtectionApplication
CR에 추가합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: <provider> default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix>
- 1
- 사용자 정의 이름으로 백업 위치
시크릿
.
4.3.6.3. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
4.3.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: limits: cpu: "1" memory: 512Mi requests: cpu: 500m memory: 256Mi
- 1
- Velero podSpec에 제공할 노드 선택기 지정
4.3.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 ...
4.3.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
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본 보안이없으면
설치에 실패합니다.
-
백업 위치에 대한 사용자 지정 이름이 있는
절차
-
Operators
설치된 Operator 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 아래의 DataProtectionApplication 상자에서 인스턴스 생성을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - kubevirt 1 - gcp 2 - csi 3 - openshift 4 restic: enable: true 5 podConfig: nodeSelector: <node selector> 6 backupLocations: - velero: provider: gcp 7 default: true credential: key: cloud name: <default_secret> 8 objectStorage: bucket: <bucket_name> 9 prefix: <prefix> 10
- 1
- 선택 사항:
kubevirt
플러그인이 OpenShift Virtualization과 함께 사용됩니다. - 2
- 필요한 경우 백업 공급자의 기본 플러그인을 지정합니다(예:
gcp
). - 3
- CSI 스냅샷을 사용하여 PV를 백업하는 경우
csi
기본 플러그인을 지정합니다.csi
플러그인은 Velero CSI 베타 스냅샷 API 를 사용합니다. 스냅샷 위치를 구성할 필요가 없습니다. - 4
openshift
플러그인은 필수입니다.- 5
- Restic 설치를 비활성화하려면
false
로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, 각 작업자 노드에Restic
pod가 실행됩니다.Backup
CR에spec.defaultVolumesToRestic: true
를 추가하여 백업에 Restic을 구성합니다. - 6
- Restic podSpec에 제공할 노드 선택기 지정
- 7
- 백업 공급자를 지정합니다.
- 8
- 백업 공급자에 기본 플러그인을 사용하는 경우
Secret
에 대해 올바른 기본 이름을 지정해야 합니다(예:cloud-credentials-gcp
). 사용자 지정 이름을 지정하면 백업 위치에 사용자 지정 이름이 사용됩니다.Secret
이름을 지정하지 않으면 기본 이름이 사용됩니다. - 9
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업용 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 10
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사(예:
velero
)를 지정합니다.
- 생성을 클릭합니다.
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.3.6.4.1. OpenShift Data Foundation에서 재해 복구를 위해 NooBaa 구성
OpenShift Data Foundation에서 NooBaa 버킷 backupStorageLocation
에 클러스터 스토리지를 사용하는 경우 NooBaa를 외부 오브젝트 저장소로 구성합니다.
NooBaa를 외부 오브젝트 저장소로 구성하지 못하면 백업을 사용할 수 없을 수 있습니다.
절차
- 하이브리드 또는 Multicloud에 대한 스토리지 리소스 추가 에 설명된 대로 NooBaa를 외부 오브젝트 저장소로 구성합니다.
4.3.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.3.7. 데이터 보호를 위한 OpenShift API 설치 제거
OADP Operator를 삭제하여 OADP(Data Protection)용 OpenShift API를 설치 제거합니다. 자세한 내용은 클러스터에서 Operator 삭제를 참조하십시오.