7장. 재해 복구 문제 해결
7.1. Metro-DR 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
7.1.1. 페일오버 후 상태 저장 세트 애플리케이션 링크 복사링크가 클립보드에 복사되었습니다!
- 문제
기본 클러스터로 재배치하는 동안 DRPlacementControl은 PROGRESSION을 "MovingToSecondary"로 보고하고 있습니다.
이전에는 Kubernetes v1.23 이전에는 Kubernetes 컨트롤 플레인에서 StatefulSets용으로 생성된 PVC를 정리하지 않았습니다. 이 작업은 클러스터 관리자 또는 StatefulSets를 관리하는 소프트웨어 Operator에 남아 있었습니다. 이로 인해 Pod가 삭제되면 StatefulSets의 PVC가 변경되지 않았습니다. 이렇게 하면 Ramen에서 애플리케이션을 기본 클러스터로 재배치하지 않습니다.
- 해결
워크로드에서 StatefulSets를 사용하고 재배치가 "MovingToSecondary"로 PROGRESSION으로 중단된 경우 다음을 실행합니다.
oc get pvc -n <namespace>
$ oc get pvc -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow StatefulSet에 속하는 해당 네임스페이스의 바인딩된 각 PVC에 대해 다음을 실행합니다.
oc delete pvc <pvcname> -n namespace
$ oc delete pvc <pvcname> -n namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 PVC가 삭제되면 VRG(볼륨 복제 그룹)가 보조로 전환된 다음 삭제됩니다.
다음 명령을 실행합니다.
oc get drpc -n <namespace> -o wide
$ oc get drpc -n <namespace> -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 몇 초에서 몇 분 후에 PROGRESSION은 "완료" 및 재배치가 완료된 것으로 보고합니다.
- 결과
- 워크로드가 기본 클러스터로 재배치됨
BZ 참조: [2118270]
7.1.2. DR 정책은 동일한 네임스페이스의 모든 애플리케이션을 보호합니다. 링크 복사링크가 클립보드에 복사되었습니다!
- 문제
-
DR 정책에서 사용하도록 단일 애플리케이션만 선택되지만 동일한 네임스페이스의 모든 애플리케이션은 보호됩니다. 이렇게 하면 PVC가 여러 워크로드에서
DRPlacementControlspec.pvcSelector와 일치하거나 선택기가 모든 워크로드에서 누락된 경우 각 PVC를 여러 번 관리하고 개별DRPlacementControl작업을 기반으로 데이터 손상 또는 유효하지 않은 작업을 발생시킵니다. - 해결
-
워크로드에 고유하게 속하는 라벨 PVC를 DRPlacementControl
spec.pvcSelector로 사용하여 네임스페이스 내의 PVC 하위 집합을 보호하고 관리하는 DRPlacementControl을 분리합니다. 사용자 인터페이스를 사용하여 DRPlacementControl에 대해spec.pvcSelector필드를 지정할 수 없으므로 명령줄을 사용하여 이러한 애플리케이션에 대한 DRPlacementControl을 삭제하고 생성해야 합니다.
BZ 참조: [2128860]
7.1.3. 재배치 또는 실패가 Initiating 상태로 중단될 수 있습니다. 링크 복사링크가 클립보드에 복사되었습니다!
- 문제
-
보조 서비스가 중단되는 동안 기본 클러스터가 중단되어 온라인 상태가 되면
재배치또는장애 복구가Initiating상태가 될 수 있습니다. - 해결
이러한 상황을 방지하려면 이전 활성 허브에서 관리 클러스터로의 모든 액세스를 차단하십시오.
또는 워크로드를 이동하기 전에 또는 정리 단계에 있을 때 이전 활성 허브 클러스터에서 ApplicationSet 컨트롤러를 축소할 수 있습니다.
이전 활성 허브에서 다음 명령을 사용하여 두 배포를 축소합니다.
oc scale deploy -n openshift-gitops-operator openshift-gitops-operator-controller-manager --replicas=0 oc scale statefulset -n openshift-gitops openshift-gitops-application-controller --replicas=0
$ oc scale deploy -n openshift-gitops-operator openshift-gitops-operator-controller-manager --replicas=0 $ oc scale statefulset -n openshift-gitops openshift-gitops-application-controller --replicas=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
BZ 참조: [2243804]