添加备份代码库

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

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

准备工作

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

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

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

创建代码库

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

控制台

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

API

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

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

备份代码库导入政策

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

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

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

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

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

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

后续步骤