指定還原期間的資源還原順序

本頁說明如何指定 Backup for GKE 在還原作業期間還原不同 GroupKind 的順序。

總覽

根據預設,Backup for GKE 會按照可滿足資源間依附元件需求的順序,還原已知的 GroupKind。不過,如果需要依特定順序還原其他資源,可以使用還原排序功能,定義受影響資源之間的依附元件,指定所需順序。

在建立或更新還原方案作業期間,您可以指定自訂 GroupKind 依附元件清單。如要表示兩個自訂資源之間的依附元件,請指定下列兩個 GroupKind:

  • 滿足 GroupKind:這個 GroupKind 滿足依附元件,且必須在需要 GroupKind 之前還原。在 Google Cloud 控制台中,這個 GroupKind 稱為「First API group」(第一個 API 群組) 和「First object kind」(第一個物件種類) 欄位。
  • 需要 GroupKind:這個 GroupKind 取決於要先還原的滿足 GroupKind。在 Google Cloud 控制台中,這個 GroupKind 稱為「Second API group」(第二個 API 群組) 和「Second object kind」(第二個物件種類) 欄位。

GKE 備份會取得自訂依附元件清單和預設依附元件,並合併這些依附元件,產生 GroupKind 還原順序。

預設依附元件

下表列出滿足和需要 GroundKind 資源之間的預設配對依附元件。定義還原順序時,Backup for GKE 會先還原所有符合條件的 GroundKind,再還原 Requiring GroupKind。舉例來說,Backup for GKE 一律會還原所有 storage.k8s.io/StorageClass ,然後再還原 PersistentVolumeClaims

預設還原順序也會處理基本案例,例如在所有命名空間資源之前還原命名空間,以及在任何 CustomResources 之前還原 CustomResourceDefinitions

滿足 GroundKind 資源 需要 GroundKind 資源
flowcontrol.apiserver.k8s.io/PriorityLevelConfiguration flowcontrol.apiserver.k8s.io/FlowSchema
storage.k8s.io/StorageClass PersistentVolumeClaim
PersistentVolumeClaim
  • Pod
  • 部署作業
  • ReplicationController
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • CronJob
  • 工作
ServiceAccount
  • Pod
  • 部署作業
  • ReplicationController
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • CronJob
  • 工作

定義資源還原順序

請按照下列操作說明,將自訂 GroupKind 依附元件新增至還原計畫。 請參閱預設依附元件清單,瞭解 Backup for GKE 已處理的所有 GroupKind 依附元件,這些依附元件不需要指定。

gcloud

  1. 建立 YAML 檔案來定義還原順序。您可以參考下列 YAML 範例。

    以下範例指出 stable.example.com/First 必須在 stable.example.com/Second 之前還原,而 stable.example.com/Second 必須在 stable.example.com/Third 之前還原。

      restoreOrder:
        groupKindDependencies:
        - satisfying:
            resourceGroup: stable.example.com
            resourceKind: First
          requiring:
            resourceGroup: stable.example.com
            resourceKind: Second
        - satisfying:
            resourceGroup: stable.example.com
            resourceKind: Second
          requiring:
            resourceGroup: stable.example.com
            resourceKind: Third
    
  2. 使用您建立的還原順序檔案定義還原順序。

    gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
        --project=PROJECT_ID \
        --location=LOCATION \
        --restore_order_file=RESTORE_ORDER_FILE
    

    更改下列內容:

  • RESTORE_PLAN:要更新的還原計畫名稱。
  • PROJECT_ID:您的 Google Cloud 專案 ID。
  • LOCATION:父項還原計畫的運算區域。
  • RESTORE_ORDER_FILE:YAML 檔案的路徑,其中包含 GroupKind 依附元件,如先前的範例所示。

控制台

如要在 Google Cloud 控制台中將訂單新增至現有的還原計畫,請按照下列說明操作:

  1. 在 Google Cloud 控制台中,前往「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在導覽選單中,按一下「Backup for GKE」

  3. 按一下「還原方案」分頁標籤。

  4. 按一下還原計畫名稱。

  5. 按一下 [Details] (詳細資料) 分頁標籤。

  6. 按一下「還原訂單」旁的「編輯」

  7. 按一下「新增訂單集」

  8. 在「項目 1」部分中,依序輸入「第一個 API 群組 1」和「第一個物件種類 1」,然後輸入「第二個 API 群組 2」和「第二個物件種類 2」,指定要還原的資源順序。

  9. 按一下 [儲存變更]。

後續步驟