4.6. 安装 OADP
4.6.1. 关于安装 OADP
作为集群管理员,您可以通过安装 OADP Operator 来为数据保护(OADP)安装 OpenShift API。OADP Operator 安装 Velero 1.14。
从 OADP 1.0.4 开始,所有 OADP 1.0.z 版本只能用作 Migration Toolkit for Containers Operator 的依赖项,且不能作为独立 Operator 提供。
要备份 Kubernetes 资源和内部镜像,必须将对象存储用作备份位置,如以下存储类型之一:
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- 多云对象网关
- IBM Cloud® Object Storage S3
- AWS S3 兼容对象存储,如 Multicloud 对象网关或 MinIO
您可以为每个单独的 OADP 部署在同一命名空间中配置多个备份存储位置。
除非另有指定,"NooBaa" 指的是提供轻量级对象存储的开源项目,而 "Multicloud Object Gateway (MCG) " 是指 NooBaa 的红帽发行版本。
如需有关 MCG 的更多信息,请参阅使用应用程序访问多云对象网关。
CloudStorage
API(它自动为对象存储创建一个存储桶)只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
当使用 CloudStorage
对象,并希望 OADP 使用 CloudStorage
API 自动创建 S3 存储桶以用作 BackupStorageLocation
时,CloudStorage
API 只是一个技术预览功能。
CloudStorage
API 支持通过指定一个现有的 S3 存储桶来手动创建 BackupStorageLocation
对象。自动创建 S3 存储桶的 CloudStorage
API 目前只为 AWS S3 存储启用。
您可以使用快照或文件系统备份 (FSB) 备份持久性卷 (PV)。
要使用快照备份 PV,您必须有一个支持原生快照 API 或 Container Storage Interface(CSI)快照的云供应商,如以下云供应商之一:
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- 启用 CSI 快照的云供应商,如 OpenShift Data Foundation
如果要在 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 及更高版本中不存在。
如果您的云供应商不支持快照,或者您的存储是 NFS,您可以在对象存储中使用文件系统备份对应用程序进行备份:Kopia 或 Restic 来备份应用程序。
您可以创建一个默认 Secret
,然后安装数据保护应用程序。
4.6.1.1. AWS S3 兼容备份存储供应商
OADP 与许多对象存储供应商兼容,用于不同的备份和恢复操作。一些对象存储供应商被完全支持,一些不被支持但可以正常工作,另外一些有已知的限制。
4.6.1.1.1. 支持的备份存储供应商
通过 AWS 插件,以下 AWS S3 兼容对象存储供应商被 OADP 完全支持作为备份存储:
- MinIO
- 多云对象网关 (MCG)
- Amazon Web Services (AWS) S3
- IBM Cloud® Object Storage S3
- Ceph RADOS 网关 (Ceph 对象网关)
- Red Hat Container Storage
- Red Hat OpenShift Data Foundation
- Google Cloud Platform (GCP)
- Microsoft Azure
Google Cloud Platform (GCP) 和 Microsoft Azure 有自己的 Velero 对象存储插件。
4.6.1.1.2. 不支持的备份存储供应商
通过 AWS 插件,以下 AWS S3 兼容对象存储供应商可以与 Velero 一起正常工作作为备份存储,但它们不被支持,且还没有经过红帽测试:
- Oracle Cloud
- DigitalOcean
- NooBaa,除非使用 Multicloud Object Gateway (MCG) 安装
- Tencent Cloud
- Quobyte
- Cloudian HyperStore
除非另有指定,"NooBaa" 指的是提供轻量级对象存储的开源项目,而 "Multicloud Object Gateway (MCG) " 是指 NooBaa 的红帽发行版本。
如需有关 MCG 的更多信息,请参阅使用应用程序访问多云对象网关。
4.6.1.1.3. 带有已知限制的备份存储供应商
通过 AWS 插件,以下 AWS S3 兼容对象存储供应商可以与 Velero 搭配使用,但有一些已知的限制:
- Swift - 它可以作为备份存储的备份存储位置,但对于基于文件系统的卷备份和恢复,它与 Restic 不兼容。
4.6.1.2. 为 OpenShift Data Foundation 上的灾难恢复配置多云对象网关 (MCG)
如果您在 OpenShift Data Foundation 上为 MCG bucket backupStorageLocation
使用集群存储,请将 MCG 配置为外部对象存储。
将 MCG 配置为外部对象存储可能会导致备份不可用。
除非另有指定,"NooBaa" 指的是提供轻量级对象存储的开源项目,而 "Multicloud Object Gateway (MCG) " 是指 NooBaa 的红帽发行版本。
如需有关 MCG 的更多信息,请参阅使用应用程序访问多云对象网关。
流程
- 将 MCG 配置为外部对象存储,如为混合或多云添加存储资源中所述。
4.6.1.3. 关于 OADP 更新频道
安装 OADP Operator 时,您可以选择更新频道。这个频道决定到您接收到的 OADP Operator 和 Velero 的哪些升级。您可以随时切换频道。
可用的更新频道如下:
-
stable 频道现已弃用。stable 频道包含
OADP.v1.1.z
和自OADP.v1.0.z
的更老版本的 OADPClusterServiceVersion
的补丁 (z-stream 更新)。 - stable-1.0 频道已弃用,且不被支持。
- stable-1.1 频道已弃用,且不被支持。
- stable-1.2 频道已弃用,且不被支持。
-
stable-1.3 频道包含
OADP.v1.3.z
,它是最新的 OADP 1.3ClusterServiceVersion
。 -
stable-1.4 频道包含
OADP.v1.4.z
,它是最新的 OADP 1.4ClusterServiceVersion
。
如需更多信息,请参阅 OpenShift Operator 生命周期。
哪个更新频道适合您?
-
stable 频道现已弃用。如果您已使用 stable 频道,您可以继续从
OADP.v1.1.z
获取更新。 - 选择 stable-1.y 更新频道来安装 OADP 1.y,并继续为其接收补丁。如果您选择此频道,您将收到版本 1.y.z 的所有 z-stream 补丁。
何时需要切换更新频道?
- 如果您安装了 OADP 1.y,且只想接收那个 y-stream 的补丁,则必须从 stable 更新频道切换到 stable-1.y 更新频道。然后,您将收到版本 1.y.z 的所有 z-stream 补丁。
- 如果您安装了 OADP 1.0,希望升级到 OADP 1.1,然后只接收 OADP 1.1 的补丁,则必须从 stable-1.0 更新频道切换到 stable-1.1 更新频道。然后,您将收到版本 1.1.z 的所有 z-stream 补丁。
- 如果您安装了 OADP 1.y,其 y 大于 0,并希望切换到 OADP 1.0,则必须卸载 OADP Operator,然后使用 stable-1.0 更新频道重新安装它。然后,您将收到 1.0.z 版本的所有 z-stream 补丁。
您无法通过切换更新频道从 OADP 1.y 切换到 OADP 1.0。您必须卸载 Operator,然后重新安装它。
4.6.1.4. 在多个命名空间中安装 OADP
您可以将 OpenShift API for Data Protection (OADP) 安装到同一集群中的多个命名空间中,以便多个项目所有者可以管理自己的 OADP 实例。这个用例已通过文件系统备份 (FSB) 和 Container Storage Interface (CSI) 进行验证。
您可以根据本文档中包含的每个平台流程指定安装每个 OADP 实例,并有以下额外的要求:
- 同一集群中的所有 OADP 部署都必须相同版本,如 1.4.0。不支持在同一集群中安装 OADP 的不同版本。
-
每个 OADP 部署都必须具有一组唯一的凭证和唯一的
BackupStorageLocation
配置。您还可以在同一命名空间中使用多个BackupStorageLocation
配置。 - 默认情况下,每个 OADP 部署在不同的命名空间中都有集群级别的访问权限。OpenShift Container Platform 管理员需要仔细全面地检查潜在的影响,如不同时备份和恢复同一命名空间。
4.6.1.5. OADP 不支持备份数据 immutability
从 OADP 1.3 开始,当目标对象存储配置了 immutability 选项时,备份可能无法按预期工作。 这些 immutability 选项由不同的名称引用,例如:
- S3 对象锁定
- 对象保留
- 存储桶版本控制
- Write Once Read Many (WORM) 存储桶
不支持的主要原因是,OADP 最初会将备份状态保存为 最终,然后再检查是否有仍在进行的异步操作。
在 OADP 1.3 之前的版本中,也不支持带有 immutability 配置的对象存储。您可能会遇到一些问题,即使备份可以正常工作。例如,当删除备份时,版本对象不会被删除。
根据具体供应商和配置,备份在某些情况下可能可以正常工作。
- AWS S3 服务支持备份,因为 S3 对象锁定仅适用于有版本的存储桶。您仍然可以更新新版本的对象数据。但是,当备份被删除时,对象的旧版本不会被删除。
- Azure Storage Blob 支持版本级别的 immutability 和容器级别的 immutability。在版本级别的情形中,数据 immutability 仍可在 OADP 中工作,但不能在容器级别工作。
- GCP Cloud 存储策略只支持存储桶级别的 immutability。因此,无法在 GCP 环境中实现它。
4.6.1.6. 基于收集到的数据的 Velero CPU 和内存要求
以下建议基于在扩展和性能实验室中观察到的性能。备份和恢复资源可能会受到插件类型、备份或恢复所需的资源数量,以及与这些资源相关的持久性卷 (PV) 中包含的相应数据。
4.6.1.6.1. 配置的 CPU 和内存要求
配置类型 | [1] 平均用量 | [2] 大使用 | resourceTimeouts |
---|---|---|---|
CSI | Velero: CPU- Request 200m, Limits 1000m 内存 - Request 256Mi, Limits 1024Mi | Velero: CPU- Request 200m, Limits 2000m 内存- Request 256Mi, Limits 2048Mi | N/A |
Restic | [3] Restic: CPU- Request 1000m, Limits 2000m 内存 - Request 16Gi, Limits 32Gi | [4] Restic: CPU - Request 2000m, Limits 8000m 内存 - Request 16Gi, Limits 40Gi | 900m |
[5] 数据 Mover | N/A | N/A | 10m - 平均使用 60m - 大型使用 |
- 平均使用 - 将这些设置用于大多数使用情况。
- 大型使用 - 使用这些设置进行大型使用情况,如大型 PV (500GB 使用情况)、多个命名空间(100+)或单个命名空间中的多个 pod (2000 pods+),以及对涉及大型数据集进行备份和恢复的最佳性能。
- Restic 资源使用量与数据的数量和数据类型对应。例如,许多小文件或大量数据都可能导致 Restic 使用大量资源。在 Velero 文档中 500m 是默认设置,但在我们的大多数测试中,我们认为 200m request 和 1000m limit 是比较适当的设置。如 Velero 文档中所述,除了环境限制外,具体的 CPU 和内存用量还取决于文件和目录的规模。
- 增加 CPU 会对改进备份和恢复时间有重大影响。
- Data Mover - Data Mover 默认 resourceTimeout 为 10m。我们的测试显示恢复大型 PV (500GB 使用量),需要将 resourceTimeout 增加到 60m。
本指南中列出的资源要求仅用于平均使用。对于大型用途,请按照上表所述调整设置。
4.6.1.6.2. 用于大用量的 NodeAgent CPU
测试显示,在使用 OpenShift API for Data Protection (OADP) 时,增加 NodeAgent
CPU 可以显著提高备份和恢复的时间。
您可以根据性能分析和首选项调整 OpenShift Container Platform 环境。当您使用 Kopia 进行文件系统备份时,在工作负载中使用 CPU 限制。
如果没有对 pod 使用 CPU 限制,则 pod 可以在可用时使用过量 CPU。如果指定了 CPU 限值,如果 pod 超过其限值,则 pod 可能会节流。因此,在 pod 中使用 CPU 限制被视为反模式。
确保准确指定 CPU 请求,以便 pod 能够利用过量 CPU。根据 CPU 请求而不是 CPU 限制,可以保证资源分配。
测试显示,在具有 20 个内核和 32 Gi 内存的环境中运行 Kopia,支持在跨多个命名空间或在一个命名空间中的 2000 个 pod 中对 100 GB 数据进行备份和恢复操作。在具有这样配置的环境中的测试中没有出现 CPU 限制或内存饱和的问题。
在某些环境中,您可能需要调整 Ceph MDS pod 资源以避免 pod 重启,当默认设置导致资源饱和时会出现这种情况。
有关如何在 Ceph MDS pod 中设置 pod 资源限制的更多信息,请参阅 更改 rook-ceph pod 上的 CPU 和内存资源。
4.6.2. 安装 OADP Operator
您可以使用 Operator Lifecycle Manager (OLM) 在 OpenShift Container Platform 4.16 上安装 Data Protection (OADP) Operator 的 OpenShift API。
OADP Operator 安装 Velero 1.14。
先决条件
-
您必须以具有
cluster-admin
权限的用户身份登录。
流程
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 - 使用 Filter by keyword 字段查找 OADP Operator。
- 选择 OADP Operator 并点 Install。
-
点 Install 在
openshift-adp
项目中安装 Operator。 -
点 Operators
Installed Operators 来验证安装。
4.6.2.1. OADP-Velero-OpenShift Container Platform 版本关系
OADP 版本 | Velero 版本 | OpenShift Container Platform 版本 |
---|---|---|
1.3.0 | 4.12-4.15 | |
1.3.1 | 4.12-4.15 | |
1.3.2 | 4.12-4.15 | |
1.3.3 | 4.12-4.15 | |
1.3.4 | 4.12-4.15 | |
1.3.5 | 4.12-4.15 | |
1.4.0 | 4.14-4.18 | |
1.4.1 | 4.14-4.18 | |
1.4.2 | 4.14-4.18 | |
1.4.3 | 4.14-4.18 |