12장. 관리형 클러스터 간 애플리케이션 장애 조치


이 섹션에서는 busybox 샘플 애플리케이션을 장애 조치하는 방법에 대한 지침을 제공합니다. Metro-DR의 장애 조치 방법은 애플리케이션을 기반으로 합니다. 이러한 방식으로 보호되도록 하는 각 애플리케이션은 DR 테스트용 샘플 애플리케이션 생성 섹션에 표시된 대로 애플리케이션 네임스페이스에 생성된 해당 DRPlacementControl 리소스 및 PlacementRule 리소스가 있어야 합니다.

절차

  1. NetworkFence 리소스를 생성하고 펜싱을 활성화합니다.

    네트워크 펜싱 작업을 수행할 CIDR 블록 또는 IP 주소 목록을 지정합니다. 이 경우 외부 RHCS 클러스터를 사용하여 펜싱해야 하는 클러스터의 모든 OpenShift 노드의 EXTERNAL-IP입니다.

    1. 이 명령을 실행하여 기본 관리 클러스터 의 IP 주소를 가져옵니다.

      $ oc get nodes -o jsonpath='{range .items[*]}{.status.addresses[?(@.type=="ExternalIP")].address}{"\n"}{end}'
      Copy to Clipboard

      출력 예:

      10.70.56.118
      10.70.56.193
      10.70.56.154
      10.70.56.242
      10.70.56.136
      10.70.56.99
      Copy to Clipboard
      참고

      사이트 중단이 발생하기 전에 모든 OpenShift 노드의 현재 IP 주소를 수집합니다. 가장 좋은 방법은 NetworkFence YAML 파일을 생성하고 재해 복구 이벤트를 위해 사용 가능하고 최신 상태로 유지하는 것입니다.

      모든 노드의 IP 주소는 아래 표시된 대로 NetworkFence 예제 리소스에 추가됩니다. 이 예는 6개의 노드이지만 클러스터에 더 많은 노드가 있을 수 있습니다.

      apiVersion: csiaddons.openshift.io/v1alpha1
      kind: NetworkFence
      metadata:
        name: network-fence-<cluster1>
      spec:
        driver: openshift-storage.rbd.csi.ceph.com
        cidrs:
          -  <IP_Address1>/32
          -  <IP_Address2>/32
          -  <IP_Address3>/32
          -  <IP_Address4>/32
          -  <IP_Address5>/32
          -  <IP_Address6>/32
          [...]
        secret:
          name: rook-csi-rbd-provisioner
          namespace: openshift-storage
        parameters:
          clusterID: openshift-storage
      Copy to Clipboard
    2. 위의 YAML 파일 예제의 경우 IP 주소를 수정하고 기본 관리 클러스터의 경우 RHACM 에 있는 클러스터 이름으로 올바른 <cluster1 >을 제공합니다. 이 파일을 파일 이름 network-fence-<cluster1>.yaml 에 저장합니다.

      중요

      NetworkFence 는 장애 조치 전에 애플리케이션이 현재 실행 중인 반대의 관리형 클러스터에서 생성해야 합니다. 이 경우 이 클러스터는 보조 관리 클러스터 입니다.

      $ oc create -f network-fence-<cluster1>.yaml
      Copy to Clipboard

      출력 예:

      networkfences.csiaddons.openshift.io/network-fence-ocp4perf1 created
      Copy to Clipboard
      중요

      NetworkFence 가 생성되면 애플리케이션에서 OpenShift Data Foundation 스토리지로의 모든 통신이 실패하고 일부 Pod는 이제 펜싱되는 클러스터의 비정상적인 상태(예: CreateContainerError, CrashLoopBackOff)에 있습니다.

    3. NetworkFence 가 생성된 위치와 동일한 클러스터에서 상태가 성공인지 확인합니다. <cluster1>이 올바르도록 수정합니다.

      export NETWORKFENCE=network-fence-<cluster1>
      oc get networkfences.csiaddons.openshift.io/$NETWORKFENCE -n openshift-dr-system -o jsonpath='{.status.result}{"\n"}'
      Copy to Clipboard

      출력 예:

      Succeeded
      Copy to Clipboard
  2. 펜싱된 클러스터의 DRPolicy 를 수정합니다.

    1. Hub 클러스터에서 DRPolicy 를 편집하고 < cluster1 >(예: ocp4perf1)을 Unfenced 에서 ManuallyFenced 로 변경합니다.

      $ oc edit drpolicy odr-policy
      Copy to Clipboard

      출력 예:

      [...]
      spec:
        drClusterSet:
        - clusterFence: ManuallyFenced  ## <-- Modify from Unfenced to ManuallyFenced
          name: ocp4perf1
          region: metro
          s3ProfileName: s3-primary
        - clusterFence: Unfenced
          name: ocp4perf2
          region: metro
          s3ProfileName: s3-secondary
      [...]
      Copy to Clipboard

      출력 예:

      drpolicy.ramendr.openshift.io/odr-policy edited
      Copy to Clipboard
    2. Hub 클러스터에서 DRPolicy 상태가 기본 관리형 클러스터Fenced 로 변경되었는지 확인합니다.

      $ oc get drpolicies.ramendr.openshift.io odr-policy -o yaml | grep -A 6 drClusters
      Copy to Clipboard

      출력 예:

        drClusters:
          ocp4perf1:
            status: Fenced
            string: ocp4perf1
          ocp4perf2:
            status: Unfenced
            string: ocp4perf2
      Copy to Clipboard
  3. 장애조치로 DRPlacementControl 수정

    1. Hub 클러스터에서 Installed Operators로 이동한 다음 Openshift DR Hub Operator 를 클릭합니다.
    2. DRPlacementControl 탭을 클릭합니다.
    3. DRPC busybox-drpc 를 클릭한 다음 YAML 보기를 클릭합니다.
    4. 아래 스크린샷과 같이 작업 및 장애 조치 클러스터 세부 정보를 추가합니다. 장애 조치 클러스터는 Secondary 관리 클러스터의 ACM 클러스터 이름입니다.

      DRPlacementControl 추가 장애 조치

      Image show where to add the action Failover in the YAML view

    5. 저장을 클릭합니다.
  4. 이제 애플리케이션이 YAML 파일에 지정된 장애 조치 클러스터 ocp4perf2 인 Secondary 관리 클러스터에서 실행 중인지 확인합니다.

    $ oc get pods,pvc -n busybox-sample
    Copy to Clipboard

    출력 예:

    NAME          READY   STATUS    RESTARTS   AGE
    pod/busybox   1/1     Running   0          35s
    
    NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    persistentvolumeclaim/busybox-pvc   Bound    pvc-79f2a74d-6e2c-48fb-9ed9-666b74cfa1bb   5Gi        RWO            ocs-storagecluster-ceph-rbd   35s
    Copy to Clipboard
  5. busybox 가 기본 관리 클러스터에서 더 이상 실행되지 않는지 확인합니다.

    $ oc get pods,pvc -n busybox-sample
    Copy to Clipboard

    출력 예:

    No resources found in busybox-sample namespace.
    Copy to Clipboard
중요

릴리스 노트의 Known issues 섹션에 설명된 대로 메트로-DR 알려진 문제에 대해 주의하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat