第 10 章 使用自定义资源进行 3scale 备份和恢复


本章包含使用 API Manager 自定义资源(CR)部署的 Red Hat 3scale API 管理安装的备份和恢复功能详情。在这种情况下,CRD 由 3scale Operator 提供。

来自 operator 功能的自定义资源不属于 3scale 安装的一部分。因此,在 3scale 安装备份和恢复功能中不包含自定义资源。

前提条件

  • 3scale 安装

以下小节包含使用 Operator 执行 3scale 备份和恢复的步骤。

10.1. 使用操作器备份 3scale

下面的部分提供了备份由 APIManager 自定义资源部署的 3scale 安装所需的信息和步骤。

10.1.1. 备份兼容场景

要查看可以备份的 3scale 安装配置,请查看以下部分:

前提条件

  • 备份 3scale 外部数据库:

    • backend-redis
    • system-redis
    • system-database
    • zync (可选)
  • 为 PVC 置备足够空间,使其包含备份的数据。
注意

如果您使用 APIManager 部署 3scale,则无法使用 Amazon S3 作为系统的 FileStorage。

如需有关外部数据库的更多信息,请参阅 外部数据库安装

10.1.2. 备份场景范围

外部配置以下数据库时,可以使用备份功能:

  • 后端 Redis 数据库
  • 系统 Redis 数据库
  • 系统数据库 - MySQL 或 PostgreSQL
  • Zync 数据库(可选)

10.1.3. 备份数据

下表显示了已备份的数据的列表:

表 10.1. 备份的数据
对象对象类型数据

Secrets

  • system-smtp
  • system-seed
  • backend-internal-api
  • backend-listener
  • system-events-hook
  • system-app
  • system-recaptcha
  • zync
  • system-master-apicast
  • system-memcache
  • system-database
  • backend-redis
  • system-redis

ConfigMaps

  • system-environment
  • apicast-environment

APIManager

APIManager CR Kubernetes 对象定义 - json 模式定义

System FileStorage

当系统文件存储的位置位于 PersistentVolumeClaim(PVC)中时

10.1.4. 备份 3scale

要备份使用现有 APIManager 部署 3scale 安装,请使用以下步骤:

流程

  1. 备份以下 Kubernetes secret:

    • backend-redis
    • system-redis
    • system-database
    • zync (可选)
  2. 在部署了由 APIManager 对象管理的 3scale 安装的同一命名空间中创建 APIManagerBackup CR,如下例所示:

    示例 1

      apiVersion: apps.3scale.net/v1alpha1
      kind: APIManagerBackup
      metadata:
       name: example-apimanagerbackup-pvc
      spec:
        backupDestination:
          persistentVolumeClaim:
            resources:
              requests: "10Gi"

    示例 2 提供已存在的 PersistentVolume 名称:

      apiVersion: apps.3scale.net/v1alpha1
      kind: APIManagerBackup
      metadata:
       name: example-apimanagerbackup-pvc
      spec:
        backupDestination:
          persistentVolumeClaim:
            # resources specification is required but ignored when providing a volumeName as per K8s PVCs requirements behavior
            resources:
              requests: "10Gi"
            volumeName: "my-preexisting-persistent-volume"

  3. 等待 APIManagerBackup 完成。通过获取 APIManagerBackup 的内容并等待 .status.completed 字段设置为 true 进行检查。

备份内容在备份数据中详细介绍。

APIManagerBackup 的 status 部分中的其他字段显示备份详情,如当配置的备份目的地为 PVC 时备份数据的 PVC 名称。

如需以后的引用,请记下 status.backupPersistentVolumeClaimName 字段的值。当使用 APIManagerRestore 恢复 APIManager 安装时,它所需的其中一个字段是 PersistentVolumeClaimName 备份源。

10.1.5. 备份 3scale 自定义资源

如果您在 OpenShift 管理员帐户之外没有 CR 副本,使用以下命令创建 3scale 项目 CR 的备份:

  • 键入以下命令从 3scale 项目中导出 ActiveDocs CR:

    oc get activedocs.capabilities.3scale.net -o yaml > activedocs.yaml
  • 键入以下命令从 3scale 项目中导出 backend CR:

    oc get backend.capabilities.3scale.net -o yaml > backend.yaml
  • 键入以下命令,从 3scale 项目中导出 CustomPolicyDefinition CR:

    oc get custompolicydefinition.capabilities.3scale.net -o yaml > custompolicydefinition.yaml
  • 键入以下命令从 3scale 项目中导出 DeveloperAccount CR:

    oc get developeraccount.capabilities.3scale.net -o yaml > developeraccount.yaml
  • 键入以下命令从 3scale 项目中导出 DeveloperUser CR:

    oc get developeruser.capabilities.3scale.net -o yaml > developeruser.yaml
  • 键入以下命令从 3scale 项目中导出 OpenAPI CR:

    oc get openapi.capabilities.3scale.net -o yaml > openapi.yaml
  • 键入以下命令从 3scale 项目中导出产品 CR:

    oc get product.capabilities.3scale.net -o yaml > product.yaml
  • 键入以下命令,从 3scale 项目中导出租户 CR:

    oc get tenant.capabilities.3scale.net -o yaml > tenant.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.