OpenShift Red Hat OpenShift on IBM Cloud 클러스터의 데이터 기반 지역 재해 복구
Virtual Private Cloud 4.17 and later
지역 재해 복구는 특정 지역의 이용 불가 상태가 지속되는 동안 비즈니스 연속성을 보장합니다. Red Hat 의 고급 클러스터 관리(ACM)를 사용하여 OpenShift 데이터 파운데이션(ODF) 클러스터에 대한 지역별 재해 복구 솔루션을 구성할 수 있습니다.
각 단계에는 해당 단계를 어떤 클러스터에서 실행해야 하는지 표시하는 라벨이 붙어 있습니다. 다음 범례를 참고로 하십시오.
| 태그 | 클러스터 |
|---|---|
| Hub cluster | 허브 클러스터 (ACM이 설치된 클러스터)에서 수행해야 할 단계. |
| Managed cluster | 각 관리 대상 클러스터 (주 ODF 클러스터 및 보조 ODF 클러스터)에서 수행해야 할 단계. |
이 솔루션의 주요 단계는 다음과 같습니다
- 허브 클러스터를 생성합니다.
- 허브 클러스터에 대한 신뢰할 수 있는 프로필을 생성합니다.
- 관리형 클러스터를 생성합니다.
- 허브 클러스터에 ACM 애드온을 설치하십시오.
- 관리형 클러스터를 ACM으로 가져옵니다.
- 관리 대상 클러스터에 Submariner를 설치하여 클러스터 간 연결을 설정하십시오.
- 관리 대상 클러스터에 ODF를 설치하십시오.
- 지역 재해 복구 정책을 구성합니다.
이 설정을 사용하면 ACM을 설치한 허브 클러스터가 ODF 클러스터를 관리합니다. 주 ODF 클러스터를 사용할 수 없게 되면, 허브 클러스터는 주 ODF 클러스터의 애플리케이션과 데이터를 보조 ODF 클러스터로 이전합니다.
ODF 지역 재해 복구 기능은 구독 기반, ApplicationSet-based, 에서 검색된, 그리고 VM 기반 애플리케이션을 지원합니다. 자세한 내용은 이 페이지 하단의 ‘지원되는 애플리케이션 및 워크로드’를 참조하십시오.
시작하기 전에
클러스터를 생성하기 전에, 클러스터 생성 명령어에 입력해야 할 VPC 및 Cloud Object Storage 관련 정보를 미리 준비해 두십시오.
-
VPC ID를 조회하십시오. 각 클러스터에 사용할 VPC의 ID를 기록해 두십시오.
ibmcloud is vpcs -
특정 VPC에 대한 서브넷 세부 정보를 조회합니다. 각 클러스터에 사용할 서브넷 ID를 기록해 두십시오.
ibmcloud is subnets --vpc VPC_ID -
Cloud Object Storage 인스턴스 목록을 표시하세요.
ibmcloud resource service-instances --service-name cloud-object-storage -
사용하려는 인스턴스의 CRN을 조회합니다.
ID필드의 값을 확인해 주세요.ibmcloud resource service-instance SERVICE_INSTANCE
1단계. 허브 클러스터 생성
Hub cluster
이 클러스터는 ACM을 설치하여 주 ODF 클러스터와 보조 ODF 클러스터를 관리하는 데 사용되는 클러스터입니다. 허브 클러스터에 최소 16 vCPU x 64 GB 의 사용 가능한 컴퓨팅 용량이 확보되어 있는지 확인하십시오.
각 클러스터에 대해 CLI에 --disable-outbound-traffic-protection 매개 변수를 포함하거나 UI에서 아웃바운드 트래픽 보호를 비활성화하는 옵션을 선택하여 아웃바운드 트래픽을 허용해야 합니다.
-
VPC 클러스터 만들기
us-east에 접속하여 ACM을 설치하세요. 이 클러스터는 ODF 클러스터를 관리하는 데 사용할 수 있는 허브 클러스터입니다. 허브 클러스터에 RHCOS를 실행하는 워커 노드가 최소 3개 이상 있고, 사용 가능한 컴퓨팅 용량이 최소 16 vCPU 와 64GB이며, 아웃바운드 트래픽이 비활성화되어 있고, 모든 ACM의 지원 자격 요건 요건을 충족하는지 확인하십시오. 다음 예제 명령은us-east에 ACM용 클러스터를 생성합니다.ibmcloud ks cluster create vpc-gen2 --flavor bx2.16x64 --name acm-hub-cluster-dr-odf --subnet-id SUBNET_ID --vpc-id VPC_ID --zone us-east-2 --version 4.21.31_openshift --workers 3 --cos-instance COS_CRN --disable-outbound-traffic-protection --cni OVNKubernetes -
출력 결과에서 클러스터 ID를 확인하십시오. 나중에 이 단계에서 필요하게 됩니다.
2단계. 허브 클러스터에 대한 신뢰할 수 있는 프로필 생성
Hub cluster
-
신뢰할 수 있는 프로필을 생성합니다.
ibmcloud iam trusted-profile-create acm-operator-profile -
Red Hat OpenShift 컴퓨팅 리소스의
kube-system네임스페이스를 적용 범위로 하는 컴퓨팅 리소스 신뢰 규칙을 생성합니다.ibmcloud iam trusted-profile-rule-create acm-operator-profile \ --name kube-system-rule \ --type Profile-CR \ --conditions claim:namespace,operator:EQUALS,value:kube-system \ --cr-type ROKS_SA -
프로필에 IAM 액세스 정책을 할당합니다.
CLUSTER_ID을 사용자의 허브 클러스터 ID로 대체하십시오.ibmcloud iam trusted-profile-policy-create acm-operator-profile \ --roles Reader,Viewer,Operator,Editor \ --service-name containers-kubernetes \ --service-instance CLUSTER_ID -
허브 클러스터에 신뢰할 수 있는 프로필을 할당합니다. 클러스터에 신뢰할 수 있는 프로필을 할당한 후에는 이를 제거할 수 없습니다.
ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID -
클러스터에 신뢰할 수 있는 프로필 비밀이 생성되었는지 확인하십시오. 이 명령이 완료되는 데 최대 10분이 소요될 수 있습니다. ACM 애드온 설치를 진행하기 전에 비밀번호가 표시될 때까지 기다리십시오. 비밀이 생성되기 전에 다음 단계로 진행하면 ACM 애드온 설치가 실패합니다.
oc get secrets -n kube-system | grep ibm-cloud-credentials -
ODF 버전 4.21 이상을 사용하는 경우, 허브 클러스터에 ‘ OpenShift ’ GitOps 오퍼레이터를 설치하십시오.
-
허브 클러스터의 OpenShift 웹 콘솔에서 Core 플랫폼 관점에서 ‘Ecosystem’ > ‘Software Catalog ’로 이동한 후 Red Hat OpenShift GitOps.
-
이 Red Hat OpenShift GitOps 타일을 클릭하세요.
-
‘운영자 설치’ 페이지에서 설치할 업데이트 채널과 ‘ GitOps ’ 버전을 선택합니다.
-
설치된 네임스페이스를 선택하십시오. 기본 설치 네임스페이스는
openshift-gitops-operator입니다.GitOps 버전 1.10 및 이후 버전부터 기본 네임스페이스가
openshift-operators에서openshift-gitops-operator로 변경되었습니다. -
클러스터 모니터링을 활성화하려면 ‘ 이 네임스페이스에서 ‘운영자 권장 클러스터 모니터링’을 활성화합니다 ’ 확인란을 선택하십시오.
-
설치를 클릭하십시오. Red Hat OpenShift GitOps 클러스터의 모든 네임스페이스에 설치되어 있습니다.
-
‘ Red Hat OpenShift ’ GitOps 연산자가 ‘연산자 > 설치된 연산자’ 목록에 표시되어 있는지, 그리고 ‘상태’가 ‘성공’으로 표시되는지 확인하십시오.
설치가 완료되면 OpenShift GitOps 가
openshift-gitops네임스페이스에 바로 사용할 수 있는 Argo CD 인스턴스를 자동으로 설정하며, 콘솔 도구 모음에 Argo CD 아이콘이 표시됩니다. -
3단계. 관리형 클러스터 생성
Managed cluster
-
us-east에서 RHCOS를 실행하는 워커 노드가 최소 3개 이상이고, 사용 가능한 컴퓨팅 용량이 최소 16 vCPU 와 64 GB이며, 아웃바운드 트래픽 보호 기능이 비활성화된 VPC 클러스터를 생성합니다. 이 클러스터가 기본 관리 ODF 클러스터가 됩니다. 다음 예제 명령어는us-east에 클러스터를 생성합니다.ibmcloud ks cluster create vpc-gen2 --flavor bx2.16x64 --name managed-cluster-1-dr-odf --subnet-id SUBNET_ID --vpc-id VPC_ID --zone us-east-2 --version 4.21.31_openshift --workers 3 --cos-instance COS_CRN --disable-outbound-traffic-protection --cni OVNKubernetes -
jp-tok에서 RHCOS를 실행하는 워커 노드가 최소 3개 이상이고, 사용 가능한 컴퓨팅 용량이 최소 16 vCPU 와 64 GB이며, 아웃바운드 트래픽 보호 기능이 비활성화된 VPC 클러스터를 생성합니다. 이 클러스터가 보조 관리 ODF 클러스터가 됩니다. 고가용성을 위해 보조 클러스터의 네트워크가 기본 클러스터의 네트워크와 겹치지 않도록 하세요. 다음 예제 명령어는jp-tok에 클러스터를 생성합니다.ibmcloud ks cluster create vpc-gen2 --flavor bx2.16x64 --name managed-cluster-2-dr-odf --subnet-id SUBNET_ID --vpc-id VPC_ID --zone jp-tok --version 4.21.31_openshift --workers 3 --cos-instance COS_CRN --disable-outbound-traffic-protection --cni OVNKubernetes
4단계. 허브 클러스터에 ACM 애드온을 설치하십시오
Hub cluster
CLI를 사용하여 허브 클러스터에 ACM 애드온을 설치하십시오.
-
ACM 애드온의 기본 버전을 찾으세요.
ibmcloud oc cluster addon versions -
ACM 추가 기능 옵션을 확인해 보세요. 명령어에서 이전 단계에서 확인한 기본 버전을 지정하십시오. 애드온을 설치할 때 포함하고 싶은 옵션이 있다면 기록해 두세요.
ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION -
애드온을 활성화하려면 해당 명령을 실행하십시오.
billingPlan및isLicenseAccepted매개변수를 반드시 지정해야 합니다.ibmcloud oc cluster addon enable acm --cluster HUB_CLUSTER_ID --param 'billingPlan=PLAN' --param 'isLicenseAccepted=BOOLEAN'명령 매개변수. 각 매개변수 유형에 대한 예시는 아래의 명령어 예시를 참조하십시오.
--cluster- 필수. ACM 애드온을 설치할 허브 클러스터의 ID입니다.
--param 'billingPlan='- 필수. ACM에 대해 선택하려는 요금제입니다. Kubernetes 요금제의 ACM에 대해 ‘
KUBERNETES’을 지정하십시오. --param 'isLicenseAccepted='- 필수. 선택한 요금제의 이용 약관에 동의하려면 이 항목을 ‘
true’로 설정하십시오. 라이선스 약관에 동의하지 않으면 애드온이 정상적으로 설치되지 않습니다. 본 라이선스에 동의함으로써, 귀하는 해당 이용 약관에 동의하며, 선택한 요금제에 포함된 서비스를 이해했음을 확인하는 것입니다.
Kubernetes 용 ACM 요금제를 사용하여 ACM 애드온을 설치하는 명령어 예시.
ibmcloud oc cluster addon enable acm --cluster a5bcde982dfer2nwxq73 --param 'billingPlan=KUBERNETES' --param 'isLicenseAccepted=true' -
애드온이 제대로 설치되었는지 확인하십시오. 다음 출력 결과에 애드온이 표시되기까지 몇 분 정도 걸릴 수 있습니다.
- 허브 클러스터에서 ‘
acmhub’ 리소스가 생성되었는지 확인하십시오.
oc get acmhub ``` 출력 예. ```sh {: screen} NAME AGE acm-auto 1h ``` 1. 허브 클러스터에서 ‘ `acmhub` ’ 상태를 확인하십시오. ```sh {: pre} oc describe acmhub ``` 출력 예. ```sh {: screen} Status Message: ACM installed successfully ``` - 허브 클러스터에서 ‘
5단계. 관리형 클러스터를 ACM으로 가져오기
Hub cluster Managed cluster
두 관리형 클러스터를 모두 ACM으로 가져와 허브 클러스터가 이를 관리할 수 있도록 하십시오.
-
허브 클러스터에 대한 OpenShift 웹 콘솔을 엽니다.
-
‘차량 관리 ’ 화면에서 ‘클러스터 가져오기’를 클릭합니다.
-
첫 번째 관리 대상 클러스터의 이름을 입력하고, 해당되는 경우 클러스터 세트를 선택한 다음, 해당되는 경우 추가 레이블을 입력하십시오.
-
‘가져오기’ 모드 에서는 ‘가져오기 명령을 수동으로 실행’을 선택하고 ‘다음’을 클릭합니다.
-
원하는 경우 자동화 템플릿을 선택한 다음 ‘다음’을 클릭합니다.
-
세부 사항을 확인한 후 ‘명령 생성’을 클릭하세요. 표시된 명령어를 복사하세요.
-
첫 번째 관리형 클러스터에 로그인한 후, 해당 클러스터에 맞게 구성된
kubectl을 사용하여 복사한 명령을 실행합니다. -
두 번째 관리형 클러스터에 대해서도 2~7단계를 반복합니다.
-
플릿 관리 관점에서, 진행하기 전에 관리 대상 클러스터 두 개가 모두 목록에 포함되어 있고 ‘준비됨’ 상태를 표시하는지 확인하십시오.
6단계. 서브마리너 애드온 구성
Hub cluster Managed cluster
두 개의 관리 대상 클러스터 간에 클러스터 간 네트워킹을 설정하려면 Submariner 애드온을 구성하십시오. 사용 중인 인프라 및 클러스터 유형에 따라 다음 옵션 중 하나를 선택하십시오:
- 옵션 1: Transit Gateway (권장) — 가상 서버 인스턴스(VSI) 및 베어 메탈 작업자 노드를 사용하는 Red Hat OpenShift on IBM Cloud 및 Red Hat OpenShift 가상화 서비스(ROVS) 클러스터 모두에서 지원됩니다.
- 옵션 2: 네트워크 부하 분산기(NLB) — VSI 워커 노드가 포함된 Red Hat OpenShift on IBM Cloud 클러스터에서만 지원됩니다.
방법 1: IBM Cloud Transit Gateway 를 사용하여 VPC 연결 (권장)
Hub cluster
고성능의 VPC 간 직접 통신에는 IBM Cloud Transit Gateway 를 사용하십시오. 이 옵션은 VSI 및 베어 메탈 인프라 모두에서 Red Hat OpenShift on IBM Cloud 및 Red Hat OpenShift 가상화 서비스 클러스터를 지원합니다.
-
관리형 클러스터에서 사용하는 VPC를 확인하십시오:
- 다음의 경우 Red Hat OpenShift on IBM Cloud: IBM Cloud 콘솔 > 탐색 메뉴 > 컨테이너 > 클러스터 > 해당 클러스터를 선택한 후 > VPC 를 확인하십시오.
- Red Hat OpenShift 가상화 서비스의 경우: IBM Cloud 콘솔 > 탐색 메뉴 > 인프라 > OpenShift 가상화 > 클러스터 선택 > VPC 를 확인하십시오.
-
Transit Gateway 를 생성하고, 관리형 클러스터의 두 VPC 모두에 연결을 추가합니다:
- IBM Cloud 콘솔 에서 ‘인프라 > 네트워크 > Transit Gateway 로 이동합니다.
- 작성을 클릭하십시오.
- Transit Gateway 이름을 입력하고 리소스 그룹을 선택하세요.
- 경로를 선택하십시오:
- 로컬 라우팅: 관리 대상 클러스터 두 개가 모두 동일한 리전에 있는 경우 이 옵션을 선택하십시오.
- 글로벌 라우팅: 관리형 클러스터가 서로 다른 리전에 배포된 경우 이 옵션을 선택하십시오.
- '연결 '에서 두 VPC에 대한 연결을 모두 추가합니다:
- 연결 1: 네트워크 연결을 위해 VPC를 선택하고, 클러스터 1의 리전을 지정한 다음, 클러스터 1에 사용할 VPC를 선택합니다.
- 연결 2: 네트워크 연결을 위해 VPC를 선택하고, 클러스터 2의 리전을 지정한 다음, 클러스터 2에 사용할 VPC를 선택합니다.
- 작성을 클릭하십시오.
-
허브 클러스터에 ‘ ClusterSet ’ 리소스를 생성하고 관리 대상 클러스터를 추가하십시오:
- 허브 클러스터의 ACM 콘솔에서 [ Fleet Management ] > [Infrastructure ] > [Clusters ] > ClusterSet 로 이동합니다.
- “클러스터 세트 생성”을 클릭하고 클러스터 세트의 이름을 지정합니다(예:
<CLUSTERSET>). - ‘클러스터 할당 관리’를 클릭하고 두 관리 대상 클러스터를 모두 클러스터 세트에 추가하십시오.
-
허브 클러스터에서 Submariner Broker 구성 파일
submariner-broker.yaml을 생성합니다.apiVersion: submariner.io/v1alpha1 kind: Broker metadata: name: submariner-broker namespace: <CLUSTERSET>-broker labels: cluster.open-cluster-management.io/backup: submariner spec: globalnetEnabled: true관리 대상 클러스터 간에 네트워크(포드 및 서비스 CIDR)가 중복되는 경우
globalnetEnabled: true를 설정하십시오. 관리 대상 클러스터 간에 CIDR 범위가 겹치지 않는 경우,globalnetEnabled: false``을 설정하십시오. -
허브 클러스터에 브로커 구성을 적용합니다.
oc apply -f submariner-broker.yaml -
허브 클러스터에서 관리형 클러스터 1에 대한 ‘
SubmarinerConfig’ 사용자 정의 리소스 파일(SubmarinerConfig-mc1.yaml)을 생성합니다.apiVersion: submarineraddon.open-cluster-management.io/v1alpha1 kind: SubmarinerConfig metadata: name: submariner namespace: <MANAGED_CLUSTER1> spec: cableDriver: libreswan forceUDPEncaps: true gatewayConfig: gateways: 2 NATTEnable: false -
허브 클러스터에서 관리형 클러스터 2에 대한 ‘
SubmarinerConfig’ 사용자 정의 리소스 파일(SubmarinerConfig-mc2.yaml)을 생성합니다.apiVersion: submarineraddon.open-cluster-management.io/v1alpha1 kind: SubmarinerConfig metadata: name: submariner namespace: <MANAGED_CLUSTER2> spec: cableDriver: libreswan forceUDPEncaps: true gatewayConfig: gateways: 2 NATTEnable: false -
SubmarinerConfig리소스 두 개를 모두 허브 클러스터에 적용하십시오.oc apply -f SubmarinerConfig-mc1.yaml oc apply -f SubmarinerConfig-mc2.yaml -
허브 클러스터에서 관리형 클러스터 1에 대한 ‘
ManagedClusterAddOn’ 사용자 정의 리소스 파일(ManagedClusterAddOn-mc1.yaml)을 생성합니다.apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: submariner namespace: <MANAGED_CLUSTER1> spec: installNamespace: submariner-operator -
허브 클러스터에서 관리형 클러스터 2에 대한 ‘
ManagedClusterAddOn’ 사용자 정의 리소스 파일(ManagedClusterAddOn-mc2.yaml)을 생성합니다.apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: submariner namespace: <MANAGED_CLUSTER2> spec: installNamespace: submariner-operator -
ManagedClusterAddOn리소스 두 개를 모두 허브 클러스터에 적용하십시오.oc apply -f ManagedClusterAddOn-mc1.yaml oc apply -f ManagedClusterAddOn-mc2.yaml -
ACM 콘솔에서 Submariner 애드온 상태가 ‘정상’으로 표시되는지 확인하십시오.
- ‘함대 관리 > 인프라 > 클러스터 >’로 이동합니다. ClusterSet.
- 클러스터 세트를 선택한 다음 ‘Submariner 애드온’을 클릭하세요.
- 연결 상태가 녹색 체크 표시와 함께 ‘정상’으로 표시되는지 확인하십시오.
-
(선택 사항)
subctlCLI를 사용하여 서브마리너(Submariner)의 연결 및 진단 테스트를 추가로 실행합니다:- 로컬 시스템에
subctlCLI 도구를 설치하세요:
curl -Ls https://get.submariner.io | bash export PATH=$PATH:~/.local/bin echo export PATH=\$PATH:~/.local/bin >> ~/.profile- 관리 대상 클러스터 1에서 게이트웨이 및 라우팅 에이전트 연결 상태를 확인하십시오:
subctl diagnose connections --kubeconfig ./<MANAGED_CLUSTER1_KUBECONFIG>.yaml- 관리 대상 클러스터 2에서 게이트웨이 및 라우팅 에이전트 연결 상태를 확인하십시오:
subctl diagnose connections --kubeconfig ./<MANAGED_CLUSTER2_KUBECONFIG>.yaml- 클러스터 간에 종단 간 연결 테스트 모음을 실행합니다:
subctl verify --context <MANAGED_CLUSTER1_CONTEXT> --tocontext <MANAGED_CLUSTER2_CONTEXT> --only connectivity --verbose --image-override=submariner-nettest=quay.io/submariner/nettest:0.24.1 - 로컬 시스템에
옵션 2: 네트워크 부하 분산기를 사용하여 VPC 연결하기
Hub cluster
네트워크 부하 분산기를 사용하여 ACM 콘솔을 통해 Submariner 애드온을 설치하고 구성하려면 다음 단계를 따르십시오. 이 옵션은 VSI 워커 노드만 포함된 Red Hat OpenShift on IBM Cloud 클러스터에서만 지원됩니다. 더 자세한 내용은 ‘ Red Hat ’ 문서의 “콘솔을 사용하여 Submariner 배포하기” 섹션을 참조하십시오.
- 허브 클러스터의 ACM 콘솔로 이동합니다. ‘차량 관리 ’ > ‘클러스터 ’ > ‘클러스터 세트’를 클릭합니다.
- '클러스터 세트 만들기 '를 클릭합니다. 지시에 따라 두 개의 관리형 클러스터를 클러스터 집합에 추가합니다.
- 클러스터 세트에 서브마리너 애드온을 설치하는 옵션을 클릭합니다.
- 관리되는 클러스터를 애드온 설치 대상 클러스터로 선택합니다.
- 두 클러스터의 구성을 검토할 때, 다음 설정을 그림과 같이 변경하고 나머지는 기본값 그대로 두십시오
globalnetEnabled: true(확인됨)gateways: 2NATTEnable: false(선택 취소됨)cableDriver: vxlan
- 설치를 클릭하십시오.
- 서브마리너 애드온 상태가 정상(초록색 체크 표시)으로 표시될 때까지 기다리세요. 이 과정은 최대 20분 정도 소요될 수 있습니다.
7단계. OpenShift Data Foundation 설치 및 구성
Managed cluster
2개의 관리형 클러스터에 ODF를 설치하고 구성합니다. 기본 및 보조 관리형 클러스터 모두에서 이 단계를 완료해야 합니다.
이 섹션에서 oc 명령어를 실행하기 전에, 컨텍스트가 현재 구성 중인 관리형 클러스터로 설정되어 있는지 확인하십시오. ibmcloud oc cluster config --cluster MANAGED_CLUSTER_NAME_OR_ID --admin 를 실행하여 컨텍스트를 전환한 다음, oc config current-context 로 확인하십시오.
-
관리되는 각 클러스터에 대해, IBM Cloud 콘솔 에서 ‘ OpenShift Data Foundation’ 애드온을 설치하십시오.
- 클러스터의 ‘개요’ 페이지로 이동한 후, 화면을 아래로 스크롤하여 ‘애드온’ 섹션으로 이동합니다.
- “ OpenShift 데이터 기반 ”에서 “설치”를 클릭합니다.
- ‘ NooBaa 멀티클라우드 오브젝트 게이트웨이 배포’ 옆의 확인란을 선택하십시오.
- 확인을 위해 ‘설치’를 다시 클릭하세요.
- 계속 진행하기 전에 ODF 애드온 상태가 ‘활성화 중’에서 ‘정상’ (녹색 체크 표시)으로 변경될 때까지 기다리십시오.
-
ODF가 정상적으로 설치되었는지 확인하십시오. 출력에서 상태가
Ready로 표시되는지 확인합니다.UI의 '정상(Normal )' 상태는 애드온이 배포되었음을 나타내지만, ODF 운영자가 리소스의 초기화 및 등록을 완료하는 데 몇 분이 더 소요될 수 있습니다.
oc get storagecluster -n openshift-storage ocs-storagecluster -o jsonpath='{.status.phase}{"\n"}'
각 관리 대상 클러스터에서 다음 단계를 완료해야 합니다. ibmcloud oc cluster config --cluster MANAGED_CLUSTER_NAME_OR_ID --admin 를 사용하여 컨텍스트를 첫 번째 관리형 클러스터로 전환하고, 이 섹션이 끝날 때까지 모든 단계를 완료한 다음, 두 번째 관리형 클러스터로 전환하여 동일한 절차를 반복하십시오.
-
storageCluster리소스의multiClusterService섹션에 있는ACM Managed Cluster Name을 업데이트하려면 해당 명령을 실행하십시오. 이를 통해 ODF는 GlobalNet 을 사용할 수 있습니다. 자세한 내용은 관리형 클러스터에서 OpenShift Data Foundation 클러스터 만들기를 참조하세요.MANAGED_CLUSTER_NAME을 현재 컨텍스트가 가리키고 있는 클러스터의 이름으로 바꾸십시오.kubectl patch storagecluster -n openshift-storage ocs-storagecluster --type merge -p'{"spec":{"network":{"multiClusterService":{"clusterID":"MANAGED_CLUSTER_NAME","enabled":true}}}}'출력 예.
storagecluster.ocs.openshift.io/ocs-storagecluster patched -
서비스 내보내기를 확인합니다. 출력에 표시되려면 몇 분 정도 걸릴 수 있습니다.
oc get serviceexport -n openshift-storage출력 예:
NAME AGE rook-ceph-mon-d 4d14h rook-ceph-mon-e 4d14h rook-ceph-mon-f 4d14h rook-ceph-osd-0 4d14h rook-ceph-osd-1 4d14h rook-ceph-osd-2 4d14h -
ocs-provider-server에 대한 서비스 내보내기를 생성합니다.oc apply -f - <<EOF apiVersion: multicluster.x-k8s.io/v1alpha1 kind: ServiceExport metadata: name: ocs-provider-server namespace: openshift-storage EOF출력 예.
serviceexport.multicluster.x-k8s.io/ocs-provider-server created -
명령을 실행하여
storageCluster리소스를 업데이트하여 생성한ocs-provider-server서비스 내보내기를 사용하도록 합니다.oc annotate storagecluster ocs-storagecluster -n openshift-storage ocs.openshift.io/api-server-exported-address=MANAGED_CLUSTER_NAME.ocs-provider-server.openshift-storage.svc.clusterset.local:50051.출력 예.
storagecluster.ocs.openshift.io/ocs-storagecluster annotated -
storageCluster리소스가 준비되었는지 확인합니다.oc get storagecluster -n openshift-storage출력 예.
NAME PHASE ocs-storagecluster Ready
8단계. 지역 재해 복구 정책 구성
Hub cluster
허브 클러스터에 ODF 멀티클러스터 오케스트레이터를 설치하고, 관리 대상 클러스터 두 개 간에 미러링을 가능하게 하는 재해 복구(DR) 정책을 생성하십시오.
-
허브 클러스터에 ODF 멀티클러스터 오케스트레이터를 설치하십시오.
- 아직 설치하지 않았다면, 허브 클러스터에 ‘ OpenShift ’ GitOps 오퍼레이터를 설치하십시오. 설치 단계에 대해서는 의 ‘2단계’ 마지막 부분을 참조하십시오. 허브 클러스터 에 대한 신뢰할 수 있는 프로필을 생성합니다.
- 허브 클러스터의 OpenShift 웹 콘솔에서 Core 플랫폼 보기를 열고, ‘Ecosystem’ > ‘Software Catalog ’로 이동한 다음 ‘ODF Multicluster Orchestrator ’를 검색하십시오.
- ODF 멀티클러스터 오케스트레이터 타일을 클릭합니다. 이전 섹션에서 관리 대상 클러스터에 설치한 ODF 버전과 동일한 버전 번호를 선택해야 합니다. 나머지 기본 설정은 모두 그대로 두고 ‘설치’를 클릭하세요.
- 운영자 리소스가 ‘
openshift-operators’ 프로젝트에 설치되어 있고 모든 네임스페이스에서 사용할 수 있도록 하십시오. 확인을 위해 ‘설치’를 다시 클릭하세요.
ODF 멀티클러스터 오케스트레이터는 또한 종속성으로 허브 클러스터에 ‘ OpenShift ’ DR 허브 오퍼레이터를 설치합니다.
-
운영자 파드가 실행 중인지 확인하여 설치를 확인합니다. 이 명령을 실행하기 전에 CLI 컨텍스트가 허브 클러스터로 설정되어 있는지 확인하십시오.
oc get pods -n openshift-operators출력 예.
NAME READY STATUS RESTARTS AGE odf-multicluster-console-6845b795b9-blxrn 1/1 Running 0 4d20h odfmo-controller-manager-f9d9dfb59-jbrsd 1/1 Running 0 4d20h ramen-hub-operator-6fb887f885-fss4w 2/2 Running 0 4d20h -
허브 클러스터에서 동기화 간격을 5분으로 설정하고, 매개변수에 각 관리 대상 클러스터를 지정하여 DR 정책을 생성하십시오. 이렇게 하면 관리형 클러스터 양쪽에 NooBaa 객체 버킷이 생성되며, 볼륨 복제를 위한 ODF Ceph 블록 풀 미러링이 활성화됩니다.
-
허브 클러스터의 OpenShift 웹 콘솔에서 ‘플릿 관리’ 관점에서 ‘데이터 서비스 > 재해 복구 > 정책 > DRPolicy 생성 ’으로 이동합니다.
-
다음 매개 변수가 포함된 DR 정책을 만듭니다.
- 연결된 클러스터: PRIMARY_MANAGED_CLUSTER_NAME, SECONDARY_MANAGED_CLUSTER_NAME
- 복제 정책: 비동기
- 복제 간격: 5m
- 해당되는 경우, [ 고급 설정 ]에서 [ 복원 및 복제된 PersistentVolumeClaims 에 대한 재해 복구 지원 활성화 (Data Foundation 전용)]를 선택하십시오.
Red Hat 이 옵션은 클론되거나 복원된 RBD 볼륨이 적극적으로 지원되는, 탐지된 애플리케이션 및 환경에서만 사용해야 한다고 명시하고 있습니다.
-
-
허브 클러스터 에서 다음 명령을 실행하여 DR 정책이 생성되었고 관리 대상 클러스터에 적용되었는지 확인하십시오. 이 명령어를 실행하기 전에 CLI 컨텍스트가 허브 클러스터로 설정되어 있는지 확인하십시오.
ibmcloud oc cluster config --cluster HUB_CLUSTER_NAME --adminoc get drpolicy DRPOLICY_NAME -o jsonpath='{.status.conditions[].reason}{"\n"}'출력 예.
Succeededoc get drclusters출력 예.
NAME AGE managed-cluster1 4m42s managed-cluster2 4m42s -
관리 대상 각 클러스터 에서 재해 복구(DR) 정책이 적용되었으며 정상 상태인지 확인하십시오. 이 명령어를 실행하기 전에 CLI 컨텍스트를 각 관리 대상 클러스터로 전환하십시오.
ibmcloud oc cluster config --cluster MANAGED_CLUSTER_NAME --adminoc get csv,pod -n openshift-dr-system출력 예.
NAME DISPLAY VERSION REPLACES PHASE clusterserviceversion.operators.coreos.com/odr-cluster-operator.v4.15.0 Openshift DR Cluster Operator 4.15.0 Succeeded clusterserviceversion.operators.coreos.com/volsync-product.v0.8.0 VolSync 0.8.0 Succeeded NAME READY STATUS RESTARTS AGE pod/ramen-dr-cluster-operator-6467cf5d4c-cc8kz 2/2 Running 0 3d12hoc get cephblockpool ocs-storagecluster-cephblockpool -n openshift-storage -o jsonpath='{.status.mirroringStatus.summary}{"\n"}'출력 예.
{"daemon_health":"OK","health":"OK","image_health":"OK","states":{}} -
선택 사항입니다: ODF 지역 재해 복구 기능을 향상시키기 위해 설치할 수 있는 운영자를 검토합니다.
-
선택 사항입니다: 재해 복구 구성을 테스트합니다.
ODF 지역 재해 복구를 위한 선택적 운영자
ACM 허브 또는 관리형 클러스터에 설치할 수 있는 옵션 운영자를 검토하여 ODF 지역 재해 복구 기능을 강화하세요. IBM 은 이러한 운영자를 관리할 책임이 없습니다.
업데이트, 모니터링, 복구 및 재설치를 포함하되 이에 국한되지 않는 이러한 운영자를 관리할 책임은 회원님에게 있습니다.
| 운영자 | 설명 | 추가 정보 |
|---|---|---|
| OpenShift 데이터 보호용 API ( OADP ) 운영자 |
|
데이터 보호를 위한 OpenShift API 소개 |
재해 복구 구성 테스트
재해 복구 솔루션을 테스트할 수 있는 샘플 애플리케이션을 만듭니다. 자세한 내용은 재해 복구 애플리케이션 테스트를 위한 샘플 애플리케이션 만들기를 참고하세요.
-
ACM 콘솔에서 구독 기반 애플리케이션을 배포합니다. 애플리케이션의 토폴로지 탭은 모든 애플리케이션 리소스가 성공적으로 배치되면 녹색으로 표시됩니다.
-
애플리케이션 페이지에서, 작업 > 데이터 정책 관리로 이동합니다.
-
앞서 만든 DR 정책을 이 애플리케이션에 할당합니다.
-
응용 프로그램 포드가 주 클러스터에서 실행되고 있는지 확인합니다.
-
애플리케이션 페이지에서, 작업 > 애플리케이션 페일오버로 이동합니다. 보조 ODF 클러스터를 대상 클러스터로 선택합니다. 시작을 클릭합니다.
-
애플리케이션 포드가 보조 클러스터로 이동되었는지 확인합니다.
-
애플리케이션 페이지에서, 작업 > 애플리케이션 재배치 로 이동합니다. 주요 ODF 클러스터를 대상 클러스터로 선택합니다. 시작을 클릭합니다.
-
애플리케이션 포드가 기본 클러스터로 다시 이동되었는지 확인합니다.
ODF 지역 재해 복구 환경 업그레이드
ODF-RDR 환경의 구성 요소를 언제, 어떻게 업그레이드해야 하는지에 대한 자세한 내용은 “ODF 지역 재해 복구 환경 업그레이드”를 참조하십시오.
문제점 해결
ODF 지역 재해 복구 구성에 문제가 발생하면, ‘ OpenShift 데이터 기반 지역 재해 복구 구성 확인’ 문서를 참조하여 설정된 각 구성 요소의 상태를 확인하십시오.
지원되는 애플리케이션 및 워크로드
설정을 완료한 후, ‘지역별 재해 복구’를 적용할 수 있는 애플리케이션 및 워크로드 유형을 확인하십시오.
- 구독 기반
- 애플리케이션이 외부 소스(예: GitHub, Helm 리포지토리 또는 Object Storage )에서 배포됩니다.
- 자세한 내용은 Red Hat 문서에서 샘플 구독 기반 애플리케이션 만들기를 참조하세요.
- ApplicationSet-based
- 애플리케이션은 지속적인 배포를 관리하는 GitOps 오퍼레이터를 통해 GitHub 저장소에서 배포됩니다. 여기에는 두 가지 하위 유형이 포함됩니다:
-
- GitOps 풀 모델( ArgoCD pull): 관리형 클러스터는 GitOps 연산자를 사용하여 GitHub 에서 애플리케이션을 가져옵니다.
-
- GitOps 푸시 모델( ArgoCD push): GitOps 운영자는 배포 및 업데이트 중에 애플리케이션을 관리형 클러스터로 푸시합니다.
- 자세한 내용은 Red Hat 문서에서 애플리케이션 세트 기반 애플리케이션 만들기를 참조하세요.
- GitOps 하위 유형에 대한 자세한 내용은 Red Hat 문서에서 푸시 및 풀 모델을 사용한 Argo CD 배포를 참조하세요.
- 검색된 애플리케이션
- 애플리케이션이 ACM을 사용하지 않고 관리형 클러스터에 사전 배포되었습니다. 이 경우 사전 설치된 앱에 대해 ACM 검색을 사용하면서 DR 정책을 계속 구성할 수 있습니다.
- 자세한 내용은 Red Hat 문서에서 검색된 애플리케이션에 대한 재해 복구 보호를 참조하세요.
- VM 배포를 포함하는 애플리케이션
- VM-기반 애플리케이션이 ACM 콘솔에서 관리되는 클러스터에 배포됩니다. 앞서 설명한 바와 같이, 이러한 VM 애플리케이션은 구독 기반, ApplicationSet-based, 또는 검색 가능한 형태일 수 있습니다. 이러한 유형의 애플리케이션에 대해서는 ACM 콘솔에서 ‘ VM ’ 작업의 시작, 중지, 일시 중지 및 삭제 옵션을 사용할 수 있습니다.
- 자세한 내용은 Red Hat 문서에서 가상화를 위한 고급 클러스터 관리(Red Hat )를 참조하세요.