4.8. 재해 복구 솔루션 테스트를 위한 샘플 애플리케이션 생성
OpenShift Data Foundation 재해 복구(DR) 솔루션은 RHACM에서 관리하는 애플리케이션의 재해 복구를 지원합니다. 자세한 내용은 애플리케이션 관리를 참조하십시오.
OpenShift Data Foundation DR 솔루션은 ArgoCD를 통해 배포되는 애플리케이션에 필요한 ApplicationSet 을 지원하지 않습니다.
ODF DR은 장애 조치 또는 재배치 요구 사항을 위해 DRPolicy의 클러스터 간에 애플리케이션이 이동될 때 배치Rule 을 사용하여 RHACM 애플리케이션 배치를 오케스트레이션합니다. 다음 섹션에서는 DRPolicy 를 애플리케이션에 적용하는 방법과 클러스터 중 및 사용 불가능 후에 라이프사이클을 배치하는 애플리케이션을 관리하는 방법에 대해 자세히 설명합니다.
cluster-admin 권한이 없는 OpenShift 사용자는 재해 복구 작업을 실행하기 위해 애플리케이션 사용자에게 필요한 권한을 할당하는 방법에 대한 지식 문서 를 참조하십시오.
4.8.1. 샘플 애플리케이션 생성
주 관리 클러스터에서 보조 관리 클러스터로 장애 조치를
테스트하고 다시 배치하려면 샘플 애플리케이션이 필요합니다.
사전 요구 사항
- 일반 사용을 위해 애플리케이션을 생성할 때 애플리케이션이 하나의 클러스터에만 배포되었는지 확인합니다.
-
busybox
라는 샘플 애플리케이션을 예로 사용합니다. - 애플리케이션이 실패하거나 재배치될 때 GTM(Global Traffic Manager) 또는 GLSB(Global Server Load Balancing) 서비스를 사용하여 애플리케이션의 모든 외부 경로가 구성되어 있는지 확인합니다.
모범 사례로 함께 속해 있는 RHACM(Red Hat Advanced Cluster Management) 서브스크립션을 그룹화하여 DR에 대한 단일 배치 규칙을 그룹로 보호하는 것이 좋습니다. 장애 조치(failover) 및 재배치와 같은 향후 DR 작업에 대한 서브스크립션의 논리적 그룹화를 위한 단일 애플리케이션으로 추가로 생성합니다.
참고관련이 없는 서브스크립션이 배치 작업에 대해 동일한 배치 규칙을 참조하는 경우 DR 워크플로우는 배치 규칙을 참조하는 모든 서브스크립션을 제어하므로 DR 보호도 됩니다.
절차
- Hub 클러스터에서 애플리케이션으로 이동하여 애플리케이션 생성 을 클릭합니다.
- type을 Subscription 으로 선택합니다.
-
애플리케이션 이름 (예:
busybox
) 및 네임스페이스 (예:busybox-sample
)를 입력합니다. -
리소스의 리포지토리 위치 섹션에서 리포지토리 유형
Git
을 선택합니다. 샘플 애플리케이션에 대한 Git 리포지토리 URL, github Branch 및 resource
busybox
Pod 및 PVC가 생성될 경로를 입력합니다.-
샘플 애플리케이션 리포지토리
https://github.com/red-hat-storage/ocm-ramen-samples
를 사용합니다. -
릴리스-4.12
로 분기 를 선택합니다. 다음 경로중 하나를 선택합니다.
-
busybox-odr
: RBD regional-DR을 사용합니다. -
busybox-odr-cephfs
에서 CephFS Regional-DR을 사용합니다.
-
-
샘플 애플리케이션 리포지토리
지정된 라벨과 일치하는 클러스터에서만 애플리케이션 리소스 배포가 표시될 때까지 양식에서 아래로 스크롤한 다음 RHACM 클러스터 목록 보기의 기본 관리 클러스터 이름에 설정된 해당 값이 있는 라벨을 추가할 때까지 양식에서 아래로 스크롤합니다.
오른쪽 상단에 있는 만들기를 클릭합니다.
후속 화면에서
토폴로지
탭으로 이동합니다. 애플리케이션 토폴로지에 모든 녹색 확인 표시가 표시됩니다.참고자세한 정보를 얻으려면 토폴로지 요소 중 하나를 클릭하면 토폴로지 보기 오른쪽에 창이 표시됩니다.
샘플 애플리케이션 배포 검증.
이제
busybox
애플리케이션이 기본 클러스터에 배포되었으므로 배포를 검증할 수 있습니다.RHACM에서
busybox
를 배포한 관리 클러스터에 로그인합니다.$ oc get pods,pvc -n busybox-sample
출력 예:
NAME READY STATUS RESTARTS AGE pod/busybox-67bf494b9-zl5tr 1/1 Running 0 77s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/busybox-pvc Bound pvc-c732e5fe-daaf-4c4d-99dd-462e04c18412 5Gi RWO ocs-storagecluster-ceph-rbd 77s
4.8.2. 샘플 애플리케이션에 DRPolicy 적용
사전 요구 사항
- DRPolicy에서 참조하는 두 관리 클러스터에 모두 연결할 수 있는지 확인합니다. 그렇지 않은 경우 애플리케이션은 둘 다 온라인 상태가 될 때 DR 보호되지 않습니다.
절차
- Hub 클러스터에서 Multicluster 웹 콘솔로 돌아가 모든 클러스터로 이동합니다.
- 모든 클러스터에 나열된 모든 클러스터에 로그인 합니다.
- Data Services 로 이동한 다음 데이터 정책을 클릭합니다.
- DRPolicy 끝에 있는 Actions 메뉴를 클릭하여 사용 가능한 작업 목록을 확인합니다.
- Apply DRPolicy 를 클릭합니다.
Apply DRPolicy modal이 표시되면
busybox
애플리케이션을 선택하고 PVC 레이블을appname=busybox
로 입력합니다.참고동일한 애플리케이션 또는 두 개 이상의 애플리케이션에서 여러 배치 규칙을 선택하면 애플리케이션 네임스페이스 내의 모든 PVC가 기본적으로 보호됩니다.
- 적용을 클릭합니다.
DRPlacementControl
또는DRPC
가 Hub 클러스터 의busybox-sample
네임스페이스에서 생성되었고 CURRENTSTATE 가배포
됨으로 표시되는지 확인합니다. 이 리소스는 이 애플리케이션의 장애 조치 및 재배치 작업에 모두 사용됩니다.$ oc get drpc -n busybox-sample
출력 예:
NAME AGE PREFERREDCLUSTER FAILOVERCLUSTER DESIREDSTATE CURRENTSTATE busybox-placement-1-drpc 6m59s ocp4bos1 Deployed
[선택 사항] 기본 클러스터에서 Rados 블록 장치(RBD) 볼륨 복제 및
volumereplication
group$ oc get volumereplications.replication.storage.openshift.io
출력 예:
NAME AGE VOLUMEREPLICATIONCLASS PVCNAME DESIREDSTATE CURRENTSTATE busybox-pvc 2d16h rbd-volumereplicationclass-1625360775 busybox-pvc primary Primary
$ oc get volumereplicationgroups.ramendr.openshift.io
출력 예:
NAME DESIREDSTATE CURRENTSTATE busybox-drpc primary Primary
[선택 사항] Verify CephFS volsync replication source has been successfully in the primary cluster and 4.6.1Sync ReplicationDestination has been set in the failover cluster.
$ oc get replicationsource -n busybox-sample
출력 예:
NAME SOURCE LAST SYNC DURATION NEXT SYNC busybox-pvc busybox-pvc 2022-12-20T08:46:07Z 1m7.794661104s 2022-12-20T08:50:00Z
$ oc get replicationdestination -n busybox-sample
출력 예:
NAME LAST SYNC DURATION NEXT SYNC busybox-pvc 2022-12-20T08:46:32Z 4m39.52261108s
4.8.3. 샘플 애플리케이션 삭제
RHACM 콘솔을 사용하여 샘플 애플리케이션 busybox
를 삭제할 수 있습니다.
장애 조치 및 재배치 테스트가 완료되고 애플리케이션을 RHACM 및 관리 클러스터에서 제거할 준비가 될 때까지 샘플 애플리케이션을 삭제하는 명령은 실행되지 않아야 합니다.
절차
- RHACM 콘솔에서 Applications (애플리케이션)로 이동합니다.
-
삭제할 샘플 애플리케이션을 검색합니다(예:
busybox
). - 삭제할 애플리케이션 옆에 있는 작업 메뉴(ECDHE) 를 클릭합니다.
애플리케이션 삭제를 클릭합니다.
Delete 애플리케이션을 선택하면 애플리케이션 관련 리소스도 삭제해야 하는지 묻는 새 화면이 나타납니다.
- 애플리케이션 관련 리소스 제거 확인란을 선택하여 Subscription 및 PlacementRule을 삭제합니다.
- 삭제를 클릭합니다. 이렇게 하면 primary 관리 클러스터(또는 애플리케이션이 실행 중인 클러스터)에서 busybox 애플리케이션이 삭제됩니다.
RHACM 콘솔을 사용하여 삭제된 리소스 외에도
busybox
애플리케이션을 삭제한 후DRPlacementControl
도 삭제해야 합니다.-
Hub 클러스터의 OpenShift 웹 콘솔에 로그인하고
busybox-sample
프로젝트의 Installed Operators로 이동합니다. - OpenShift DR Hub Operator 를 클릭한 다음 DRPlacementControl 탭을 클릭합니다.
-
삭제하려는
busybox
애플리케이션 DRPlacementControl 옆에 있는 작업 메뉴(ECDHE) 를 클릭합니다. - DRPlacementControl 삭제를 클릭합니다.
- 삭제를 클릭합니다.
-
Hub 클러스터의 OpenShift 웹 콘솔에 로그인하고
이 프로세스는 DRPlacementControl
리소스가 있는 모든 애플리케이션을 삭제하는 데 사용할 수 있습니다.