备份工作负载

借助 Google Distributed Cloud (GDC) 网闸隔离配置中的手动备份,您可以在应用升级之前保护 Kubernetes 集群上的容器工作负载和永久性卷。您可以根据现有方案创建按需副本、检查其状态,以及删除过时的条目。

准备工作

应用操作员 (AO) 用户只能通过现有备份方案执行手动备份。

申请 IAM 角色

如需创建、查看和删除备份,请让您的 IAM 组织管理员或 IAM 项目管理员为您授予以下角色之一:

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

  • Backup Creator (backup-creator):创建、获取、列出、监视、更新、修补和删除手动备份请求和手动恢复请求。请与您的 IAM 项目管理员联系,请求授予此角色。

创建手动备份

如果您的备份方案定义了备份的时间表,则系统会自动根据该时间表创建备份。您还可以在备份方案时间表范围之外手动创建备份。例如,您可能希望在升级应用之前备份工作负载。备份不包含集群配置信息,例如节点配置、节点池、初始集群大小或启用的功能。

备份会捕获两种形式的数据:

  • 配置备份:从正在备份的集群的 API 服务器中提取的一组 Kubernetes 资源说明。
  • 卷备份:PersistentVolumeClaims 的备份。

控制台

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击集群备份。
  3. 点击备份方案标签页。
  4. 点击要用于备份的方案。
  5. 点击开始备份。
  6. 输入备份名称和可选说明。
  7. 设置保留备份的天数。达到此天数后,备份会自动删除。
  8. 设置无法删除备份的天数。
  9. 点击开始。

API

手动备份必须引用备份配置的现有备份方案,并且必须通过发出 ManualClusterBackupRequest 来创建备份。

下面是一个 ManualClusterBackupRequest 示例:

apiVersion: backup.gdc.goog/v1
kind: ManualClusterBackupRequest
metadata:
  name: manualbackuprequest-test
  namespace: PROJECT_NAME
spec:
  clusterBackupName: "backup-test"
  clusterBackupPlanRef: "backupplan-test"
  deleteLockDays: 5
  retainDays: 6

将 PROJECT_NAME 替换为您的 GDC 项目的名称。

此示例包含以下值:

值 说明
clusterBackupName 要创建的备份的名称。
clusterBackupPlanRef 要用于备份配置的 ClusterBackupPlan 的名称。备份方案必须与 ManualClusterBackupRequest 位于同一命名空间中。
deleteLockDays 在备份创建后的指定天数内,禁止删除备份。这会替换 ClusterBackupPlan 中的 retentionPolicy。
retainDays 在备份创建后达到指定天数时删除备份。此值会替换 ClusterBackupPlan 中的 retentionPolicy。 保留政策不会覆盖存储位置的保留政策,也不能超过 90 天。

查看备份

拥有用户集群备份管理员 (user-cluster-backup-admin) 角色的用户可以查看组织中的所有备份。拥有 Backup Creator (backup-creator) 角色的用户可以查看项目中的所有备份。

控制台

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击集群备份。
  3. 点击选择项目,根据您的角色选择组织或项目:
    • 用户集群备份管理员:选择一个组织以查看组织中的所有备份,或选择一个项目以查看项目中的所有备份。
    • 备份创建者:选择一个项目,即可查看该项目中的所有备份。
  4. 点击备份标签页。
  5. 点击列表中的备份即可查看其详细信息。

kubectl

查看备份列表:

kubectl get clusterBackups

输出示例:

NAME            STATE
backup-test   Succeeded

删除备份

无法通过与 Kubernetes API 服务器的常规交互来删除备份。如需删除备份,请使用 GDC 控制台或发出 DeleteClusterBackupRequest。

控制台

从备份标签页中删除备份:

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击集群备份。
  3. 点击选择项目,根据您的角色选择组织或项目:
    • 用户集群备份管理员:选择一个组织以查看该组织中的所有备份,或选择一个项目以查看该项目中的所有备份。
    • 备份创建者:选择一个项目,即可查看该项目中的所有备份。
  4. 点击备份标签页。
  5. 点击要删除的备份对应的三点状菜单图标。
  6. 在文本字段中输入备份的名称。
  7. 点击删除备份按钮,完成此备份的删除。

或者,您也可以在查看备份方案时点击备份名称,从而删除备份:

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击集群备份。
  3. 点击选择项目,然后根据您的角色选择组织或项目:
    • 用户集群备份管理员:选择一个组织以查看该组织中的所有备份方案,或选择一个项目以查看该项目中的所有备份方案。
    • Backup Creator:选择一个项目,即可查看该项目中的所有备份方案。
  4. 点击备份方案标签页。
  5. 点击包含要删除的备份的备份方案的名称。
  6. 点击备份标签页。
  7. 点击要删除的备份的名称。
  8. 点击删除备份按钮。
  9. 在文本字段中输入备份的名称。
  10. 点击删除按钮,完成此备份的删除。

kubectl

请发送 DeleteClusterBackupRequest 请求:

apiVersion: backup.gdc.goog/v1
kind: DeleteClusterBackupRequest
metadata:
  name: deletebackuprequest-test
  namespace: PROJECT_NAME
spec:
  clusterBackupRef: "backup-test"

将 PROJECT_NAME 替换为您的 GDC 项目的名称。

此示例包含以下值:

  • backupName:要删除的备份的名称。此备份必须与 DeleteClusterBackupRequest 位于同一命名空间中。
  • DeleteClusterBackupRequest:从集群中删除备份自定义资源并从备份的存储位置移除与该备份关联的所有工件(包括卷数据)的资源。

后续步骤