×

作为集群管理员,您可以通过安装 OADP 运算符来安装用于数据保护的 OpenShift API (OADP)。OADP 运算符安装 Velero 1.14

从 OADP 1.0.4 开始,所有 OADP 1.0.z 版本只能用作容器迁移工具包运算符的依赖项,并且不能作为独立运算符使用。

要备份 Kubernetes 资源和内部镜像,您必须将对象存储作为备份位置,例如以下某种存储类型

您可以为每个单独的 OADP 部署在同一命名空间内配置多个备份存储位置。

除非另有说明,“NooBaa”指的是提供轻量级对象存储的开源项目,而“多云对象网关 (MCG)”指的是 Red Hat 对 NooBaa 的发行版。

有关 MCG 的更多信息,请参见 使用您的应用程序访问多云对象网关

CloudStorage API(自动创建对象存储桶)只是一个技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且功能可能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参见 技术预览功能支持范围

当您使用 CloudStorage 对象并希望 OADP 使用 CloudStorage API 自动创建一个用作 BackupStorageLocation 的 S3 存储桶时,CloudStorage API 是一个技术预览功能。

CloudStorage API 支持通过指定现有 S3 存储桶来手动创建 BackupStorageLocation 对象。目前,自动创建 S3 存储桶的 CloudStorage API 仅对 AWS S3 存储启用。

您可以使用快照或文件系统备份 (FSB) 来备份持久卷 (PV)。

要使用快照备份 PV,您必须拥有支持原生快照 API 或容器存储接口 (CSI) 快照的云提供商,例如以下云提供商之一

如果您想在 OCP 4.11 及更高版本上使用 CSI 备份,请安装 OADP 1.1.x。

OADP 1.0.x 不支持在 OCP 4.11 及更高版本上进行 CSI 备份。OADP 1.0.x 包含 Velero 1.7.x 并需要 API 组 snapshot.storage.k8s.io/v1beta1,而 OCP 4.11 及更高版本中不存在此 API 组。

如果您的云提供商不支持快照,或者您的存储是 NFS,您可以使用对象存储上的文件系统备份:Kopia 或 Restic 备份应用程序

您先创建一个默认的 Secret,然后安装数据保护应用程序。

兼容 AWS S3 的备份存储提供商

OADP 兼容许多对象存储提供商,可用于不同的备份和快照操作。一些对象存储提供商得到完全支持,一些不受支持但已知可以工作,还有一些已知存在限制。

支持的备份存储提供商

以下兼容 AWS S3 的对象存储提供商通过 AWS 插件完全受 OADP 支持,可用作备份存储位置

  • MinIO

  • 多云对象网关 (MCG)

  • Amazon Web Services (AWS) S3

  • IBM Cloud® 对象存储 S3

  • Ceph RADOS 网关 (Ceph 对象网关)

  • Red Hat Container Storage

  • Red Hat OpenShift 数据基金会

以下兼容的对象存储提供商受支持,并拥有其自己的 Velero 对象存储插件

  • Google Cloud Platform (GCP)

  • 微软 Azure

不支持的备份存储提供商

以下兼容 AWS S3 的对象存储提供商已知可通过 AWS 插件与 Velero 一起使用,用作备份存储位置,但是,它们不受 Red Hat 支持,并且未经过 Red Hat 测试

  • Oracle Cloud

  • DigitalOcean

  • NooBaa(除非使用多云对象网关 (MCG) 安装)

  • 腾讯云

  • Quobyte

  • Cloudian HyperStore

除非另有说明,“NooBaa”指的是提供轻量级对象存储的开源项目,而“多云对象网关 (MCG)”指的是 Red Hat 对 NooBaa 的发行版。

有关 MCG 的更多信息,请参见 使用您的应用程序访问多云对象网关

具有已知限制的备份存储提供商

以下兼容 AWS S3 的对象存储提供商已知可通过 AWS 插件与 Velero 一起使用,但功能有限

  • Swift - 它可以作为备份存储位置用于备份存储,但不兼容用于基于文件系统的卷备份和还原的 Restic。

在 OpenShift 数据基金会上配置多云对象网关 (MCG) 以进行灾难恢复

如果您在 OpenShift 数据基金会上为您的 MCG bucket backupStorageLocation 使用集群存储,请将 MCG 配置为外部对象存储。

未能将 MCG 配置为外部对象存储可能会导致备份不可用。

除非另有说明,“NooBaa”指的是提供轻量级对象存储的开源项目,而“多云对象网关 (MCG)”指的是 Red Hat 对 NooBaa 的发行版。

有关 MCG 的更多信息,请参见 使用您的应用程序访问多云对象网关

步骤

关于 OADP 更新通道

安装 OADP 运算符时,您需要选择一个更新通道。此通道决定您接收 OADP 运算符和 Velero 的哪些升级。您可以随时切换通道。

以下更新通道可用

  • 稳定通道现已弃用。稳定通道包含 OADP ClusterServiceVersion 的补丁(z 流更新),用于 OADP.v1.1.zOADP.v1.0.z 的旧版本。

  • stable-1.0 通道已弃用且不受支持。

  • stable-1.1 通道已弃用且不受支持。

  • stable-1.2 通道已弃用且不受支持。

  • stable-1.3 通道包含 OADP.v1.3.z,这是最新的 OADP 1.3 ClusterServiceVersion

  • stable-1.4 通道包含 OADP.v1.4.z,这是最新的 OADP 1.4 ClusterServiceVersion

