附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用 OCI Full Stack Disaster Recovery 自動切換和容錯移轉 OCI Kubernetes 引擎 (狀態性) 計畫
簡介
Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) 只需按一下,即可協調來自全球 Oracle Cloud Infrastructure (OCI) 區域之間的運算、資料庫和應用程式轉換。客戶可以自動執行復原一或多個業務系統所需的步驟,無需重新設計或重新建構現有的基礎架構、資料庫或應用程式,也不需要特殊的管理或轉換伺服器。
Oracle Cloud Infrastructure Kubernetes Engine (OKE) 是一項託管 Kubernetes 服務,可簡化大規模容器化工作負載的開發、部署及作業。OKE 可讓您快速建立、管理及使用運用基礎 OCI Compute、網路和儲存服務的 Kubernetes 叢集。
部署架構
目標
本教學課程將涵蓋下列工作。
- 作業 1:建立 OKE 和 OCI Full Stack Disaster Recovery 的動態群組和原則
- 作業 2:將主要 OKE 叢集新增至主要 DR 保護群組
- 作業 3:新增磁碟區群組至主要 DR 保護群組
- 作業 4:新增待命 OKE 叢集至待命 DR 保護群組
- 作業 5:建立開始展開計畫
- 作業 6:執行開始展開計畫
- 作業 7:檢查在待命 OKE 叢集上執行的應用程式
- 作業 8:建立停止展開計畫
- 作業 9:執行停止展開計畫
- 作業 10:檢查待命 OKE 叢集上的清除
注意:在此教學課程中,主要區域是法蘭克福,待命區域則是阿姆斯特丹。
必要條件
-
本教學課程假設 DR 保護群組 (DRPG) 已經存在,而且您在兩個區域中都有現有的 DR 計畫。
-
本教學課程假設閱讀器具備管理員權限,且已具備 OCI Full Stack DR 所需的 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 原則。如需詳細資訊,請參閱設定識別與存取管理 (IAM) 原則以使用完整堆疊災害復原和完整堆疊災害復原原則。
-
本教學課程假設讀取器在主要區域部署了 OKE 叢集,在待命區域部署了對等叢集。如需詳細資訊,請參閱建立叢集。
-
本教學課程假設讀取器已中斷主要 OKE 叢集上部署的 MuShop 應用程式連線 (已模擬)。如需詳細資訊,請參閱部署 MuShop 。
-
OKE 叢集產生的區塊磁碟區已新增至 (
vg_oke_mushop
) 磁碟區群組。您必須使用跨區域複寫建立磁碟區群組,如需詳細資訊,請參閱建立磁碟區群組。 -
在主要區域和待命區域建立 OCI 物件儲存的儲存桶,以儲存 OKE 備份。如需詳細資訊,請參閱物件儲存。
作業 1:建立 OKE 和 OCI Full Stack DR 的動態群組和原則
這些原則可讓 OCI Full Stack DR 服務存取 OCI Object Storage 貯體以上傳組態備份。OKE 叢集的 OCI 物件儲存的儲存桶存取原則取決於叢集類型。
-
建立受管理節點集區的動態群組和原則。
-
建立名為
<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>'}
這些原則會讓 brie 命名空間中執行的 Pod 使用服務帳戶
brie-reader
或brie-creator
讀取和寫入 OCI 物件儲存的儲存桶。 -
建立容器執行處理的動態群組和原則。這些原則可讓 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 物件儲存的儲存桶。如果跳躍主機和叢集位於相同的區間中,您可以避免建立新動態群組和原則以提供 OCI 物件儲存的儲存桶存取權的步驟。
-
建立名為
<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
,則會評估原則敘述句,就像群組屬於預設識別網域一樣。如需詳細資訊,請參閱原則的運作方式。
作業 2:新增主要 OKE 叢集至主要 DR 保護群組
-
在主要 DRPG (
DRPG_MUSHOP_FRA
) 中,選取成員,然後按一下新增成員。 -
選取 OKE 叢集作為資源類型。
-
輸入下列必要資訊。
- OKE 叢集:輸入 OKE 叢集。
- 備份:輸入備份資訊。
- 備份儲存桶: 選取儲存桶。
- 選取指定備份排程。
- 排程型態:輸入排程型態。
- 開始時間:輸入 UTC 的開始時間。
- 間隔:以天數輸入間隔。
- 要保留的備份數目上限 ( 選擇性 ):輸入備份數目上限。
- 選取影像複製:
- 影像複製加密密碼 ( 選擇性 ):選取影像。
- 命名空間 ( 選擇性 ):輸入命名空間。
- 對等 OKE 叢集:選取對等 OKE 叢集。
-
選取我瞭解必須重新整理並驗證所有現有計畫,然後按一下新增。
作業 3:新增磁碟區群組至主要 DR 保護群組
-
在主要 DRPG (
DRPG_MUSHOP_FRA
) 中,選取成員,然後按一下新增成員。 -
選取磁碟區群組作為資源類型。
-
輸入下列必要資訊。
- 磁碟區群組:選取磁碟區群組。
-
選取我瞭解必須重新整理並驗證所有現有計畫,然後按一下新增。
作業 4:新增待命 OKE 叢集至待命 DR 保護群組
-
在待命 DRPG (
DRPG_MUSHOP_AMS
) 中,選取成員,然後按一下新增成員。 -
選取 OKE 叢集作為資源類型。
-
輸入下列必要資訊。
- OKE 叢集:輸入 OKE 叢集。
- 備份:輸入備份資訊。
- 備份儲存桶: 選取儲存桶。
- 對等 OKE 叢集:選取對等 OKE 叢集。
-
選取我瞭解必須重新整理並驗證所有現有計畫,然後按一下新增。
作業 5:建立開始展開計畫
-
在待命 DRPG (
DRPG_MUSHOP_AMS
) 中,選取計畫並按一下建立計畫。 -
輸入計畫的名稱,選取開始展開作為計畫類型,然後按一下建立。
幾分鐘之後,計畫就會顯示作用中狀態。
-
選取建立的計畫以查看其內容。
作業 6:執行開始展開計畫
-
選取在任務 5 中建立的計畫。
-
選取啟用前置檢查,然後按一下執行計畫。
幾分鐘之後,所有群組都將顯示成功狀態。
作業 7:檢查在待命 OKE 叢集上執行的應用程式
連線至待命 OKE 叢集並檢查應用程式是否在執行中,對於 MuShop 應用程式,請執行下列指令。
kubectel get all -n mushop
作業 8:建立停止追溯計畫
-
在待命 DRPG (
DRPG_MUSHOP_AMS
) 中,選取計畫並按一下建立計畫。 -
輸入計畫的名稱,選取開始展開作為計畫類型,然後按一下建立。
幾分鐘之後,計畫就會顯示作用中狀態。
作業 9:執行停止追溯計畫
-
選取在任務 8 中建立的計畫。
-
選取啟用前置檢查,然後按一下執行計畫。
幾分鐘之後,所有群組都將顯示 Succuss 狀態。
作業 10:檢查待命 OKE 叢集上的清除
連線至待命 OKE 叢集,並使用下列命令檢查命名空間清單。
kubectl get namespaces
接下來的步驟
建立並執行展開計劃之後,現在是時候建立切換計劃和容錯移轉計劃了。
有兩種最佳做法應納入正常的日常作業中,以確保 DR 計畫的準備程度。
- 定期執行前置檢查。
- 定期執行 DR 展開。
考慮排定待命 DR 保護群組中所有 DR 計畫的每週前置檢查。前置檢查可隨時執行,對生產環境工作負載沒有任何影響。這有助於確保 DR 計畫的完整性、擷取遺失的成員資源、遺失網路、找不到由使用者定義步驟呼叫的預期命令檔等等。
驗證災難復原準備程度的另一個非常重要方式是排定每個月或季度定期進行災難復原鑽探。DR 鑽研也會對生產環境工作負載產生零影響,但只要按一下單一按鈕,即可驗證待命區域中負載平衡器的運算、儲存、Oracle 資料庫和後端集的復原能力。請參閱下列主題以取得詳細資訊:
相關連結
認可
- 作者 - Raphael Teixeira (Full Stack DR 工程技術人員的主要成員)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Automate Switchover and Failover Plans for OCI Kubernetes Engine (Stateful) with OCI Full Stack Disaster Recovery
G26602-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.