3.11. 재해 복구 솔루션 테스트를 위한 샘플 애플리케이션 생성
OpenShift Data Foundation 재해 복구(DR) 솔루션은 RHACM에서 관리하는 서브스크립션 기반 및 ApplicationSet 기반 애플리케이션에 대한 재해 복구를 지원합니다. 자세한 내용은 서브스크립션 및 애플리케이션 세트 설명서를 참조하십시오.
다음 섹션에서는 애플리케이션을 생성하고 DRPolicy를 애플리케이션에 적용하는 방법을 자세히 설명합니다.
클러스터 관리자 권한이 없는 OpenShift 사용자는 재해 복구 작업을 실행하기 위해 애플리케이션 사용자에게 필요한 권한을 할당하는 방법에 대한 지식 문서를 참조하십시오.
cluster-admin 권한이 없는 OpenShift 사용자는 ApplicationSet 기반 애플리케이션을 생성할 수 없습니다.
3.11.1. 서브스크립션 기반 애플리케이션 링크 복사링크가 클립보드에 복사되었습니다!
3.11.1.1. 샘플 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
기본 관리 클러스터에서 보조 관리 클러스터로 장애 조치를 테스트하고 재배치 하려면 샘플 애플리케이션이 필요합니다.
사전 요구 사항
- Red Hat OpenShift GitOps Operator가 Hub 클러스터에 설치되어 있는지 확인합니다. 자세한 내용은 RHACM 설명서를 참조하십시오.
- 일반 사용을 위해 애플리케이션을 생성할 때 애플리케이션이 하나의 클러스터에만 배포되었는지 확인합니다.
-
busybox라는 샘플 애플리케이션을 예로 사용합니다. - 애플리케이션이 장애되거나 재배치될 때 트래픽 리디렉션을 위해 GTM(Global Traffic Manager) 또는 GLSB(Global Server Load Balancing) 서비스를 사용하여 애플리케이션의 모든 외부 경로가 구성되었는지 확인합니다.
모범 사례로 함께 속해 있는 RHACM(Red Hat Advanced Cluster Management) 서브스크립션을 그룹화하여 DR에 대한 단일 배치 규칙을 그룹로 보호하는 것이 좋습니다. 장애 조치(failover) 및 재배치와 같은 향후 DR 작업에 대한 서브스크립션의 논리적 그룹화를 위한 단일 애플리케이션으로 추가로 생성합니다.
참고관련이 없는 서브스크립션이 배치 작업에 대해 동일한 배치 규칙을 참조하는 경우 DR 워크플로우는 배치 규칙을 참조하는 모든 서브스크립션을 제어하므로 DR 보호도 됩니다.
절차
- Hub 클러스터에서 애플리케이션으로 이동하여 애플리케이션 생성 을 클릭합니다.
- Subscription 으로 type을 선택합니다.
-
애플리케이션 이름 (예:
busybox)과 네임스페이스 (예:busybox-sample)를 입력합니다. -
Repository location for resources 섹션에서 Repository type
Git을 선택합니다. 샘플 애플리케이션의 Git 리포지토리 URL,
busyboxPod 및 PVC 리소스가 생성될 github 분기 및 경로 를 입력합니다.분기 가
릴리스-4.13이고 Path 는busybox-odr-metro인https://github.com/red-hat-storage/ocm-ramen-samples로 샘플 애플리케이션 리포지터리를 사용합니다.지정된 모든 레이블이 있는 클러스터에 애플리케이션 리소스 배포가 표시될 때까지 양식에서 아래로 스크롤합니다.
- 글로벌 클러스터 세트 또는 사용자 환경에 대한 올바른 관리 클러스터를 포함하는 클러스터를 선택합니다.
- 값이 관리되는 클러스터 이름으로 설정된 & 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
3.11.1.2. 샘플 애플리케이션에 DRPolicy 적용 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- DRPolicy에서 참조하는 두 관리 클러스터에 모두 연결할 수 있는지 확인합니다. 그렇지 않은 경우 애플리케이션은 둘 다 온라인 상태가 될 때 DR 보호되지 않습니다.
절차
- Hub 클러스터에서 All Clusters 로 이동합니다.
- Data Services 로 이동한 다음 데이터 정책을 클릭합니다.
- DRPolicy 끝에 있는 작업 메뉴를 클릭하여 사용 가능한 작업 목록을 확인합니다.
- Assign DRPolicy 를 클릭합니다.
-
Assign DRPolicy modal이 표시되면
busybox애플리케이션을 선택하고appname=busybox로 PVC 레이블을 입력합니다. - 적용을 클릭합니다.
DRPlacementControl또는DRPC가 Hub 클러스터 의busybox-sample네임스페이스에서 생성되었고 CURRENTSTATE 가Deployed로 표시되는지 확인합니다. 이 리소스는 이 애플리케이션의 장애 조치(failover) 및 재배치 작업 모두에 사용됩니다.참고yaml의
PlacementRef,DRPolicyRef및PVCSelector필드 값 편집은 지원되지 않습니다.oc get drpc -n busybox-sample
$ oc get drpc -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME AGE PREFERREDCLUSTER FAILOVERCLUSTER DESIREDSTATE CURRENTSTATE busybox-placement-1-drpc 6m59s ocp4perf1 Deployed
NAME AGE PREFERREDCLUSTER FAILOVERCLUSTER DESIREDSTATE CURRENTSTATE busybox-placement-1-drpc 6m59s ocp4perf1 DeployedCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
애플리케이션에 DRPolicy를 적용한 후 drpc yaml 출력에서
ClusterDataProtected가True로 설정되어 있는지 확인합니다.
3.11.2. ApplicationSet 기반 애플리케이션 링크 복사링크가 클립보드에 복사되었습니다!
3.11.2.1. ApplicationSet 기반 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Red Hat OpenShift GitOps Operator가 Hub 클러스터에 설치되어 있는지 확인합니다. 자세한 내용은 RHACM 설명서를 참조하십시오.
기본 및 보조 관리 클러스터가 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의 애플리케이션 배치 허용 오차 구성 을 참조하십시오.
절차
-
Hub 클러스터에서 모든 클러스터
애플리케이션으로 이동하여 애플리케이션 생성을 클릭합니다. - 애플리케이션 세트로 유형을 선택합니다.
- 일반 단계 1에서 애플리케이션 세트 이름을 입력합니다.
-
Argo 서버
openshift-gitops및 Requeue time 을180초로 선택합니다. - 다음을 클릭합니다.
-
Repository location for resources 섹션에서 Repository type
Git을 선택합니다. 샘플 애플리케이션의 Git 리포지토리 URL, busybox Pod 및 PVC 리소스가 생성될 github 분기 및 경로를 입력합니다.
- 샘플 애플리케이션 리포지토리를 https://github.com/red-hat-storage/ocm-ramen-samples로 사용
-
리버전을
릴리스-4.13으로 선택 -
busybox-odr-metro로 경로를 선택합니다.
- Remote namespace value.(예: busybox-sample)을 입력하고 다음을 클릭합니다.
Sync policy settings를 선택하고 다음을 클릭합니다.
하나 이상의 옵션을 선택할 수 있습니다.
- 값이 관리되는 클러스터 이름으로 설정된 & lt;name> 레이블을 추가합니다.
- 다음을 클릭합니다.
- 설정 세부 사항을 검토하고 Submit 을 클릭합니다.
3.11.2.2. DRPolicy를 샘플 ApplicationSet 기반 애플리케이션에 적용 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- DRPolicy에서 참조하는 두 관리 클러스터에 모두 연결할 수 있는지 확인합니다. 그렇지 않은 경우 애플리케이션은 둘 다 온라인 상태가 될 때 DR 보호되지 않습니다.
절차
- Hub 클러스터에서 All Clusters 로 이동합니다.
- Data Services 로 이동한 다음 데이터 정책을 클릭합니다.
- DRPolicy 끝에 있는 작업 메뉴를 클릭하여 사용 가능한 작업 목록을 확인합니다.
- 애플리케이션 세트에 대한 정책 관리를 클릭합니다.
-
PVC 레이블을
appname=busybox로 입력합니다. -
변경 사항 저장을 클릭합니다. 애플리케이션에는
보호됨이 태그됩니다. - 적용을 클릭합니다.
DRPlacementControl또는DRPC가 Hub 클러스터 의busybox-sample네임스페이스에서 생성되었고 CURRENTSTATE 가Deployed로 표시되는지 확인합니다. 이 리소스는 이 애플리케이션의 장애 조치(failover) 및 재배치 작업 모두에 사용됩니다.참고yaml의
PlacementRef,DRPolicyRef및PVCSelector필드 값 편집은 지원되지 않습니다.oc get drpc -n busybox-sample
$ oc get drpc -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예:
NAME AGE PREFERREDCLUSTER FAILOVERCLUSTER DESIREDSTATE CURRENTSTATE busybox-placement-1-drpc 6m59s ocp4perf1 Deployed
NAME AGE PREFERREDCLUSTER FAILOVERCLUSTER DESIREDSTATE CURRENTSTATE busybox-placement-1-drpc 6m59s ocp4perf1 DeployedCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
애플리케이션에 DRPolicy를 적용한 후 drpc yaml 출력에서
ClusterDataProtected가True로 설정되어 있는지 확인합니다.
3.11.3. 샘플 애플리케이션 삭제 링크 복사링크가 클립보드에 복사되었습니다!
RHACM 콘솔을 사용하여 샘플 애플리케이션 busybox 를 삭제할 수 있습니다.
장애 조치(failover) 및 재배치 테스트가 완료되고 애플리케이션을 RHACM 및 관리 클러스터에서 제거할 준비가 될 때까지 샘플 애플리케이션을 삭제하는 방법은 실행할 수 없습니다.
절차
- RHACM 콘솔에서 Applications (애플리케이션)로 이동합니다.
-
삭제할 샘플 애플리케이션(예:
busybox)을 검색합니다. - 삭제할 애플리케이션 옆에 있는 작업 메뉴(ovn) 를 클릭합니다.
애플리케이션 삭제를 클릭합니다.
Delete application 을 선택하면 애플리케이션 관련 리소스도 삭제해야 하는지 묻는 새 화면이 나타납니다.
- 애플리케이션 관련 리소스 제거 확인란을 선택하여 Subscription 및 PlacementRule을 삭제합니다.
- 삭제를 클릭합니다. 그러면 기본 관리 클러스터(또는 애플리케이션이 실행 중인 클러스터)에서 busybox 애플리케이션이 삭제됩니다.
RHACM 콘솔을 사용하여 삭제된 리소스 외에도
busybox애플리케이션을 삭제한 후DRPlacementControl도 삭제해야 합니다.-
Hub 클러스터용 OpenShift 웹 콘솔에 로그인하고
busybox-sample프로젝트의 설치된 Operator로 이동합니다. - OpenShift DR Hub Operator 를 클릭한 다음 DRPlacementControl 탭을 클릭합니다.
-
삭제하려는
busybox애플리케이션 DRPlacementControl 옆에 있는 작업 메뉴(ECDHE) 를 클릭합니다. - Delete DRPlacementControl 을 클릭합니다.
- 삭제를 클릭합니다.
-
Hub 클러스터용 OpenShift 웹 콘솔에 로그인하고
이 프로세스는 DRPlacementControl 리소스가 있는 모든 애플리케이션을 삭제하는 데 사용할 수 있습니다.