4.8. 재해 복구 솔루션을 테스트하기 위한 샘플 애플리케이션 생성
OpenShift Data Foundation 재해 복구(DR) 솔루션은 RHACM에서 관리하는 서브스크립션 기반 및 ApplicationSet 기반 애플리케이션에 대한 재해 복구를 지원합니다. 자세한 내용은 서브스크립션 및 애플리케이션 세트 설명서를 참조하십시오.
다음 섹션에서는 애플리케이션을 생성하고 DRPolicy를 애플리케이션에 적용하는 방법을 자세히 설명합니다.
클러스터 관리자 권한이 없는 OpenShift 사용자는 재해 복구 작업을 실행하기 위해 애플리케이션 사용자에게 필요한 권한을 할당하는 방법에 대한 지식 문서를 참조하십시오.
cluster-admin 권한이 없는 OpenShift 사용자는 ApplicationSet 기반 애플리케이션을 생성할 수 없습니다.
4.8.1. 서브스크립션 기반 애플리케이션 링크 복사링크가 클립보드에 복사되었습니다!
4.8.1.1. 샘플 서브스크립션 기반 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
기본 관리형 클러스터에서 Secondary 관리 클러스터로 장애 조치를 테스트하고 재배치 하려면 샘플 애플리케이션이 필요합니다.
사전 요구 사항
- 일반 사용을 위해 애플리케이션을 생성할 때 애플리케이션이 하나의 클러스터에만 배포되었는지 확인합니다.
-
busybox라는 샘플 애플리케이션을 예제로 사용합니다. - 애플리케이션이 장애 발생하거나 재배치될 때 트래픽 리디렉션에 대해 GTM(Global Traffic Manager) 또는 GLSB(Global Server Load Balancing) 서비스를 사용하여 애플리케이션의 모든 외부 경로가 구성되었는지 확인합니다.
Red Hat Advanced Cluster Management(RHACM) 서브스크립션을 그룹화하는 것이 좋습니다. DR을 그룹으로 보호하는 단일 배치 규칙을 참조하십시오. 장애 조치(failover) 및 재배치와 같은 향후 DR 작업에 대한 서브스크립션의 논리 그룹화에 대한 단일 애플리케이션으로 추가로 생성합니다.
참고관련 서브스크립션이 배치 작업에 대해 동일한 배치 규칙을 참조하는 경우 DR 워크플로우가 배치 규칙을 참조하는 모든 서브스크립션을 제어하므로 DR로 보호됩니다.
프로세스
- Hub 클러스터에서 애플리케이션으로 이동하여 애플리케이션 생성 을 클릭합니다.
- 유형을 서브스크립션 으로 선택합니다.
-
애플리케이션 이름 (예:
busybox) 및 네임스페이스 (예:busybox-sample)를 입력합니다. -
리소스 리포지토리 섹션에서 리포지토리 유형
Git을 선택합니다. 샘플 애플리케이션의 Git 리포지토리 URL, github Branch 및 Path 를 입력합니다. 여기서 사용
가능한리소스 및 PVC가 생성됩니다.-
샘플 애플리케이션 리포지토리를
https://github.com/red-hat-storage/ocm-ramen-samples로 사용 -
Branch 를
release-4.16으로 선택합니다. 다음 경로중 하나를 선택합니다.
-
busybox-odr: RBD Regional-DR 사용 -
busybox-odr-cephfs를 사용하여 CephFS Regional-DR을 사용합니다.
-
-
샘플 애플리케이션 리포지토리를
지정된 모든 레이블이 있는 클러스터에 애플리케이션 리소스 배포가 표시될 때까지 양식에서 아래로 스크롤합니다.
- 글로벌 클러스터 세트 또는 사용자 환경에 대한 올바른 관리 클러스터를 포함하는 클러스터를 선택합니다.
- 값이 관리되는 클러스터 이름으로 설정된 & lt;name> 레이블을 추가합니다.
오른쪽 상단에 있는 생성 을 클릭합니다.
후속 화면에서
토폴로지탭으로 이동합니다. 애플리케이션 토폴로지에 모든 녹색 확인 표시가 있는지 확인해야 합니다.참고자세한 정보를 얻으려면 토폴로지 요소 중 하나를 클릭하면 토폴로지 보기 오른쪽에 창이 표시됩니다.
샘플 애플리케이션 배포 검증.
busybox애플리케이션이 기본 클러스터에 배포되었으므로 배포를 검증할 수 있습니다.RHACM에서
busybox를 배포한 관리형 클러스터에 로그인합니다.oc get pods,pvc -n busybox-sample
$ oc get pods,pvc -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.2. 샘플 애플리케이션에 데이터 정책 적용 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- 데이터 정책에서 참조되는 두 관리 클러스터에 모두 연결할 수 있는지 확인합니다. 그렇지 않은 경우 두 클러스터가 온라인 상태가 될 때까지 애플리케이션은 재해 복구용으로 보호되지 않습니다.
프로세스
-
Hub 클러스터에서 모든 클러스터
애플리케이션으로 이동합니다. - 애플리케이션 끝에 있는 작업 메뉴를 클릭하여 사용 가능한 작업 목록을 확인합니다.
-
데이터 정책 관리
데이터 정책 할당 을 클릭합니다. - 정책을 선택하고 다음을 클릭합니다.
애플리케이션 리소스 를 선택한 다음 PVC 라벨 선택기를 사용하여 선택한 애플리케이션
리소스에 대한 PVC 레이블을선택합니다.참고선택한 애플리케이션 리소스에 대해 두 개 이상의 PVC 레이블을 선택할 수 있습니다. 애플리케이션 리소스 추가 옵션을 사용하여 여러 리소스 를 추가할 수도 있습니다.
- 모든 애플리케이션 리소스를 추가한 후 다음을 클릭합니다.
-
정책 구성 세부 정보를검토하고 Assign 을 클릭합니다. 새로 할당된 데이터정책은 데이터 관리모달 목록 뷰에 표시됩니다. 애플리케이션 페이지에서 할당된 정책 세부 정보를 볼 수 있는지 확인합니다.
- 애플리케이션 페이지에서 데이터 정책 열로 이동하여 정책 링크를 클릭하여 뷰를 확장합니다.
- 장애 조치 및 재배치 상태와 함께 할당된 정책 수를 확인할 수 있는지 확인합니다.
- 애플리케이션과 함께 사용 중인 정책과 함께 진행 중인 활동 상태를 보려면 세부 정보 보기를 클릭합니다.
선택 사항: 기본 클러스터에서 RADOS 블록 장치(RBD)
확인합니다.볼륨 복제및 볼륨 복제 그룹을oc get volumereplications.replication.storage.openshift.io -A
$ oc get volumereplications.replication.storage.openshift.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME AGE VOLUMEREPLICATIONCLASS PVCNAME DESIREDSTATE CURRENTSTATE busybox-pvc 2d16h rbd-volumereplicationclass-1625360775 busybox-pvc primary Primary
NAME AGE VOLUMEREPLICATIONCLASS PVCNAME DESIREDSTATE CURRENTSTATE busybox-pvc 2d16h rbd-volumereplicationclass-1625360775 busybox-pvc primary PrimaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get volumereplicationgroups.ramendr.openshift.io -A
$ oc get volumereplicationgroups.ramendr.openshift.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME DESIREDSTATE CURRENTSTATE busybox-drpc primary Primary
NAME DESIREDSTATE CURRENTSTATE busybox-drpc primary PrimaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본 클러스터에서 CephFS volsync 복제 소스가 성공적으로 설정되었으며 failover 클러스터에volSync ReplicationDestination이 설정되어 있는지 확인합니다.
oc get replicationsource -n busybox-sample
$ oc get replicationsource -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME SOURCE LAST SYNC DURATION NEXT SYNC busybox-pvc busybox-pvc 2022-12-20T08:46:07Z 1m7.794661104s 2022-12-20T08:50:00Z
NAME SOURCE LAST SYNC DURATION NEXT SYNC busybox-pvc busybox-pvc 2022-12-20T08:46:07Z 1m7.794661104s 2022-12-20T08:50:00ZCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get replicationdestination -n busybox-sample
$ oc get replicationdestination -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME LAST SYNC DURATION NEXT SYNC busybox-pvc 2022-12-20T08:46:32Z 4m39.52261108s
NAME LAST SYNC DURATION NEXT SYNC busybox-pvc 2022-12-20T08:46:32Z 4m39.52261108sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.2. ApplicationSet 기반 애플리케이션 링크 복사링크가 클립보드에 복사되었습니다!
4.8.2.1. ApplicationSet 기반 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Red Hat OpenShift GitOps Operator가 Hub 클러스터,기본 관리 클러스터 및 보조 관리 클러스터 의 세 가지 클러스터에 모두 설치되어 있는지 확인합니다. 자세한 내용은 웹 콘솔에서 Red Hat OpenShift GitOps Operator 설치를 참조하십시오.
Hub 클러스터에서 기본 관리 클러스터와 보조 관리 클러스터가 GitOps에 등록되어 있는지 확인합니다. 등록 지침은 GitOps에 관리 클러스터 등록을 참조하십시오. 그런 다음
GitOpsCluster리소스에서 두 관리 클러스터를 모두 등록하는 데 사용하는 배치에 클러스터를 사용할 수 없는 허용 오차가 있는지 확인합니다.oc get placement <placement-name> -n openshift-gitops -o yaml명령을 사용하여 배치에 다음 허용 오차가 추가되었는지 확인할 수 있습니다.tolerations: - key: cluster.open-cluster-management.io/unreachable operator: Exists - key: cluster.open-cluster-management.io/unavailable operator: Existstolerations: - key: cluster.open-cluster-management.io/unreachable operator: Exists - key: cluster.open-cluster-management.io/unavailable operator: ExistsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 허용 오차가 추가되지 않은 경우 Red Hat Advanced Cluster Management 및 OpenShift GitOps의 애플리케이션 배치 허용 오차 구성 을 참조하십시오.
-
기본 및 보조 관리 클러스터 모두에
ClusterRoleBindingyaml을 생성했는지 확인합니다. 지침은 RHACM 설명서의 사전 요구 사항 장을 참조하십시오.
프로세스
-
Hub 클러스터에서 모든 클러스터
애플리케이션으로 이동하여 애플리케이션 생성 을 클릭합니다. - Argo CD ApplicationSet - Pull 모델로 애플리케이션 유형을 선택합니다.
- 일반 단계에서 애플리케이션 세트 이름을 입력합니다.
-
Argo 서버
openshift-gitops및 Requeue 시간을180초로 선택합니다. - 다음을 클릭합니다.
-
리소스 리포지토리 섹션에서 리포지토리 유형
Git을 선택합니다. 샘플 애플리케이션의 Git 리포지토리 URL, github Branch 및 Path를 입력합니다. 여기서 사용 가능한 리소스 및 PVC가 생성됩니다.
- 샘플 애플리케이션 리포지토리를 https://github.com/red-hat-storage/ocm-ramen-samples로 사용
-
버전 선택
릴리스-4.16 다음 경로 중 하나를 선택합니다.
-
busybox-odr: RBD Regional-DR 사용 -
busybox-odr-cephfs를 사용하여 CephFS Regional-DR을 사용합니다.
-
- Remote namespace value. (example, busybox-sample)를 입력하고 Next 를 클릭합니다.
요구 사항에 따라 동기화 정책 설정을 선택하거나 기본 선택 사항으로 이동한 다음 다음을 클릭합니다.
하나 이상의 옵션을 선택할 수 있습니다.
- 레이블 표현식에서 관리 클러스터 이름으로 설정된 레이블 <name >을 추가합니다.
- 다음을 클릭합니다.
- 설정 세부 정보를 검토하고 Submit 을 클릭합니다.
4.8.2.2. 샘플 ApplicationSet 기반 애플리케이션에 데이터 정책 적용 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- 데이터 정책에서 참조되는 두 관리 클러스터에 모두 연결할 수 있는지 확인합니다. 그렇지 않은 경우 두 클러스터가 온라인 상태가 될 때까지 애플리케이션은 재해 복구용으로 보호되지 않습니다.
프로세스
-
Hub 클러스터에서 모든 클러스터
애플리케이션으로 이동합니다. - 애플리케이션 끝에 있는 작업 메뉴를 클릭하여 사용 가능한 작업 목록을 확인합니다.
-
데이터 정책 관리
데이터 정책 할당 을 클릭합니다. - 정책을 선택하고 다음을 클릭합니다.
애플리케이션 리소스 를 선택한 다음 PVC 라벨 선택기를 사용하여 선택한 애플리케이션
리소스에 대한 PVC 레이블을선택합니다.참고선택한 애플리케이션 리소스에 대해 두 개 이상의 PVC 레이블을 선택할 수 있습니다.
- 모든 애플리케이션 리소스를 추가한 후 다음을 클릭합니다.
-
정책 구성 세부 정보를검토하고 Assign 을 클릭합니다. 새로 할당된 데이터정책은 데이터 관리모달 목록 뷰에 표시됩니다. 애플리케이션 페이지에서 할당된 정책 세부 정보를 볼 수 있는지 확인합니다.
- 애플리케이션 페이지에서 데이터 정책 열로 이동하여 정책 링크를 클릭하여 뷰를 확장합니다.
- 장애 조치 및 재배치 상태와 함께 할당된 정책 수를 확인할 수 있는지 확인합니다.
선택 사항: 기본 클러스터에서 Rados 블록 장치(RBD)
볼륨 복제 및확인.volumereplication그룹oc get volumereplications.replication.storage.openshift.io -A
$ oc get volumereplications.replication.storage.openshift.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME AGE VOLUMEREPLICATIONCLASS PVCNAME DESIREDSTATE CURRENTSTATE busybox-pvc 2d16h rbd-volumereplicationclass-1625360775 busybox-pvc primary Primary
NAME AGE VOLUMEREPLICATIONCLASS PVCNAME DESIREDSTATE CURRENTSTATE busybox-pvc 2d16h rbd-volumereplicationclass-1625360775 busybox-pvc primary PrimaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get volumereplicationgroups.ramendr.openshift.io -A
$ oc get volumereplicationgroups.ramendr.openshift.io -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME DESIREDSTATE CURRENTSTATE busybox-drpc primary Primary
NAME DESIREDSTATE CURRENTSTATE busybox-drpc primary PrimaryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 기본 클러스터에서 CephFS volsync 복제 소스가 성공적으로 설정되었는지 확인하고 장애 조치(failover) 클러스터에서 Cryostat volsync 복제 소스가 설정되었는지 확인합니다.
oc get replicationsource -n busybox-sample
$ oc get replicationsource -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME SOURCE LAST SYNC DURATION NEXT SYNC busybox-pvc busybox-pvc 2022-12-20T08:46:07Z 1m7.794661104s 2022-12-20T08:50:00Z
NAME SOURCE LAST SYNC DURATION NEXT SYNC busybox-pvc busybox-pvc 2022-12-20T08:46:07Z 1m7.794661104s 2022-12-20T08:50:00ZCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get replicationdestination -n busybox-sample
$ oc get replicationdestination -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME LAST SYNC DURATION NEXT SYNC busybox-pvc 2022-12-20T08:46:32Z 4m39.52261108s
NAME LAST SYNC DURATION NEXT SYNC busybox-pvc 2022-12-20T08:46:32Z 4m39.52261108sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.3. 샘플 애플리케이션 삭제 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 RHACM 콘솔을 사용하여 샘플 애플리케이션 busybox 를 삭제하는 방법을 설명합니다.
DR protected 애플리케이션을 삭제할 때 DRPolicy에 속하는 두 클러스터에 대한 액세스가 필요합니다. 이는 각 S3 저장소의 보호된 모든 API 리소스 및 리소스가 DR 보호 제거의 일부로 정리되도록 하기 위한 것입니다. 클러스터 중 하나에 대한 액세스가 정상이 아닌 경우 허브의 DRPlacementControl 리소스를 삭제해도 Deleting 상태가 됩니다.
사전 요구 사항
- 샘플 애플리케이션을 삭제하기 위한 이러한 지침은 페일오버 및 재배치 테스트가 완료되고 RHACM 및 관리 클러스터에서 애플리케이션을 제거할 준비가 될 때까지 실행되지 않아야 합니다.
프로세스
- RHACM 콘솔에서 Applications.
-
삭제할 샘플 애플리케이션(예:
busybox)을 검색합니다. - 삭제하려는 애플리케이션 옆에 있는 Action Menu ( Action Menu) 를 클릭합니다.
애플리케이션 삭제를 클릭합니다.
애플리케이션 삭제 가 선택되면 애플리케이션 관련 리소스도 삭제해야 하는지 묻는 새 화면이 표시됩니다.
- 애플리케이션 관련 리소스 제거를 선택하여 서브스크립션 및 PlacementRule을 삭제합니다.
- 삭제를 클릭합니다. 이렇게 하면 기본 관리 클러스터(또는 애플리케이션이 실행 중인 클러스터)에서 busybox 애플리케이션이 삭제됩니다.
RHACM 콘솔을 사용하여 삭제된 리소스 외에도
busybox애플리케이션을 삭제한 후 자동 삭제되지 않은 경우DRPlacementControl을 삭제합니다.Hub 클러스터의 OpenShift 웹 콘솔에 로그인하고 프로젝트
busybox-sample을 위해 설치된 Operator로 이동합니다.ApplicationSet 애플리케이션의 경우 프로젝트를
openshift-gitops로 선택합니다.- OpenShift DR Hub Operator 를 클릭한 다음 DRPlacementControl 탭을 클릭합니다.
-
삭제하려는
busybox애플리케이션 DRPlacementControl 옆에 있는 Action Menu ( Cryostat) 를 클릭합니다. - Delete DRPlacementControl 을 클릭합니다.
- 삭제를 클릭합니다.
이 프로세스를 사용하여 DRPlacementControl 리소스가 있는 모든 애플리케이션을 삭제할 수 있습니다.