创建精细恢复

本页面介绍了如何在 Google Distributed Cloud (GDC) 气隙环境中为备份创建精细恢复。

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

准备工作

如需为备份创建精细恢复,您必须具备以下条件:

  • 现有备份。如需了解详情,请参阅规划一组备份
  • 必要的身份和访问权限角色:

    • 对于 PA 用户:
      • 用户集群备份管理员:管理用户集群中的备份资源,例如备份和恢复计划。请让您的组织 IAM 管理员向您授予 User Cluster Backup Admin (user-cluster-backup-admin) 角色。
    • 对于 AO 用户:
      • 备份创建器:创建手动备份和恢复。请让您的项目 IAM 管理员为您授予 Backup Creator (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 格式提供。

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

此示例恢复命名空间 webserver 中名为 nginx-varsConfigMap 资源,它使用精细恢复 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:value1key2:value2 的资源,它使用精细恢复 inclusionFilters 来选择资源。

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

后续步骤