附註:

使用 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 DR 的動態群組和原則

這些原則可讓 OCI Full Stack DR 服務存取 OCI Object Storage 貯體以上傳組態備份。OKE 叢集的 OCI 物件儲存的儲存桶存取原則取決於叢集類型。

  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>'}
    

    這些原則會讓 brie 命名空間中執行的 Pod 使用服務帳戶 brie-readerbrie-creator 讀取和寫入 OCI 物件儲存的儲存桶。

  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 物件儲存的儲存桶。如果跳躍主機和叢集位於相同的區間中,您可以避免建立新動態群組和原則以提供 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 保護群組

  1. 在主要 DRPG (DRPG_MUSHOP_FRA) 中,選取成員,然後按一下新增成員

    新增主要 OKE 叢集

  2. 選取 OKE 叢集作為資源類型

    新增主要 OKE 叢集

  3. 輸入下列必要資訊。

    • OKE 叢集:輸入 OKE 叢集。
    • 備份:輸入備份資訊。
      • 備份儲存桶: 選取儲存桶。
      • 選取指定備份排程
      • 排程型態:輸入排程型態。
      • 開始時間:輸入 UTC 的開始時間。
      • 間隔:以天數輸入間隔。
      • 要保留的備份數目上限 ( 選擇性 ):輸入備份數目上限。
      • 選取影像複製:
      • 影像複製加密密碼 ( 選擇性 ):選取影像。
      • 命名空間 ( 選擇性 ):輸入命名空間。
    • 對等 OKE 叢集:選取對等 OKE 叢集。
  4. 選取我瞭解必須重新整理並驗證所有現有計畫,然後按一下新增

    新增主要 OKE 叢集

作業 3:新增磁碟區群組至主要 DR 保護群組

  1. 在主要 DRPG (DRPG_MUSHOP_FRA) 中,選取成員,然後按一下新增成員

    新增磁碟區群組

  2. 選取磁碟區群組作為資源類型

    新增磁碟區群組

  3. 輸入下列必要資訊。

    • 磁碟區群組:選取磁碟區群組。
  4. 選取我瞭解必須重新整理並驗證所有現有計畫,然後按一下新增

    新增磁碟區群組

作業 4:新增待命 OKE 叢集至待命 DR 保護群組

  1. 在待命 DRPG (DRPG_MUSHOP_AMS) 中,選取成員,然後按一下新增成員

    新增待命 OKE 叢集

  2. 選取 OKE 叢集作為資源類型

    新增待命 OKE 叢集

  3. 輸入下列必要資訊。

    • OKE 叢集:輸入 OKE 叢集。
    • 備份:輸入備份資訊。
      • 備份儲存桶: 選取儲存桶。
    • 對等 OKE 叢集:選取對等 OKE 叢集。
  4. 選取我瞭解必須重新整理並驗證所有現有計畫,然後按一下新增

    新增待命 OKE 叢集

作業 5:建立開始展開計畫

  1. 在待命 DRPG (DRPG_MUSHOP_AMS) 中,選取計畫並按一下建立計畫

    建立開始展開計畫

  2. 輸入計畫的名稱,選取開始展開作為計畫類型,然後按一下建立

    建立開始展開計畫

    幾分鐘之後,計畫就會顯示作用中狀態。

    建立開始展開計畫

  3. 選取建立的計畫以查看其內容。

    建立開始展開計畫

作業 6:執行開始展開計畫

  1. 選取在任務 5 中建立的計畫。

    執行開始展開計畫

  2. 選取啟用前置檢查,然後按一下執行計畫

    執行開始展開計畫

    幾分鐘之後,所有群組都將顯示成功狀態。

    執行開始展開計畫

作業 7:檢查在待命 OKE 叢集上執行的應用程式

連線至待命 OKE 叢集並檢查應用程式是否在執行中,對於 MuShop 應用程式,請執行下列指令。

kubectel get all -n mushop

檢查待命 OKE 叢集上執行的應用程式

作業 8:建立停止追溯計畫

  1. 在待命 DRPG (DRPG_MUSHOP_AMS) 中,選取計畫並按一下建立計畫

    建立停止展開計畫

  2. 輸入計畫的名稱,選取開始展開作為計畫類型,然後按一下建立

    建立停止展開計畫

    幾分鐘之後,計畫就會顯示作用中狀態。

    建立停止展開計畫

作業 9:執行停止追溯計畫

  1. 選取在任務 8 中建立的計畫。

    執行停止鑽研計畫

  2. 選取啟用前置檢查,然後按一下執行計畫

    執行停止鑽研計畫

    幾分鐘之後,所有群組都將顯示 Succuss 狀態。

    執行停止鑽研計畫

作業 10:檢查待命 OKE 叢集上的清除

連線至待命 OKE 叢集,並使用下列命令檢查命名空間清單。

kubectl get namespaces

檢查待命 OKE 叢集上的清除

接下來的步驟

建立並執行展開計劃之後,現在是時候建立切換計劃和容錯移轉計劃了。

有兩種最佳做法應納入正常的日常作業中,以確保 DR 計畫的準備程度。

考慮排定待命 DR 保護群組中所有 DR 計畫的每週前置檢查。前置檢查可隨時執行,對生產環境工作負載沒有任何影響。這有助於確保 DR 計畫的完整性、擷取遺失的成員資源、遺失網路、找不到由使用者定義步驟呼叫的預期命令檔等等。

驗證災難復原準備程度的另一個非常重要方式是排定每個月或季度定期進行災難復原鑽探。DR 鑽研也會對生產環境工作負載產生零影響,但只要按一下單一按鈕,即可驗證待命區域中負載平衡器的運算、儲存、Oracle 資料庫和後端集的復原能力。請參閱下列主題以取得詳細資訊:

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center