Menu Close

第 8 章 使用 Operator 进行 3scale 备份和恢复

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

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

重要

使用 operator 进行 3scale 备份和恢复只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅 技术预览功能支持范围

先决条件

  • 3scale 安装

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

8.1. 使用操作器备份 3scale

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

8.1.1. 备份兼容场景

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

先决条件

  • 备份 3scale 外部数据库:

    • backend-redis
    • system-redis
    • system-database - MySQL 或 PostgreSQL
  • 为 PVC 置备足够空间,使其包含备份的数据。
注意

使用 APIManager 部署的一个 3scale 部署无法使用 S3 作为系统的 FileStorage 进行备份。

8.1.2. 备份场景范围

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

  • 后端 Redis 数据库
  • 系统 Redis 数据库
  • 系统数据库 - MySQL 或 PostgreSQL

8.1.3. 备份数据

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

表 8.1. 备份的数据

对象对象类型数据

Secrets

  • system-smtp
  • 系统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 自定义资源 Kubernetes 对象定义 - json 模式定义

System FileStorage

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

8.1.4. 备份 3scale

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

步骤

  1. 备份以下 Kubernetes secret:

    • backend-redis
    • system-redis
    • system-database
  2. 在部署了由 APIManager 对象管理的 3scale 安装的同一命名空间中创建 APIManager Backup 自定义资源,例如:

    示例 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 字段的值。当使用 APIManager Restore 恢复 APIManager 安装时,它所需的其中一个字段是 PersistentVolumeClaimName 备份源。