本页面介绍了如何在 Google Distributed Cloud (GDC) 气隙环境中为备份创建精细恢复。
精细恢复功能可让您从备份中恢复部分资源。此功能可灵活地细化恢复方案中定义的恢复范围。
准备工作
如需为备份创建精细恢复,您必须具备以下条件:
- 现有备份。如需了解详情,请参阅规划一组备份。
必要的身份和访问权限角色:
- 对于 PA 用户:
- 用户集群备份管理员:管理用户集群中的备份资源,例如备份和恢复计划。请让您的组织 IAM 管理员向您授予 User Cluster Backup Admin (
user-cluster-backup-admin
) 角色。
- 用户集群备份管理员:管理用户集群中的备份资源,例如备份和恢复计划。请让您的组织 IAM 管理员向您授予 User Cluster Backup Admin (
- 对于 AO 用户:
- 备份创建器:创建手动备份和恢复。请让您的项目 IAM 管理员为您授予 Backup Creator (
backup-creator
) 角色。
- 备份创建器:创建手动备份和恢复。请让您的项目 IAM 管理员为您授予 Backup Creator (
- 如需了解详情,请参阅角色定义。
- 对于 PA 用户:
创建精细恢复
如需创建具有精细过滤条件的恢复,请按以下步骤操作:
创建精细恢复过滤器。您可以使用以下 YAML 示例。
inclusionFilters: - groupKind: group: foo.io kind: Bar name: name1 namespace: ns1 exclusionFilters: - labels: key1: value1 key2: value2
创建
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