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 클러스터)에서 수행해야 할 단계.

이 솔루션의 주요 단계는 다음과 같습니다

  1. 허브 클러스터를 생성합니다.
  2. 허브 클러스터에 대한 신뢰할 수 있는 프로필을 생성합니다.
  3. 관리형 클러스터를 생성합니다.
  4. 허브 클러스터에 ACM 애드온을 설치하십시오.
  5. 관리형 클러스터를 ACM으로 가져옵니다.
  6. 관리 대상 클러스터에 Submariner를 설치하여 클러스터 간 연결을 설정하십시오.
  7. 관리 대상 클러스터에 ODF를 설치하십시오.
  8. 지역 재해 복구 정책을 구성합니다.

이 설정을 사용하면 ACM을 설치한 허브 클러스터가 ODF 클러스터를 관리합니다. 주 ODF 클러스터를 사용할 수 없게 되면, 허브 클러스터는 주 ODF 클러스터의 애플리케이션과 데이터를 보조 ODF 클러스터로 이전합니다.

ODF 지역 재해 복구 기능은 구독 기반, ApplicationSet-based, 에서 검색된, 그리고 VM 기반 애플리케이션을 지원합니다. 자세한 내용은 이 페이지 하단의 ‘지원되는 애플리케이션 및 워크로드’를 참조하십시오.

시작하기 전에

클러스터를 생성하기 전에, 클러스터 생성 명령어에 입력해야 할 VPC 및 Cloud Object Storage 관련 정보를 미리 준비해 두십시오.

  1. VPC ID를 조회하십시오. 각 클러스터에 사용할 VPC의 ID를 기록해 두십시오.

    ibmcloud is vpcs
    
  2. 특정 VPC에 대한 서브넷 세부 정보를 조회합니다. 각 클러스터에 사용할 서브넷 ID를 기록해 두십시오.

    ibmcloud is subnets --vpc VPC_ID
    
  3. Cloud Object Storage 인스턴스 목록을 표시하세요.

    ibmcloud resource service-instances --service-name cloud-object-storage
    
  4. 사용하려는 인스턴스의 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에서 아웃바운드 트래픽 보호를 비활성화하는 옵션을 선택하여 아웃바운드 트래픽을 허용해야 합니다.

  1. 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
    
  2. 출력 결과에서 클러스터 ID를 확인하십시오. 나중에 이 단계에서 필요하게 됩니다.

2단계. 허브 클러스터에 대한 신뢰할 수 있는 프로필 생성

Hub cluster

  1. 신뢰할 수 있는 프로필을 생성합니다.

    ibmcloud iam trusted-profile-create acm-operator-profile
    
  2. 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
    
  3. 프로필에 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
    
  4. 허브 클러스터에 신뢰할 수 있는 프로필을 할당합니다. 클러스터에 신뢰할 수 있는 프로필을 할당한 후에는 이를 제거할 수 없습니다.

    ibmcloud oc experimental trusted-profile set --cluster CLUSTER_NAME_OR_ID --trusted-profile TRUSTED_PROFILE_ID
    
  5. 클러스터에 신뢰할 수 있는 프로필 비밀이 생성되었는지 확인하십시오. 이 명령이 완료되는 데 최대 10분이 소요될 수 있습니다. ACM 애드온 설치를 진행하기 전에 비밀번호가 표시될 때까지 기다리십시오. 비밀이 생성되기 전에 다음 단계로 진행하면 ACM 애드온 설치가 실패합니다.

    oc get secrets -n kube-system | grep ibm-cloud-credentials
    
  6. ODF 버전 4.21 이상을 사용하는 경우, 허브 클러스터에 ‘ OpenShift ’ GitOps 오퍼레이터를 설치하십시오.

    1. 허브 클러스터의 OpenShift 웹 콘솔에서 Core 플랫폼 관점에서 ‘Ecosystem’ > ‘Software Catalog ’로 이동한 후 Red Hat OpenShift GitOps.

    2. 이 Red Hat OpenShift GitOps 타일을 클릭하세요.

    3. ‘운영자 설치’ 페이지에서 설치할 업데이트 채널과 ‘ GitOps ’ 버전을 선택합니다.

    4. 설치된 네임스페이스를 선택하십시오. 기본 설치 네임스페이스는 openshift-gitops-operator 입니다.

      GitOps 버전 1.10 및 이후 버전부터 기본 네임스페이스가 openshift-operators 에서 openshift-gitops-operator 로 변경되었습니다.

    5. 클러스터 모니터링을 활성화하려면 ‘ 이 네임스페이스에서 ‘운영자 권장 클러스터 모니터링’을 활성화합니다 ’ 확인란을 선택하십시오.

    6. 설치를 클릭하십시오. Red Hat OpenShift GitOps 클러스터의 모든 네임스페이스에 설치되어 있습니다.

    7. ‘ Red Hat OpenShift ’ GitOps 연산자가 ‘연산자 > 설치된 연산자’ 목록에 표시되어 있는지, 그리고 ‘상태’가 ‘성공’으로 표시되는지 확인하십시오.

    설치가 완료되면 OpenShift GitOps 가 openshift-gitops 네임스페이스에 바로 사용할 수 있는 Argo CD 인스턴스를 자동으로 설정하며, 콘솔 도구 모음에 Argo CD 아이콘이 표시됩니다.

