14.2. OADP 설치 및 구성
클러스터 관리자는 OADP Operator를 설치하여 OADP(OpenShift API for Data Protection)를 설치합니다. Operator는 Velero 1.12 를 설치합니다.
백업 스토리지 공급자에 대한 기본 시크릿
을 생성한 다음 데이터 보호 애플리케이션을 설치합니다.
14.2.1. OADP Operator 설치
OLM(Operator Lifecycle Manager)을 사용하여 OpenShift Container Platform 4.14에 OADP(OpenShift API for Data Protection) Operator를 설치합니다.
OADP Operator는 Velero 1.12 를 설치합니다.
사전 요구 사항
-
cluster-admin
권한이 있는 사용자로 로그인해야 합니다.
프로세스
-
OpenShift Container Platform 웹 콘솔에서 Operator
OperatorHub를 클릭합니다. - 키워드로 필터링 필드를 사용하여 OADP Operator 를 찾습니다.
- OADP Operator 를 선택하고 설치를 클릭합니다.
-
설치를 클릭하여
openshift-adp
프로젝트에 Operator를 설치합니다. -
Operators
설치된 Operators 를 클릭하여 설치를 확인합니다.
14.2.2. 백업 및 스냅샷 위치 및 시크릿 정보
DataProtectionApplication
CR(사용자 정의 리소스)에서 백업 및 스냅샷 위치와 해당 시크릿을 지정합니다.
백업 위치
AWS S3 호환 오브젝트 스토리지(예: Multicloud Object Gateway 또는 MinIO)를 백업 위치로 지정합니다.
Velero는 OpenShift Container Platform 리소스, Kubernetes 오브젝트 및 내부 이미지를 오브젝트 스토리지의 아카이브 파일로 백업합니다.
스냅샷 위치
클라우드 공급자의 기본 스냅샷 API를 사용하여 영구 볼륨을 백업하는 경우 클라우드 공급자를 스냅샷 위치로 지정해야 합니다.
CSI(Container Storage Interface) 스냅샷을 사용하는 경우 CSI 드라이버를 등록하기 위해 VolumeSnapshotClass
CR을 생성할 예정이므로 스냅샷 위치를 지정할 필요가 없습니다.
FSB(File System Backup)를 사용하는 경우 FSB가 오브젝트 스토리지에서 파일 시스템을 백업하므로 스냅샷 위치를 지정할 필요가 없습니다.
보안
백업 및 스냅샷 위치에서 동일한 인증 정보를 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다
.
백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 두 개의 secret 오브젝트를 생성합니다.
-
DataProtectionApplication
CR에 지정하는 백업 위치에 대한 사용자 지정시크릿
입니다. -
DataProtectionApplication
CR에서 참조되지 않는 스냅샷 위치의 기본시크릿
입니다.
데이터 보호 애플리케이션에는 기본 보안이 필요합니다
. 그러지 않으면 설치에 실패합니다.
설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈 credentials-velero
파일을 사용하여
기본 보안을 생성할 수 있습니다.
14.2.2.1. 기본 보안 생성
백업 및 스냅샷 위치가 동일한 인증 정보를 사용하거나 스냅샷 위치가 필요하지 않은 경우 기본 보안을 생성합니다.
DataProtectionApplication
CR(사용자 정의 리소스)에는 기본 시크릿
이 필요합니다. 그러지 않으면 설치에 실패합니다. 백업 위치 Secret
의 이름이 지정되지 않은 경우 기본 이름이 사용됩니다.
설치 중에 백업 위치 인증 정보를 사용하지 않으려면 빈 credentials-velero
파일을 사용하여 기본 이름으로 보안을 생성할 수 있습니다.
사전 요구 사항
- 오브젝트 스토리지 및 클라우드 스토리지(있는 경우)는 동일한 인증 정보를 사용해야 합니다.
- 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
블록에서 참조됩니다.
14.2.3. 데이터 보호 애플리케이션 구성
Velero 리소스 할당을 설정하거나 자체 서명된 CA 인증서를 활성화하여 데이터 보호 애플리케이션을 구성할 수 있습니다.
14.2.3.1. Velero CPU 및 메모리 리소스 할당 설정
DataProtectionApplication
CR(사용자 정의 리소스) 매니페스트를 편집하여 Velero
Pod의 CPU 및 메모리 리소스 할당을 설정합니다.
사전 요구 사항
- OADP(OpenShift API for Data Protection) Operator가 설치되어 있어야 합니다.
프로세스
다음 예와 같이
DataProtectionApplication
CR 매니페스트의spec.configuration.velero.podConfig.ResourceAllocations
블록에서 값을 편집합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: # ... configuration: velero: podConfig: nodeSelector: <node selector> 1 resourceAllocations: 2 limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Mi
Kopia는 OADP 1.3 이상 릴리스에서 옵션입니다. Kopia를 파일 시스템 백업에 사용할 수 있으며, Kopia는 기본 제공 Data Mover 사례에서만 사용할 수 있습니다.
Kopia는 Restic보다 리소스 집약적이므로 그에 따라 CPU 및 메모리 요구 사항을 조정해야 할 수 있습니다.
14.2.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 # ...
14.2.3.2.1. Velero 배포에 별칭이 지정된 velero 명령과 함께 CA 인증서 사용
별칭을 생성하여 시스템에 로컬로 설치하지 않고 Velero CLI를 사용할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 OpenShift Container Platform 클러스터에 로그인해야 합니다. OpenShift CLI(
oc
)가 설치되어 있어야 합니다.aliased Velero 명령을 사용하려면 다음 명령을 실행합니다.
$ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
다음 명령을 실행하여 별칭이 작동하는지 확인합니다.
예
$ velero version Client: Version: v1.12.1-OADP Git commit: - Server: Version: v1.12.1-OADP
이 명령으로 CA 인증서를 사용하려면 다음 명령을 실행하여 Velero 배포에 인증서를 추가할 수 있습니다.
$ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
$ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
백업 로그를 가져오려면 다음 명령을 실행합니다.
$ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>
이러한 로그를 사용하여 백업할 수 없는 리소스에 대한 오류 및 경고를 볼 수 있습니다.
-
Velero 포드가 다시 시작되면
/tmp/your-cacert.txt
파일이 사라지고 이전 단계의 명령을 다시 실행하여/tmp/your-cacert.txt
파일을 다시 생성해야 합니다. 다음 명령을 실행하여
/tmp/your-cacert.txt
파일이 여전히 있는지 확인할 수 있습니다.$ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt
향후 OpenShift API for Data Protection(OADP) 릴리스에서는 이 단계가 필요하지 않도록 Velero 포드에 인증서를 마운트할 계획입니다.
14.2.4. 데이터 보호 애플리케이션 1.2 및 이전 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 인증 정보를 사용하는 경우 기본 이름
cloud-credentials
로시크릿
을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 다음 두 개의
시크릿
을 생성해야 합니다.-
백업 위치에 대한 사용자 정의 이름이 있는
시크릿
입니다. 이 보안을Data
ProtectionApplication 스냅샷 위치에 대한 다른 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을Data
ProtectionApplication참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본Secret
이 없으면 설치에 실패합니다.참고Velero는 기본 백업 리포지토리 암호가 포함된 OADP 네임스페이스에
velero-repo-credentials
라는 시크릿을 생성합니다. 백업 리포지토리를 대상으로 하는 첫 번째 백업을 실행하기 전에 base64로 인코딩된 고유한 암호로 시크릿을 업데이트할 수 있습니다. 업데이트할 키의 값은Data[repository-password]
입니다.DPA를 생성한 후 백업 리포지토리를 대상으로 하는 백업을 처음 실행하면 Velero에서 시크릿이 기본 암호 또는 교체한 암호가 포함된
velero-repo-credentials
인 백업 리포지토리를 생성합니다. 첫 번째 백업 후 시크릿 암호를 업데이트하면 새 암호가velero-repo-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 resourceTimeout: 10m 5 restic: enable: true 6 podConfig: nodeSelector: <node_selector> 7 backupLocations: - velero: provider: gcp 8 default: true credential: key: cloud name: <default_secret> 9 objectStorage: bucket: <bucket_name> 10 prefix: <prefix> 11
- 1
kubevirt
플러그인은 OpenShift Virtualization에 필수입니다.- 2
- 백업 공급자의 플러그인을 지정합니다(예:
gcp
). - 3
- CSI 스냅샷을 사용하여 PV를 백업하려면
csi
플러그인이 필요합니다.csi
플러그인은 Velero CSI 베타 스냅샷 API 를 사용합니다. 스냅샷 위치를 구성할 필요가 없습니다. - 4
openshift
플러그인은 필수입니다.- 5
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 시간(분)을 지정합니다. 기본값은 10m입니다.
- 6
- Restic 설치를 비활성화하려면 이 값을
false
로 설정합니다. Restic은 데몬 세트를 배포합니다. 즉, Restic pod는 각 작업 노드에서 실행됩니다. OADP 버전 1.2 이상에서는Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 백업에 대해 Restic을 구성할 수 있습니다. OADP 버전 1.1에서Backup
CR에spec.defaultVolumesToRestic: true
를 추가합니다. - 7
- 사용 가능한 Restic 노드를 지정합니다. 기본적으로 Restic은 모든 노드에서 실행됩니다.
- 8
- 백업 공급자를 지정합니다.
- 9
- 백업 공급자에 기본 플러그인을 사용하는 경우
Secret
의 올바른 기본 이름(예:cloud-credentials-gcp
)을 지정합니다. 사용자 지정 이름을 지정하면 사용자 지정 이름이 백업 위치에 사용됩니다.Secret
이름을 지정하지 않으면 기본 이름이 사용됩니다. - 10
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 11
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다(예:
velero
).
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/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
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
-
PHASE
가Available
에 있는지 확인합니다.
14.2.5. 데이터 보호 애플리케이션 1.3 설치
DataProtectionApplication API의 인스턴스를 생성하여 DPA( Data Protection Application
)를 설치합니다.
사전 요구 사항
- OADP Operator를 설치해야 합니다.
- 오브젝트 스토리지를 백업 위치로 구성해야 합니다.
- 스냅샷을 사용하여 PV를 백업하는 경우 클라우드 공급자는 기본 스냅샷 API 또는 CSI(Container Storage Interface) 스냅샷을 지원해야 합니다.
-
백업 및 스냅샷 위치에서 동일한 인증 정보를 사용하는 경우 기본 이름
cloud-credentials
로시크릿
을 생성해야 합니다. 백업 및 스냅샷 위치에서 다른 인증 정보를 사용하는 경우 다음 두 개의
시크릿
을 생성해야 합니다.-
백업 위치에 대한 사용자 정의 이름이 있는
시크릿
입니다. 이 보안을Data
ProtectionApplication -
스냅샷 위치에 대한 다른 사용자 지정 이름이 있는
시크릿
입니다. 이 보안을Data
ProtectionApplication
참고설치 중에 백업 또는 스냅샷 위치를 지정하지 않으려면 빈
credentials-velero
파일을사용하여
기본 보안을 생성할 수 있습니다. 기본Secret
이 없으면 설치에 실패합니다.-
백업 위치에 대한 사용자 정의 이름이 있는
프로세스
-
Operators
설치된 Operator 를 클릭하고 OADP Operator를 선택합니다. - 제공된 API 아래에서 DataProtectionApplication 상자에서 인스턴스 생성 을 클릭합니다.
YAML 보기를 클릭하고
DataProtectionApplication
매니페스트의 매개변수를 업데이트합니다.apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp 1 spec: configuration: velero: defaultPlugins: - kubevirt 2 - gcp 3 - csi 4 - openshift 5 resourceTimeout: 10m 6 nodeAgent: 7 enable: true 8 uploaderType: kopia 9 podConfig: nodeSelector: <node_selector> 10 backupLocations: - velero: provider: gcp 11 default: true credential: key: cloud name: <default_secret> 12 objectStorage: bucket: <bucket_name> 13 prefix: <prefix> 14
- 1
- OADP의 기본 네임스페이스는
openshift-adp
입니다. 네임스페이스는 변수이며 구성 가능합니다. - 2
kubevirt
플러그인은 OpenShift Virtualization에 필수입니다.- 3
- 백업 공급자의 플러그인을 지정합니다(예:
gcp
). - 4
- CSI 스냅샷을 사용하여 PV를 백업하려면
csi
플러그인이 필요합니다.csi
플러그인은 Velero CSI 베타 스냅샷 API 를 사용합니다. 스냅샷 위치를 구성할 필요가 없습니다. - 5
openshift
플러그인은 필수입니다.- 6
- Velero CRD 가용성, volumeSnapshot 삭제, 백업 리포지토리 가용성과 같이 시간 초과가 발생하기 전에 여러 Velero 리소스를 대기하는 시간(분)을 지정합니다. 기본값은 10m입니다.
- 7
- 관리 요청을 서버로 라우팅하는 관리 에이전트입니다.
- 8
nodeAgent
를 활성화하고 파일 시스템 백업을 수행하려면 이 값을true
로 설정합니다.- 9
- 업로드로
kopia
또는restic
을 입력합니다. 설치 후에는 선택을 변경할 수 없습니다. 기본 제공 DataMover의 경우 Kopia를 사용해야 합니다.nodeAgent
는 데몬 세트를 배포합니다. 즉,nodeAgent
Pod가 각 작동 중인 노드에서 실행됩니다.Backup
CR에spec.defaultVolumesToFsBackup: true
를 추가하여 파일 시스템 백업을 구성할 수 있습니다. - 10
- Kopia 또는 Restic을 사용할 수 있는 노드를 지정합니다. 기본적으로 Kopia 또는 Restic은 모든 노드에서 실행됩니다.
- 11
- 백업 공급자를 지정합니다.
- 12
- 백업 공급자에 기본 플러그인을 사용하는 경우
Secret
의 올바른 기본 이름(예:cloud-credentials-gcp
)을 지정합니다. 사용자 지정 이름을 지정하면 사용자 지정 이름이 백업 위치에 사용됩니다.Secret
이름을 지정하지 않으면 기본 이름이 사용됩니다. - 13
- 버킷을 백업 스토리지 위치로 지정합니다. 버킷이 Velero 백업의 전용 버킷이 아닌 경우 접두사를 지정해야 합니다.
- 14
- 버킷이 여러 용도로 사용되는 경우 Velero 백업의 접두사를 지정합니다(예:
velero
).
- 생성을 클릭합니다.
검증
다음 명령을 실행하여 OADP(OpenShift API for Data Protection) 리소스를 확인하여 설치를 확인합니다.
$ oc get all -n openshift-adp
출력 예
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s
다음 명령을 실행하여 DPA(
DataProtectionApplication
)가 조정되었는지 확인합니다.$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
출력 예
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
-
유형이
Reconciled
으로 설정되어 있는지 확인합니다. 백업 스토리지 위치를 확인하고 다음 명령을 실행하여
PHASE
가 사용
가능한지 확인합니다.$ oc get backupStorageLocation -n openshift-adp
출력 예
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
-
PHASE
가Available
에 있는지 확인합니다.
14.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
기본 플러그인을 추가합니다.
14.2.6. OADP 설치 제거
OADP Operator를 삭제하여 OADP(OpenShift API for Data Protection)를 설치 제거합니다. 자세한 내용은 클러스터에서 Operator 삭제를 참조하십시오.