주:

OCI Full Stack Disaster Recovery를 통해 OCI Kubernetes Engine(Stateful)용 스위치오버 및 페일오버 계획 자동화

소개

Oracle Cloud Infrastructure Full Stack Disaster Recovery(OCI Full Stack DR)는 클릭 한 번으로 전 세계 Oracle Cloud Infrastructure(OCI) 리전 간 컴퓨트, 데이터베이스 및 애플리케이션 전환을 통합관리합니다. 고객은 기존 인프라, 데이터베이스 또는 애플리케이션을 재설계하거나 재설계하지 않고 전문화된 관리 또는 변환 서버 없이도 하나 이상의 비즈니스 시스템을 복구하는 데 필요한 단계를 자동화할 수 있습니다.

Oracle Cloud Infrastructure Kubernetes Engine(OKE)은 컨테이너화된 워크로드의 대규모 개발, 배포 및 운영을 간소화하는 관리형 Kubernetes 서비스입니다. OKE를 사용하면 기본 OCI 컴퓨트, 네트워킹, 스토리지 서비스를 활용하는 Kubernetes 클러스터를 빠르게 생성, 관리, 사용할 수 있습니다.

배포 아키텍처

아키텍처 다이어그램

목표

이 자습서에서는 다음 작업을 다룹니다.

주: 이 자습서에서는 기본 영역이 프랑크푸르트이고 대기 영역이 암스테르담입니다.

필요 조건

작업 1: OKE 및 OCI Full Stack DR에 대한 동적 그룹 및 정책 생성

이러한 정책을 통해 OCI Full Stack DR 서비스는 구성 백업을 업로드하기 위해 OCI Object Storage 버킷에 액세스할 수 있습니다. OKE 클러스터에서 OCI Object Storage 버킷 액세스에 대한 정책은 클러스터 유형에 따라 다릅니다.

  1. 관리 대상 노드 풀에 대한 동적 그룹 및 정책을 생성합니다.

    • <cluster1_dg>라는 동적 그룹을 생성합니다.

      All {instance.compartment.id = '<compartment_ocid>'}
      
    • 다음 정책을 만듭니다.

      Allow dynamic-group cluster1_dg to manage object-family in compartment <compartment>
      Allow dynamic-group cluster1_dg to manage cluster-family in compartment <compartment>
      
  2. 가상 노드 풀에 대해 다음 정책을 만듭니다.

    Allow any-user to manage objects in tenancy where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<Cluster_OCID>'}
    
    Allow any-user to manage objects in tenancy where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<Cluster_OCID>'}
    

    이러한 정책은 OCI Object Storage 버킷을 읽고 쓸 수 있도록 서비스 계정 brie-reader 또는 brie-creator를 사용하여 Brie 네임스페이스에서 실행되는 POD를 제공합니다.

  3. 컨테이너 인스턴스에 대한 동적 그룹 및 정책을 생성합니다. 이러한 정책을 통해 OCI Full Stack DR 서비스에서 생성된 런타임 컨테이너 인스턴스가 OKE 클러스터 및 OCI Object Storage 버킷에 액세스할 수 있습니다.

    • <bastion1_dg>라는 동적 그룹을 생성합니다.

      All {resource.type='computecontainerinstance'}
      
    • 다음 정책을 만듭니다.

      Allow dynamic-group bastion1_dg to manage object-family in compartment <compartment>
      Allow dynamic-group bastion1_dg to manage cluster-family in compartment <compartment>
      
  4. 점프 호스트에 대한 동적 그룹 및 정책을 생성합니다.

    점프 호스트를 사용하는 경우 이 정책을 통해 OCI Full Stack DR이 OKE 클러스터 및 OCI Object Storage 버킷에 액세스할 수 있습니다. 점프 호스트와 클러스터가 동일한 컴파트먼트에 있을 경우 새 동적 그룹 및 정책을 생성하는 단계를 피하여 OCI Object Storage 버킷에 대한 액세스 권한을 제공할 수 있습니다.

    • <bastion1_dg>라는 동적 그룹을 생성합니다.

      All {instance.compartment.id = '<compartment_ocid>'}
      
    • 다음 정책을 만듭니다.

      Allow dynamic-group bastion1_dg to manage cluster-family in compartment <compartment>Allow dynamic-group bastion1_dg to manage cluster in compartment <compartment>
      

주: dynamic-group 앞에 identity_domain_name를 포함하지 않으면 그룹이 기본 ID 도메인에 속하는 것처럼 정책 문이 평가됩니다. 자세한 내용은 정책 작동 방식을 참조하십시오.

작업 2: 기본 OKE 클러스터를 기본 DR 보호 그룹에 추가

  1. 기본 DRPG(DRPG_MUSHOP_FRA)에서 구성원을 선택하고 구성원 추가를 누릅니다.

    기본 OKE 클러스터 추가

  2. OKE ClusterResource type으로 선택합니다.

    기본 OKE 클러스터 추가

  3. 다음 필수 정보를 입력합니다.

    • OKE 클러스터: OKE 클러스터를 입력합니다.
    • 백업: 백업 정보를 입력합니다.
      • 백업 버킷: 버킷을 선택합니다.
      • Specify the backup schedule(백업 일정 지정)을 선택합니다.
      • 스케줄 유형: 스케줄 유형을 입력합니다.
      • 시작 시간: UTC로 시작 시간을 입력합니다.
      • 간격: 간격(일)을 입력합니다.
      • 유지할 최대 백업 수(선택사항): 최대 백업 수를 입력합니다.
      • 이미지 복제:를 선택합니다.
      • 이미지 복제 암호(선택사항): 이미지를 선택합니다.
      • 네임스페이스(선택사항): 네임스페이스를 입력합니다.
    • 피어 OKE 클러스터: 피어 OKE 클러스터를 선택합니다.
  4. 기존 계획을 모두 새로고침하고 확인해야 함을 이해합니다.를 선택하고 추가를 누릅니다.

    기본 OKE 클러스터 추가