3단계. 관리형 클러스터 생성

Managed cluster

  1. 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
    
  2. 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 애드온을 설치하십시오.

  1. ACM 애드온의 기본 버전을 찾으세요.

    ibmcloud oc cluster addon versions
    
  2. ACM 추가 기능 옵션을 확인해 보세요. 명령어에서 이전 단계에서 확인한 기본 버전을 지정하십시오. 애드온을 설치할 때 포함하고 싶은 옵션이 있다면 기록해 두세요.

    ibmcloud oc cluster addon options --addon acm --version DEFAULT_VERSION
    
  3. 애드온을 활성화하려면 해당 명령을 실행하십시오. 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'
    
  4. 애드온이 제대로 설치되었는지 확인하십시오. 다음 출력 결과에 애드온이 표시되기까지 몇 분 정도 걸릴 수 있습니다.

    1. 허브 클러스터에서 ‘ 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으로 가져와 허브 클러스터가 이를 관리할 수 있도록 하십시오.

  1. 허브 클러스터에 대한 OpenShift 웹 콘솔을 엽니다.

  2. ‘차량 관리 ’ 화면에서 ‘클러스터 가져오기’를 클릭합니다.

  3. 첫 번째 관리 대상 클러스터의 이름을 입력하고, 해당되는 경우 클러스터 세트를 선택한 다음, 해당되는 경우 추가 레이블을 입력하십시오.

  4. ‘가져오기’ 모드 에서는 ‘가져오기 명령을 수동으로 실행’을 선택하고 ‘다음’을 클릭합니다.

  5. 원하는 경우 자동화 템플릿을 선택한 다음 ‘다음’을 클릭합니다.

  6. 세부 사항을 확인한 후 ‘명령 생성’을 클릭하세요. 표시된 명령어를 복사하세요.

  7. 첫 번째 관리형 클러스터에 로그인한 후, 해당 클러스터에 맞게 구성된 kubectl 을 사용하여 복사한 명령을 실행합니다.

  8. 두 번째 관리형 클러스터에 대해서도 2~7단계를 반복합니다.

  9. 플릿 관리 관점에서, 진행하기 전에 관리 대상 클러스터 두 개가 모두 목록에 포함되어 있고 ‘준비됨’ 상태를 표시하는지 확인하십시오.

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 가상화 서비스 클러스터를 지원합니다.

  1. 관리형 클러스터에서 사용하는 VPC를 확인하십시오:

    • 다음의 경우 Red Hat OpenShift on IBM Cloud: IBM Cloud 콘솔 > 탐색 메뉴 > 컨테이너 > 클러스터 > 해당 클러스터를 선택한 후 > VPC 를 확인하십시오.
    • Red Hat OpenShift 가상화 서비스의 경우: IBM Cloud 콘솔 > 탐색 메뉴 > 인프라 > OpenShift 가상화 > 클러스터 선택 > VPC 를 확인하십시오.
  2. Transit Gateway 를 생성하고, 관리형 클러스터의 두 VPC 모두에 연결을 추가합니다:

    1. IBM Cloud 콘솔 에서 ‘인프라 > 네트워크 > Transit Gateway 로 이동합니다.
    2. 작성을 클릭하십시오.
    3. Transit Gateway 이름을 입력하고 리소스 그룹을 선택하세요.
    4. 경로를 선택하십시오:
      • 로컬 라우팅: 관리 대상 클러스터 두 개가 모두 동일한 리전에 있는 경우 이 옵션을 선택하십시오.
      • 글로벌 라우팅: 관리형 클러스터가 서로 다른 리전에 배포된 경우 이 옵션을 선택하십시오.
    5. '연결 '에서 두 VPC에 대한 연결을 모두 추가합니다:
      • 연결 1: 네트워크 연결을 위해 VPC를 선택하고, 클러스터 1의 리전을 지정한 다음, 클러스터 1에 사용할 VPC를 선택합니다.
      • 연결 2: 네트워크 연결을 위해 VPC를 선택하고, 클러스터 2의 리전을 지정한 다음, 클러스터 2에 사용할 VPC를 선택합니다.
    6. 작성을 클릭하십시오.
  3. 허브 클러스터에 ‘ ClusterSet ’ 리소스를 생성하고 관리 대상 클러스터를 추가하십시오:

    1. 허브 클러스터의 ACM 콘솔에서 [ Fleet Management ] > [Infrastructure ] > [Clusters ] > ClusterSet 로 이동합니다.
    2. “클러스터 세트 생성”을 클릭하고 클러스터 세트의 이름을 지정합니다(예: <CLUSTERSET>).
    3. ‘클러스터 할당 관리’를 클릭하고 두 관리 대상 클러스터를 모두 클러스터 세트에 추가하십시오.
  4. 허브 클러스터에서 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``을 설정하십시오.

  5. 허브 클러스터에 브로커 구성을 적용합니다.

    oc apply -f submariner-broker.yaml
    
  6. 허브 클러스터에서 관리형 클러스터 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
    
  7. 허브 클러스터에서 관리형 클러스터 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
    
  8. SubmarinerConfig 리소스 두 개를 모두 허브 클러스터에 적용하십시오.

    oc apply -f SubmarinerConfig-mc1.yaml
    oc apply -f SubmarinerConfig-mc2.yaml
    
  9. 허브 클러스터에서 관리형 클러스터 1에 대한 ‘ ManagedClusterAddOn ’ 사용자 정의 리소스 파일( ManagedClusterAddOn-mc1.yaml )을 생성합니다.

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: ManagedClusterAddOn
    metadata:
      name: submariner
      namespace: <MANAGED_CLUSTER1>
    spec:
      installNamespace: submariner-operator
    
  10. 허브 클러스터에서 관리형 클러스터 2에 대한 ‘ ManagedClusterAddOn ’ 사용자 정의 리소스 파일( ManagedClusterAddOn-mc2.yaml )을 생성합니다.

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: ManagedClusterAddOn
    metadata:
      name: submariner
      namespace: <MANAGED_CLUSTER2>
    spec:
      installNamespace: submariner-operator
    
  11. ManagedClusterAddOn 리소스 두 개를 모두 허브 클러스터에 적용하십시오.

    oc apply -f ManagedClusterAddOn-mc1.yaml
    oc apply -f ManagedClusterAddOn-mc2.yaml
    
  12. ACM 콘솔에서 Submariner 애드온 상태가 ‘정상’으로 표시되는지 확인하십시오.

    1. ‘함대 관리 > 인프라 > 클러스터 >’로 이동합니다. ClusterSet.
    2. 클러스터 세트를 선택한 다음 ‘Submariner 애드온’을 클릭하세요.
    3. 연결 상태가 녹색 체크 표시와 함께 ‘정상’으로 표시되는지 확인하십시오.
  13. (선택 사항) subctl CLI를 사용하여 서브마리너(Submariner)의 연결 및 진단 테스트를 추가로 실행합니다:

    1. 로컬 시스템에 subctl CLI 도구를 설치하세요:
       curl -Ls https://get.submariner.io | bash
       export PATH=$PATH:~/.local/bin
       echo export PATH=\$PATH:~/.local/bin >> ~/.profile
    
    1. 관리 대상 클러스터 1에서 게이트웨이 및 라우팅 에이전트 연결 상태를 확인하십시오:
       subctl diagnose connections --kubeconfig ./<MANAGED_CLUSTER1_KUBECONFIG>.yaml
    
    1. 관리 대상 클러스터 2에서 게이트웨이 및 라우팅 에이전트 연결 상태를 확인하십시오:
       subctl diagnose connections --kubeconfig ./<MANAGED_CLUSTER2_KUBECONFIG>.yaml
    
    1. 클러스터 간에 종단 간 연결 테스트 모음을 실행합니다:
       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 배포하기” 섹션을 참조하십시오.

  1. 허브 클러스터의 ACM 콘솔로 이동합니다. ‘차량 관리 ’ > ‘클러스터 ’ > ‘클러스터 세트’를 클릭합니다.
  2. '클러스터 세트 만들기 '를 클릭합니다. 지시에 따라 두 개의 관리형 클러스터를 클러스터 집합에 추가합니다.
  3. 클러스터 세트에 서브마리너 애드온을 설치하는 옵션을 클릭합니다.
  4. 관리되는 클러스터를 애드온 설치 대상 클러스터로 선택합니다.
  5. 두 클러스터의 구성을 검토할 때, 다음 설정을 그림과 같이 변경하고 나머지는 기본값 그대로 두십시오
    • globalnetEnabled: true (확인됨)
    • gateways: 2
    • NATTEnable: false (선택 취소됨)
    • cableDriver: vxlan
  6. 설치를 클릭하십시오.
  7. 서브마리너 애드온 상태가 정상(초록색 체크 표시)으로 표시될 때까지 기다리세요. 이 과정은 최대 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 로 확인하십시오.

  1. 관리되는 각 클러스터에 대해, IBM Cloud 콘솔 에서 ‘ OpenShift Data Foundation’ 애드온을 설치하십시오.

    1. 클러스터의 ‘개요’ 페이지로 이동한 후, 화면을 아래로 스크롤하여 ‘애드온’ 섹션으로 이동합니다.
    2. “ OpenShift 데이터 기반 ”에서 “설치”를 클릭합니다.
    3. ‘ NooBaa 멀티클라우드 오브젝트 게이트웨이 배포’ 옆의 확인란을 선택하십시오.
    4. 확인을 위해 ‘설치’를 다시 클릭하세요.
    5. 계속 진행하기 전에 ODF 애드온 상태가 ‘활성화 중’에서 ‘정상’ (녹색 체크 표시)으로 변경될 때까지 기다리십시오.
  2. 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 를 사용하여 컨텍스트를 첫 번째 관리형 클러스터로 전환하고, 이 섹션이 끝날 때까지 모든 단계를 완료한 다음, 두 번째 관리형 클러스터로 전환하여 동일한 절차를 반복하십시오.

  1. 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
    
  2. 서비스 내보내기를 확인합니다. 출력에 표시되려면 몇 분 정도 걸릴 수 있습니다.

    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
    
  3. 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
    
  4. 명령을 실행하여 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
    
  5. storageCluster 리소스가 준비되었는지 확인합니다.

    oc get storagecluster -n openshift-storage
    

    출력 예.

    NAME                    PHASE  
    ocs-storagecluster      Ready   
    

