建立精細還原作業

本文說明如何在 Google Distributed Cloud (GDC) 實體隔離環境中,建立備份的精細還原作業。

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

事前準備

確認您已有備份。詳情請參閱「規劃一組備份」。

要求 IAM 角色

如要為備份建立精細還原,請要求 IAM 機構組織管理員或 IAM 專案管理員授予下列其中一個角色:

  • 使用者叢集備份管理員 (user-cluster-backup-admin):建立、取得、列出、監控、更新、修補及刪除備份資源,例如使用者叢集中的備份和還原方案。請與 IAM 機構組織管理員聯絡,要求取得這個角色。

  • 備份建立者 (backup-creator):建立、取得、列出、監控、更新、修補及刪除手動備份要求和手動還原要求。如要取得這個角色,請與 IAM 專案管理員聯絡。

建立精細還原

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

  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-vars 的 ConfigMap 資源。如要選擇核心群組下的資源,請在 group 欄位中使用空字串。

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

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

這個範例會還原所有可用資源,但使用精細還原 exclusionFilters 排除名為 sc1 的 groupKind 資源。

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

還原含有兩個標籤的資源

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

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

排除某些 GroupKind 的所有資源

這個範例會使用精細還原 exclusionFilters 排除這兩個 GroupKind,還原所有可用資源,但不包括 ConfigMap 和 storage.k8s.io/StorageClass 的 groupKind 資源。

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

後續步驟