建立精細還原作業

本頁說明如何在 Google Distributed Cloud (GDC) Air-gapped 中,對備份資料執行細部還原作業。

精細還原功能可讓您從備份還原部分資源。這項功能可彈性調整還原方案中定義的還原範圍。

事前準備

如要為備份建立細部還原作業,您必須具備下列條件:

  • 現有備份。詳情請參閱「規劃備份作業集」。
  • 必要的身分與存取權角色:

    • 對於 PA 使用者:
      • 使用者叢集備份管理員:管理使用者叢集中的備份資源,例如備份和還原計畫。請機構 IAM 管理員授予您「使用者叢集備份管理員」(user-cluster-backup-admin) 角色。
    • 適用於 AO 使用者:
      • 備份建立者:建立手動備份及還原。請專案 IAM 管理員授予您備份建立者 (backup-creator) 角色。
    • 詳情請參閱「角色定義」。

建立精細還原作業

如要使用精細篩選器建立還原作業,請按照下列步驟操作:

  1. 建立精細還原篩選器。您可以參考下列 YAML 範例。

    inclusionFilters:
      - groupKind:
          group: foo.io
          kind: Bar
        name: name1
        namespace: ns1
    exclusionFilters:
      - labels:
          key1: value1
          key2: value2
    
  2. 建立 ManualRestoreRequest 自訂資源,規劃從現有 Backups 進行還原作業。以下是 ManualRestoreRequest 的範例:

    apiVersion: backup.gdc.goog/v1
    kind: ManualRestoreRequest
    metadata:
      name: RESTORE_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      restoreName: RESTORE_NAME
      restorePlanName: RESTORE_PLAN
      backupName: BACKUP_NAME
      filter:
        FINE_GRAINED_RESTORE_FILTERS
    

更改下列內容:

  • RESTORE_NAME:要建立的還原作業名稱。
  • PROJECT_NAMESPACE:GDC 專案名稱。
  • RESTORE_PLAN:這項還原作業所依據的還原計畫名稱。
  • BACKUP_NAME:要還原的備份。這項備份必須與還原方案參照的備份方案建立關聯。詳情請參閱「規劃一組還原作業」。
  • FINE_GRAINED_RESTORE_FILTER:細部還原篩選器。如需範例,請參閱「精細還原篩選器範例」。

精細還原篩選器範例

以下範例採用 Google Cloud CLI 使用的 YAML 格式。

還原單一命名空間範圍內的資源

這個範例會使用精細還原 inclusionFilters 選取資源,在命名空間 webserver 中還原名為 nginx-varsConfigMap 資源。如要選擇核心群組下的資源,請在 group 欄位中使用空字串。

filter:
  inclusionFilters:
  - groupKind:
      kind: ConfigMap
    name: nginx-vars
    namespace: webserver

排除單一叢集範圍內的資源

這個範例會還原所有可用資源,但名稱為 sc1groupKind 資源除外,並使用精細還原 exclusionFilters 排除該資源。

filter:
  exclusionFilters:
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass
    name: sc1

還原具有兩個標籤的資源

這個範例會使用精細復原 inclusionFilters 選取資源,復原同時具有 key1:value1key2:value2 標籤的資源。

filter:
  inclusionFilters:
  - labels:
      key1: value1
      key2: value2

排除部分 GroupKind 的所有資源

這個範例會還原所有可用資源,但 ConfigMapstorage.k8s.io/StorageClassgroupKind 資源除外。為此,我們使用精細還原 exclusionFilters 排除這兩個 GroupKind。

filter:
  exclusionFilters:
  - groupKind:
      kind: ConfigMap
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass

後續步驟