添加备份代码库

本页面介绍了如何在 Google Distributed Cloud (GDC) 气隙环境中为集群工作负载创建备份代码库。

备份存储库表示与 S3 兼容的备份存储位置。备份代码库还用于存储备份、备份方案、恢复方案和恢复的记录。

准备工作

如需创建备份代码库,您必须具备以下条件:

  • 有可用的 S3 兼容端点。
  • 之前创建的存储桶,用作备份代码库。
  • 您已为对象存储桶授予访问权限
  • 必要的身份和访问权限角色:

    • 组织备份管理员:管理用户集群中的备份和恢复计划等备份资源。请让您的组织 IAM 管理员向您授予组织备份管理员 (organization-backup-admin) 角色。如需了解详情,请参阅角色定义

创建代码库

使用 GDC 控制台或 API 创建代码库。

控制台

  1. 登录 GDC 控制台。
  2. 在导航菜单中,点击 Backup for Clusters。确保项目选择器中未选择任何项目。
  3. 点击创建代码库
  4. 输入代码库名称。说明是可选的。
  5. 主集群(读/写)列表中,选择一个集群。
  6. 关联的集群(只读)列表中,选择关联的集群。
  7. S3 URI 端点字段中,输入包含对象存储网站的完全限定域名 (FQDN) 的端点。例如 https://storagegrid.zone.DOMAIN.SUFFIX:PORT
  8. 存储桶名称字段中,输入存储桶的完全限定名称,该名称可从 GDC 存储桶自定义资源的状态中找到。
  9. 存储桶区域字段中,输入存储桶的创建区域。
  10. 访问密钥 ID 列表中,输入访问密钥 ID。
  11. 访问密钥字段中,输入访问密钥。
  12. 点击创建

API

如需使用备份和恢复 API,您必须配置有效的ClusterBackupRepository 自定义资源作为备份位置,并提供所需的 S3 凭据。

  1. 提取在授予和获取存储桶访问权限中生成的 Secret。

  2. 添加 ClusterBackupRepository 自定义资源以使用这些凭据,并将新资源应用于 Management API 服务器。 备份代码库是集群范围的:

    apiVersion: backup.gdc.goog/v1
    kind: ClusterBackupRepository
    metadata:
      name: user-1-user
      namespace: user-1-user-cluster
    spec:
      secretReference:
        namespace: "object-storage-secret-ns"
        name: "object-storage-secret"
      endpoint: "https://objectstorage.google.gdch.test"
      type: "S3"
      s3Options:
        bucket: "fully-qualified-bucket-name"
        region: "us-east-1"
        forcePathStyle: true
      importPolicy: "ReadWrite"
    

    此示例包含以下值:

    说明
    secretReference 一个 NamespacedName,用于引用包含 endpoint 的访问凭据的 Secret。
    endpoint 存储系统的完全限定域名,例如 https://storagegrid.zone.DOMAIN.SUFFIX:PORT
    type 备份代码库的类型。仅支持 S3 类型。
    s3Options S3 端点的配置。如果 typeS3,则必须提供此值。
    • bucket:存储桶的完全限定名称,可从 GDC 存储桶自定义资源的状态中找到。
    • region:指定端点的区域。区域是存储系统特有的。
    • forcePathStyle:此选项用于决定是否强制使用对象路径样式网址。
    importPolicy 设置为以下其中一项:
    • ReadWrite:此代码库可用于安排或创建备份、备份方案和恢复。
    • ReadOnly:此代码库只能用于导入和查看备份。无法在此代码库中创建新的备份或资源,但恢复操作可以使用只读备份并引用它们进行恢复。备份代码库用作 ReadOnly. 的频率不受限制

备份代码库导入政策

所有集群都必须至少有一个 ReadWrite 存储库,才能成功使用备份和恢复功能。ReadOnly 代码库是可选的,没有限制,用于了解其他集群备份,以便进行跨集群恢复。

ReadOnly 代码库不能用作其他备份的存储位置,也不能用作导入它们的集群中的备份方案。

将代码库导入为 ReadWrite 会声明该代码库归相应集群所有,从而防止其他集群将同一代码库导入为 ReadWrite。导入 ReadWrite 代码库后,该代码库中之前的所有备份、备份方案和恢复记录都会作为本地自定义资源导入到目标集群中。

将代码库导入为 ReadOnly 不会声明代码库,只会导入备份、备份方案、恢复和恢复方案。只读代码库中的备份方案不会安排备份,它们的存在是为了让您了解要导入的集群中存在哪些备份方案。移除 ReadOnly 代码库会清理集群中的所有导入资源,并且不会影响存储位置中的资源,因为只读代码库不会对对象存储执行任何写入操作。

从集群中移除 ReadWrite 代码库时:

  • 与相应代码库关联的所有本地自定义资源(例如备份和恢复)都会从当前集群中移除。
  • 系统会移除该集群对代码库的声明,从而允许其他集群将该代码库用作 ReadWrite。不过,这些资源不会从存储端点中移除。

后续步骤