有关更多信息,请参阅OpenShift 运算符生命周期

哪个更新通道适合您?

  • 稳定通道现已弃用。如果您已经在使用稳定通道,您将继续从 OADP.v1.1.z 获取更新。

  • 选择 stable-1.y 更新通道来安装 OADP 1.y 并继续接收其补丁。如果您选择此通道,您将收到版本 1.y.z 的所有 z 流补丁。

何时必须切换更新通道?

  • 如果您已安装 OADP 1.y,并且只想接收该 y 流的补丁,则必须从 稳定更新通道切换到 stable-1.y 更新通道。然后,您将收到版本 1.y.z 的所有 z 流补丁。

  • 如果您已安装 OADP 1.0,想要升级到 OADP 1.1,然后只想接收 OADP 1.1 的补丁,则必须从 stable-1.0 更新通道切换到 stable-1.1 更新通道。然后,您将收到版本 1.1.z 的所有 z 流补丁。

  • 如果您已安装 OADP 1.y(其中 y 大于 0),并且想要切换到 OADP 1.0,则必须卸载 OADP 运算符,然后使用 stable-1.0 更新通道重新安装它。然后,您将收到版本 1.0.z 的所有 z 流补丁。

您无法通过切换更新通道从 OADP 1.y 切换到 OADP 1.0。您必须卸载运算符,然后重新安装它。

在多个命名空间中安装 OADP

您可以在同一集群的多个命名空间中安装用于数据保护的 OpenShift API,以便多个项目所有者可以管理他们自己的 OADP 实例。此用例已通过文件系统备份 (FSB) 和容器存储接口 (CSI) 验证。

您按照本文档中包含的每个平台的步骤安装每个 OADP 实例,并需要满足以下额外要求

  • 同一集群上所有 OADP 部署必须是同一版本,例如 1.4.0。不支持在同一集群上安装不同版本的 OADP。

  • 每个单独的 OADP 部署必须有一组唯一的凭据和至少一个 BackupStorageLocation 配置。您还可以在同一命名空间中使用多个 BackupStorageLocation 配置。

  • 默认情况下,每个 OADP 部署都具有跨命名空间的集群级访问权限。OpenShift Container Platform 管理员需要仔细检查潜在的影响,例如不要同时备份和还原到同一命名空间。

其他资源

基于收集数据的 Velero CPU 和内存需求

以下建议基于在规模和性能实验室中对性能的观察。备份和还原资源可能会受到插件类型、该备份或还原所需的资源量以及与这些资源相关的持久卷 (PV) 中相应数据的影响。

配置的 CPU 和内存需求

配置类型 [1] 平均使用率 [2] 高使用率 resourceTimeouts

CSI

Velero

CPU - 请求 200m,限制 1000m

内存 - 请求 256Mi,限制 1024Mi

Velero

CPU - 请求 200m,限制 2000m

内存 - 请求 256Mi,限制 2048Mi

N/A

Restic

[3] Restic

CPU - 请求 1000m,限制 2000m

内存 - 请求 16Gi,限制 32Gi

[4] Restic

CPU - 请求 2000m,限制 8000m

内存 - 请求 16Gi,限制 40Gi

900m

[5] 数据移动器

N/A

N/A

10m - 平均使用率

60m - 高使用率

  1. 平均使用率 - 将这些设置用于大多数使用情况。

  2. 高使用率 - 将这些设置用于高使用率情况,例如大型 PV(500GB 使用量)、多个命名空间(100 多个)或单个命名空间内的许多 Pod(2000 个以上 Pod),以及用于涉及大型数据集的备份和还原的最佳性能。

  3. Restic 资源使用情况取决于数据量和数据类型。例如,许多小文件或大量数据都可能导致 Restic 使用大量资源。 Velero 文档中提到的默认值为 500m,但在我们的大部分测试中,我们发现 200m 的请求量与 1000m 的限制量相适合。正如 Velero 文档中所述,确切的 CPU 和内存使用情况取决于文件和目录的规模,以及环境限制。

  4. 增加 CPU 能显著提高备份和恢复速度。

  5. 数据移动器 - 数据移动器的默认 resourceTimeout 为 10m。我们的测试表明,对于恢复大型 PV(500GB 使用量),需要将 resourceTimeout 增加到 60m。

本指南中列出的资源需求仅适用于平均使用情况。对于大量使用,请根据上表中的说明调整设置。

大型使用情况下的 NodeAgent CPU

测试表明,在使用 OpenShift 数据保护 (OADP) API 时,增加 NodeAgent CPU 可以显著提高备份和恢复速度。

由于 Kopia 占用资源非常积极,因此不建议在运行生产工作负载的节点上的生产环境中无限制地使用 Kopia。但是,如果 Kopia 的限制设置过低,则会导致 CPU 受限,从而导致备份和恢复速度缓慢。测试表明,使用 20 个内核和 32 Gi 内存运行 Kopia 可以支持备份和恢复超过 100 GB 数据、多个命名空间或单个命名空间中超过 2000 个 Pod 的操作。

测试未检测到这些资源规格下的 CPU 受限或内存饱和。

您可以按照 更改 rook-ceph Pod 的 CPU 和内存资源 中的步骤设置 Ceph MDS Pod 中的这些限制。

您需要将以下几行添加到存储集群自定义资源 (CR) 以设置限制

   resources:
     mds:
       limits:
         cpu: "3"
         memory: 128Gi
       requests:
         cpu: "3"
         memory: 8Gi