创建精细恢复

本文档介绍了如何在 Google Distributed Cloud (GDC) 网闸隔离配置中为备份创建精细恢复。

精细恢复功能可让您从备份中恢复部分资源。此功能可灵活地细化恢复方案中定义的恢复范围。

准备工作

确保您已有备份。如需了解详情,请参阅规划一组备份。

申请 IAM 角色

如需为备份创建精细恢复,请让您的 IAM 组织管理员或 IAM 项目管理员为您授予以下角色之一:

  • 用户集群备份管理员 (user-cluster-backup-admin):在用户集群中创建、获取、列出、监视、更新、修补和删除备份资源(例如备份和恢复方案)。请与您的 IAM 组织管理员联系,申请此角色。

  • Backup Creator (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 格式提供。

恢复单个命名空间范围的资源

此示例恢复命名空间 webserver 中名为 nginx-vars 的 ConfigMap 资源,它使用精细恢复 inclusionFilters 来选择该资源。如果您要选择核心组下的资源,请对 group 字段使用空字符串。

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

排除单个集群范围的资源

此示例恢复除名称为 sc1 的一个 groupKind 资源之外的所有可用资源,它使用精细恢复 exclusionFilters 排除该资源。

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

恢复具有两个标签的资源

此示例恢复同时具有标签 key1:value1 和 key2:value2 的资源,它使用精细恢复 inclusionFilters 来选择资源。

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

排除某些 GroupKind 的所有资源

此示例恢复除 ConfigMap 和 storage.k8s.io/StorageClass 的 groupKind 资源之外的所有可用资源,它使用精细恢复 exclusionFilters 排除这两个 GroupKind。

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

后续步骤