작업 3: 기본 DR 보호 그룹에 볼륨 그룹 추가

  1. 기본 DRPG(DRPG_MUSHOP_FRA)에서 구성원을 선택하고 구성원 추가를 누릅니다.

    볼륨 그룹 추가

  2. Volume GroupResource type으로 선택합니다.

    볼륨 그룹 추가

  3. 다음 필수 정보를 입력합니다.

    • 볼륨 그룹: 볼륨 그룹을 선택합니다.
  4. 기존 계획을 모두 새로고침하고 확인해야 함을 이해합니다.를 선택하고 추가를 누릅니다.

    볼륨 그룹 추가

작업 4: 대기 DR 보호 그룹에 대기 OKE 클러스터 추가

  1. 대기 DRPG(DRPG_MUSHOP_AMS)에서 멤버를 선택하고 멤버 추가를 누릅니다.

    대기 OKE 클러스터 추가

  2. OKE ClusterResource type으로 선택합니다.

    대기 OKE 클러스터 추가

  3. 다음 필수 정보를 입력합니다.

    • OKE 클러스터: OKE 클러스터를 입력합니다.
    • 백업: 백업 정보를 입력합니다.
      • 백업 버킷: 버킷을 선택합니다.
    • 피어 OKE 클러스터: 피어 OKE 클러스터를 선택합니다.
  4. 기존 계획을 모두 새로고침하고 확인해야 함을 이해합니다.를 선택하고 추가를 누릅니다.

    대기 OKE 클러스터 추가

태스크 5: 시작 드릴 계획 생성

  1. 대기 DRPG(DRPG_MUSHOP_AMS)에서 계획을 선택하고 계획 생성을 누릅니다.

    시작 드릴 계획 생성

  2. 계획에 대한 이름을 입력하고 드릴 시작계획 유형으로 선택하고 생성을 누릅니다.

    시작 드릴 계획 생성

    몇 분 후 플랜에 Active 상태가 표시됩니다.

    시작 드릴 계획 생성

  3. 생성된 계획을 선택하여 내용을 확인합니다.

    시작 드릴 계획 생성

작업 6: 드릴 계획 시작 실행

  1. Task 5에서 생성한 계획을 선택합니다.

    시작 드릴 계획 실행

  2. 사전 검사 사용을 선택하고 계획 실행을 누릅니다.

    시작 드릴 계획 실행

    몇 분 후 모든 그룹에 Success 상태가 표시됩니다.

    시작 드릴 계획 실행

작업 7: 대기 OKE 클러스터에서 실행 중인 응용 프로그램 확인

대기 OKE 클러스터에 연결하여 응용 프로그램이 실행 중인지 확인하고, MuShop 응용 프로그램에 대해 다음 명령을 실행합니다.

kubectel get all -n mushop

대기 OKE 클러스터에서 실행 중인 애플리케이션을 확인하십시오.

태스크 8: 드릴 중지 계획 생성

  1. 대기 DRPG(DRPG_MUSHOP_AMS)에서 계획을 선택하고 계획 생성을 누릅니다.

    드릴 중지 계획 생성

  2. 계획에 대한 이름을 입력하고 드릴 시작계획 유형으로 선택하고 생성을 누릅니다.

    드릴 중지 계획 생성

    몇 분 후 플랜에 Active 상태가 표시됩니다.

    드릴 중지 계획 생성

작업 9: 드릴 정지 계획 실행

  1. Task 8에서 생성한 계획을 선택합니다.

    드릴 중지 계획 실행

  2. 사전 검사 사용을 선택하고 계획 실행을 누릅니다.

    드릴 중지 계획 실행

    몇 분 후 모든 그룹에 Succuss 상태가 표시됩니다.

    드릴 중지 계획 실행

작업 10: 대기 OKE 클러스터에서 정리 확인

대기 OKE 클러스터에 연결하고 다음 명령을 사용하여 네임스페이스 목록을 확인합니다.

kubectl get namespaces

대기 OKE 클러스터에서 정리 확인

다음 단계

드릴 계획을 생성하고 실행하면 이제 전환 계획 및 복구 계획을 생성할 차례입니다.

DR 계획을 준비할 수 있도록 일상적인 작업에 두 가지 모범 사례를 통합해야 합니다.

대기 DR 보호 그룹에 있는 모든 DR 계획의 주별 사전 검사를 예약하는 방법을 고려합니다. 사전 검사는 언제든지 실행할 수 있으며 운영 워크로드에 전혀 영향을 미치지 않습니다. 이렇게 하면 DR 계획의 무결성을 보장하고, 누락된 멤버 리소스, 누락된 네트워크, 사용자 정의 단계에서 호출되는 예상 스크립트를 찾을 수 없는 등의 작업을 수행할 수 있습니다.

재해 복구 준비 상태를 검증하는 또 다른 매우 중요한 방법은 한 달 또는 한 분기에 한 번 주기적인 DR 드릴 일정을 잡는 것입니다. DR 드릴은 운용 작업 로드에도 영향을 주지 않지만, 단일 단추를 눌러 대기 영역의 로드 밸런서에 대한 컴퓨트, 스토리지, Oracle 데이터베이스 및 백엔드 집합의 복구를 검증할 수 있는 기능을 제공합니다. 자세한 내용은 다음을 참조하십시오.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.