주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
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 Disaster Recovery에 대한 동적 그룹 및 정책 생성
- 작업 2: 기본 OKE 클러스터를 기본 DR 보호 그룹에 추가
- 작업 3: 기본 DR 보호 그룹에 볼륨 그룹 추가
- 작업 4: 대기 DR 보호 그룹에 대기 OKE 클러스터 추가
- 작업 5: Startdrill 계획 생성
- 작업 6: Startdrill 계획 실행
- 작업 7: 대기 OKE 클러스터에서 실행 중인 응용 프로그램을 확인합니다.
- 작업 8: Stopdrill 계획 생성
- 작업 9: Stopdrill 계획 실행
- 작업 10: 대기 OKE 클러스터에서 정리 확인
주: 이 자습서에서는 기본 영역이 프랑크푸르트이고 대기 영역이 암스테르담입니다.
필요 조건
-
이 자습서에서는 DRPG(DR Protection Groups)가 이미 존재하고 두 영역에 기존 DR 계획이 있다고 가정합니다.
-
이 사용지침서에서는 독자에게 관리자 권한이 있고 OCI Full Stack DR에 필요한 OCI IAM(Oracle Cloud Infrastructure Identity and Access Management) 정책이 이미 마련되어 있다고 가정합니다. 자세한 내용은 Configuring Identity and Access Management (IAM) policies to use Full Stack DR 및 Policies for Full Stack Disaster Recovery을 참조하십시오.
-
이 사용지침서에서는 읽기에 기본 영역에 배치된 OKE 클러스터와 대기 영역에 있는 피어 클러스터가 있다고 가정합니다. 자세한 내용은 클러스터 생성을 참조하십시오.
-
이 자습서에서는 기본 OKE 클러스터에 배포된 MuShop 응용 프로그램의 연결이 해제(모의)되었다고 가정합니다. 자세한 내용은 Deploy MuShop를 참조하십시오.
-
OKE 클러스터에서 생성된 블록 볼륨이 (
vg_oke_mushop
) 볼륨 그룹에 이미 추가되었습니다. 영역 간 복제본을 사용하여 볼륨 그룹을 생성해야 합니다. 자세한 내용은 볼륨 그룹 생성을 참조하십시오. -
OKE 백업을 저장할 OCI Object Storage 버킷을 기본 영역 및 대기 영역에 생성합니다. 자세한 내용은 Object Storage를 참조하십시오.
작업 1: OKE 및 OCI Full Stack DR에 대한 동적 그룹 및 정책 생성
이러한 정책을 통해 OCI Full Stack DR 서비스는 구성 백업을 업로드하기 위해 OCI Object Storage 버킷에 액세스할 수 있습니다. OKE 클러스터에서 OCI Object Storage 버킷 액세스에 대한 정책은 클러스터 유형에 따라 다릅니다.
-
관리 대상 노드 풀에 대한 동적 그룹 및 정책을 생성합니다.
-
<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>
-
-
가상 노드 풀에 대해 다음 정책을 만듭니다.
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를 제공합니다. -
컨테이너 인스턴스에 대한 동적 그룹 및 정책을 생성합니다. 이러한 정책을 통해 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>
-
-
점프 호스트에 대한 동적 그룹 및 정책을 생성합니다.
점프 호스트를 사용하는 경우 이 정책을 통해 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 보호 그룹에 추가
-
기본 DRPG(
DRPG_MUSHOP_FRA
)에서 구성원을 선택하고 구성원 추가를 누릅니다. -
OKE Cluster를 Resource type으로 선택합니다.
-
다음 필수 정보를 입력합니다.
- OKE 클러스터: OKE 클러스터를 입력합니다.
- 백업: 백업 정보를 입력합니다.
- 백업 버킷: 버킷을 선택합니다.
- Specify the backup schedule(백업 일정 지정)을 선택합니다.
- 스케줄 유형: 스케줄 유형을 입력합니다.
- 시작 시간: UTC로 시작 시간을 입력합니다.
- 간격: 간격(일)을 입력합니다.
- 유지할 최대 백업 수(선택사항): 최대 백업 수를 입력합니다.
- 이미지 복제:를 선택합니다.
- 이미지 복제 암호(선택사항): 이미지를 선택합니다.
- 네임스페이스(선택사항): 네임스페이스를 입력합니다.
- 피어 OKE 클러스터: 피어 OKE 클러스터를 선택합니다.
-
기존 계획을 모두 새로고침하고 확인해야 함을 이해합니다.를 선택하고 추가를 누릅니다.
작업 3: 기본 DR 보호 그룹에 볼륨 그룹 추가
-
기본 DRPG(
DRPG_MUSHOP_FRA
)에서 구성원을 선택하고 구성원 추가를 누릅니다. -
Volume Group을 Resource type으로 선택합니다.
-
다음 필수 정보를 입력합니다.
- 볼륨 그룹: 볼륨 그룹을 선택합니다.
-
기존 계획을 모두 새로고침하고 확인해야 함을 이해합니다.를 선택하고 추가를 누릅니다.
작업 4: 대기 DR 보호 그룹에 대기 OKE 클러스터 추가
-
대기 DRPG(
DRPG_MUSHOP_AMS
)에서 멤버를 선택하고 멤버 추가를 누릅니다. -
OKE Cluster를 Resource type으로 선택합니다.
-
다음 필수 정보를 입력합니다.
- OKE 클러스터: OKE 클러스터를 입력합니다.
- 백업: 백업 정보를 입력합니다.
- 백업 버킷: 버킷을 선택합니다.
- 피어 OKE 클러스터: 피어 OKE 클러스터를 선택합니다.
-
기존 계획을 모두 새로고침하고 확인해야 함을 이해합니다.를 선택하고 추가를 누릅니다.
태스크 5: 시작 드릴 계획 생성
-
대기 DRPG(
DRPG_MUSHOP_AMS
)에서 계획을 선택하고 계획 생성을 누릅니다. -
계획에 대한 이름을 입력하고 드릴 시작을 계획 유형으로 선택하고 생성을 누릅니다.
몇 분 후 플랜에 Active 상태가 표시됩니다.
-
생성된 계획을 선택하여 내용을 확인합니다.
작업 6: 드릴 계획 시작 실행
-
Task 5에서 생성한 계획을 선택합니다.
-
사전 검사 사용을 선택하고 계획 실행을 누릅니다.
몇 분 후 모든 그룹에 Success 상태가 표시됩니다.
작업 7: 대기 OKE 클러스터에서 실행 중인 응용 프로그램 확인
대기 OKE 클러스터에 연결하여 응용 프로그램이 실행 중인지 확인하고, MuShop 응용 프로그램에 대해 다음 명령을 실행합니다.
kubectel get all -n mushop
태스크 8: 드릴 중지 계획 생성
-
대기 DRPG(
DRPG_MUSHOP_AMS
)에서 계획을 선택하고 계획 생성을 누릅니다. -
계획에 대한 이름을 입력하고 드릴 시작을 계획 유형으로 선택하고 생성을 누릅니다.
몇 분 후 플랜에 Active 상태가 표시됩니다.
작업 9: 드릴 정지 계획 실행
-
Task 8에서 생성한 계획을 선택합니다.
-
사전 검사 사용을 선택하고 계획 실행을 누릅니다.
몇 분 후 모든 그룹에 Succuss 상태가 표시됩니다.
작업 10: 대기 OKE 클러스터에서 정리 확인
대기 OKE 클러스터에 연결하고 다음 명령을 사용하여 네임스페이스 목록을 확인합니다.
kubectl get namespaces
다음 단계
드릴 계획을 생성하고 실행하면 이제 전환 계획 및 복구 계획을 생성할 차례입니다.
DR 계획을 준비할 수 있도록 일상적인 작업에 두 가지 모범 사례를 통합해야 합니다.
- 정기적인 사전 검사 실행
- 정기적으로 DR 드릴을 실행합니다.
대기 DR 보호 그룹에 있는 모든 DR 계획의 주별 사전 검사를 예약하는 방법을 고려합니다. 사전 검사는 언제든지 실행할 수 있으며 운영 워크로드에 전혀 영향을 미치지 않습니다. 이렇게 하면 DR 계획의 무결성을 보장하고, 누락된 멤버 리소스, 누락된 네트워크, 사용자 정의 단계에서 호출되는 예상 스크립트를 찾을 수 없는 등의 작업을 수행할 수 있습니다.
재해 복구 준비 상태를 검증하는 또 다른 매우 중요한 방법은 한 달 또는 한 분기에 한 번 주기적인 DR 드릴 일정을 잡는 것입니다. DR 드릴은 운용 작업 로드에도 영향을 주지 않지만, 단일 단추를 눌러 대기 영역의 로드 밸런서에 대한 컴퓨트, 스토리지, Oracle 데이터베이스 및 백엔드 집합의 복구를 검증할 수 있는 기능을 제공합니다. 자세한 내용은 다음을 참조하십시오.
관련 링크
확인
- 작성자 - Raphael Teixeira(Full Stack DR 엔지니어링의 기술 직원 수석 멤버)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Automate Switchover and Failover Plans for OCI Kubernetes Engine (Stateful) with OCI Full Stack Disaster Recovery
G26603-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.