8단계. 지역 재해 복구 정책 구성

Hub cluster

허브 클러스터에 ODF 멀티클러스터 오케스트레이터를 설치하고, 관리 대상 클러스터 두 개 간에 미러링을 가능하게 하는 재해 복구(DR) 정책을 생성하십시오.

  1. 허브 클러스터에 ODF 멀티클러스터 오케스트레이터를 설치하십시오.

    1. 아직 설치하지 않았다면, 허브 클러스터에 ‘ OpenShift ’ GitOps 오퍼레이터를 설치하십시오. 설치 단계에 대해서는 의 ‘2단계’ 마지막 부분을 참조하십시오. 허브 클러스터 에 대한 신뢰할 수 있는 프로필을 생성합니다.
    2. 허브 클러스터의 OpenShift 웹 콘솔에서 Core 플랫폼 보기를 열고, ‘Ecosystem’ > ‘Software Catalog ’로 이동한 다음 ‘ODF Multicluster Orchestrator ’를 검색하십시오.
    3. ODF 멀티클러스터 오케스트레이터 타일을 클릭합니다. 이전 섹션에서 관리 대상 클러스터에 설치한 ODF 버전과 동일한 버전 번호를 선택해야 합니다. 나머지 기본 설정은 모두 그대로 두고 ‘설치’를 클릭하세요.
    4. 운영자 리소스가 ‘ openshift-operators ’ 프로젝트에 설치되어 있고 모든 네임스페이스에서 사용할 수 있도록 하십시오. 확인을 위해 ‘설치’를 다시 클릭하세요.

    ODF 멀티클러스터 오케스트레이터는 또한 종속성으로 허브 클러스터에 ‘ OpenShift ’ DR 허브 오퍼레이터를 설치합니다.

  2. 운영자 파드가 실행 중인지 확인하여 설치를 확인합니다. 이 명령을 실행하기 전에 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
    
  3. 허브 클러스터에서 동기화 간격을 5분으로 설정하고, 매개변수에 각 관리 대상 클러스터를 지정하여 DR 정책을 생성하십시오. 이렇게 하면 관리형 클러스터 양쪽에 NooBaa 객체 버킷이 생성되며, 볼륨 복제를 위한 ODF Ceph 블록 풀 미러링이 활성화됩니다.

    1. 허브 클러스터의 OpenShift 웹 콘솔에서 ‘플릿 관리’ 관점에서 ‘데이터 서비스 > 재해 복구 > 정책 > DRPolicy 생성 ’으로 이동합니다.

    2. 다음 매개 변수가 포함된 DR 정책을 만듭니다.

      • 연결된 클러스터: PRIMARY_MANAGED_CLUSTER_NAME, SECONDARY_MANAGED_CLUSTER_NAME
      • 복제 정책: 비동기
      • 복제 간격: 5m
      • 해당되는 경우, [ 고급 설정 ]에서 [ 복원 및 복제된 PersistentVolumeClaims 에 대한 재해 복구 지원 활성화 (Data Foundation 전용)]를 선택하십시오.

      Red Hat 이 옵션은 클론되거나 복원된 RBD 볼륨이 적극적으로 지원되는, 탐지된 애플리케이션 및 환경에서만 사용해야 한다고 명시하고 있습니다.

  4. 허브 클러스터 에서 다음 명령을 실행하여 DR 정책이 생성되었고 관리 대상 클러스터에 적용되었는지 확인하십시오. 이 명령어를 실행하기 전에 CLI 컨텍스트가 허브 클러스터로 설정되어 있는지 확인하십시오.

    ibmcloud oc cluster config --cluster HUB_CLUSTER_NAME --admin
    
    oc get drpolicy DRPOLICY_NAME -o jsonpath='{.status.conditions[].reason}{"\n"}'
    

    출력 예.

    Succeeded
    
    oc get drclusters
    

    출력 예.

    NAME               AGE
    managed-cluster1   4m42s
    managed-cluster2   4m42s
    
  5. 관리 대상 각 클러스터 에서 재해 복구(DR) 정책이 적용되었으며 정상 상태인지 확인하십시오. 이 명령어를 실행하기 전에 CLI 컨텍스트를 각 관리 대상 클러스터로 전환하십시오.

    ibmcloud oc cluster config --cluster MANAGED_CLUSTER_NAME --admin
    
    oc 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          3d12h
    
    oc get cephblockpool ocs-storagecluster-cephblockpool -n openshift-storage -o jsonpath='{.status.mirroringStatus.summary}{"\n"}'
    

    출력 예.

    {"daemon_health":"OK","health":"OK","image_health":"OK","states":{}}
    
  6. 선택 사항입니다: ODF 지역 재해 복구 기능을 향상시키기 위해 설치할 수 있는 운영자를 검토합니다.

  7. 선택 사항입니다: 재해 복구 구성을 테스트합니다.

