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

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

總覽

根據預設,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 資源之間的預設配對依附元件。定義還原順序時,GKE 備份會先還原所有符合條件的 GroundKind,再還原 Requiring GroupKind。舉例來說,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 依附元件新增至還原計畫。 請參閱預設依附元件清單,瞭解 GKE 備份已處理且不需指定的所有 GroupKind 依附元件。

gcloud

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

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

      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:專案的 ID。 Google Cloud
  • LOCATION:上層還原方案的運算區域。
  • RESTORE_ORDER_FILE:含有 GroupKind 依附元件的 YAML 檔案路徑,如前例所示。

控制台

請按照下列操作說明,在 Google Cloud 控制台為現有還原方案新增順序:

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

    前往「Google Kubernetes Engine」

  2. 在導覽選單中,點選「GKE 備份」。

  3. 按一下「Restore plans」(還原計畫) 分頁標籤。

  4. 按一下還原方案名稱。

  5. 點按「Details」(詳細資料) 分頁標籤。

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

  7. 按一下「新增訂單組合」。

  8. 在「項目 1」部分中,依序輸入「First API group 1」(第一個 API 群組 1) 和「First object kind 1」(第一個物件種類 1),然後輸入「Second API group 2」(第二個 API 群組 2) 和「Second object kind 2」(第二個物件種類 2),這些資源會依輸入順序還原。

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

後續步驟