ODF 지역 재해 복구를 위한 선택적 운영자

ACM 허브 또는 관리형 클러스터에 설치할 수 있는 옵션 운영자를 검토하여 ODF 지역 재해 복구 기능을 강화하세요. IBM 은 이러한 운영자를 관리할 책임이 없습니다.

업데이트, 모니터링, 복구 및 재설치를 포함하되 이에 국한되지 않는 이러한 운영자를 관리할 책임은 회원님에게 있습니다.

ODF 지역 재해 복구를 위한 선택적 운영자
운영자 설명 추가 정보
OpenShift 데이터 보호용 API ( OADP ) 운영자
  • OpenShift 클러스터에 대한 백업 및 복원 API를 만드는 데 사용합니다.
  • 관리되는 클러스터에 설치합니다.
데이터 보호를 위한 OpenShift API 소개

재해 복구 구성 테스트

재해 복구 솔루션을 테스트할 수 있는 샘플 애플리케이션을 만듭니다. 자세한 내용은 재해 복구 애플리케이션 테스트를 위한 샘플 애플리케이션 만들기를 참고하세요.

  1. ACM 콘솔에서 구독 기반 애플리케이션을 배포합니다. 애플리케이션의 토폴로지 탭은 모든 애플리케이션 리소스가 성공적으로 배치되면 녹색으로 표시됩니다.

  2. 애플리케이션 페이지에서, 작업 > 데이터 정책 관리로 이동합니다.

  3. 앞서 만든 DR 정책을 이 애플리케이션에 할당합니다.

  4. 응용 프로그램 포드가 주 클러스터에서 실행되고 있는지 확인합니다.

  5. 애플리케이션 페이지에서, 작업 > 애플리케이션 페일오버로 이동합니다. 보조 ODF 클러스터를 대상 클러스터로 선택합니다. 시작을 클릭합니다.

  6. 애플리케이션 포드가 보조 클러스터로 이동되었는지 확인합니다.

  7. 애플리케이션 페이지에서, 작업 > 애플리케이션 재배치 로 이동합니다. 주요 ODF 클러스터를 대상 클러스터로 선택합니다. 시작을 클릭합니다.

  8. 애플리케이션 포드가 기본 클러스터로 다시 이동되었는지 확인합니다.

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 )를 참조하세요.