-
必需的。
-
虚拟机磁盘使用 CSI 快照或 Restic 进行备份。
-
csi
插件使用 Kubernetes CSI 快照 API。-
OADP 1.1 或更高版本使用
snapshot.storage.k8s.io/v1
-
OADP 1.0 使用
snapshot.storage.k8s.io/v1beta1
-
-
仅限 OADP 1.2。
OpenShift 数据保护 API (OADP) 功能提供备份和恢复应用程序的选项。
默认插件使 Velero 能够与某些云提供商集成,并备份和恢复 OpenShift Container Platform 资源。
OpenShift 数据保护 API (OADP) 支持以下功能
您可以使用 OADP 备份 OpenShift 平台上的所有应用程序,也可以按类型、命名空间或标签过滤资源。
OADP 通过将 Kubernetes 对象和内部镜像保存为对象存储上的存档文件来备份它们。OADP 通过使用本地云快照 API 或容器存储接口 (CSI) 创建快照来备份持久卷 (PV)。对于不支持快照的云提供商,OADP 使用 Restic 备份资源和 PV 数据。
为了成功备份和恢复,您必须从应用程序备份中排除 Operators。 |
您可以从备份中恢复资源和 PV。您可以恢复备份中的所有对象,也可以按命名空间、PV 或标签过滤对象。
为了成功备份和恢复,您必须从应用程序备份中排除 Operators。 |
您可以按指定的时间间隔安排备份。
您可以使用钩子在 Pod 中的容器上运行命令,例如fsfreeze
来冻结文件系统。您可以配置钩子在备份或恢复之前或之后运行。恢复钩子可以在 init 容器或应用程序容器中运行。
OpenShift 数据保护 API (OADP) 提供与存储提供商集成的默认 Velero 插件,以支持备份和快照操作。您可以根据 Velero 插件创建自定义插件。
OADP 还提供用于 OpenShift Container Platform 资源备份、OpenShift 虚拟化资源备份和容器存储接口 (CSI) 快照的插件。
OADP 插件 | 功能 | 存储位置 |
---|---|---|
|
备份和恢复 Kubernetes 对象。 |
AWS S3 |
使用快照备份和恢复卷。 |
AWS EBS |
|
|
备份和恢复 Kubernetes 对象。 |
Microsoft Azure Blob 存储 |
使用快照备份和恢复卷。 |
Microsoft Azure 托管磁盘 |
|
|
备份和恢复 Kubernetes 对象。 |
Google Cloud Storage |
使用快照备份和恢复卷。 |
Google Compute Engine 磁盘 |
|
|
备份和恢复 OpenShift Container Platform 资源。[1] |
对象存储 |
|
备份和恢复 OpenShift Virtualization 资源。[2] |
对象存储 |
|
使用 CSI 快照备份和恢复卷。[3] |
支持 CSI 快照的云存储 |
|
VolumeSnapshotMover 将快照从集群迁移到对象存储,以便在恢复过程中用于恢复有状态应用程序,例如在集群删除的情况下。[4] |
对象存储 |
必需的。
虚拟机磁盘使用 CSI 快照或 Restic 进行备份。
csi
插件使用 Kubernetes CSI 快照 API。
OADP 1.1 或更高版本使用 snapshot.storage.k8s.io/v1
OADP 1.0 使用 snapshot.storage.k8s.io/v1beta1
仅限 OADP 1.2。
安装 Velero 时,您可以配置两种类型的插件
默认云提供商插件
自定义插件
两种类型的插件都是可选的,但大多数用户至少会配置一个云提供商插件。
在部署期间配置 oadp_v1alpha1_dpa.yaml
文件时,您可以安装以下任何默认 Velero 云提供商插件
aws
(Amazon Web Services)
gcp
(Google Cloud Platform)
azure
(Microsoft Azure)
openshift
(OpenShift Velero 插件)
csi
(容器存储接口)
kubevirt
(KubeVirt)
您在部署期间在 oadp_v1alpha1_dpa.yaml
文件中指定所需的默认插件。
以下 .yaml
文件安装 openshift
、aws
、azure
和 gcp
插件
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: dpa-sample
spec:
configuration:
velero:
defaultPlugins:
- openshift
- aws
- azure
- gcp
在部署期间配置 oadp_v1alpha1_dpa.yaml
文件时,您可以通过指定插件 image
和 name
来安装自定义 Velero 插件。
您在部署期间在 oadp_v1alpha1_dpa.yaml
文件中指定所需的自定义插件。
以下 .yaml
文件安装默认的 openshift
、azure
和 gcp
插件以及一个名为 custom-plugin-example
且映像为 quay.io/example-repo/custom-velero-plugin
的自定义插件
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: dpa-sample
spec:
configuration:
velero:
defaultPlugins:
- openshift
- azure
- gcp
customPlugins:
- name: custom-plugin-example
image: quay.io/example-repo/custom-velero-plugin
OpenShift API for Data Protection (OADP) 支持以下架构
AMD64
ARM64
PPC64le
s390x
OADP 1.2.0 及更高版本支持 ARM64 架构。 |
OpenShift API for Data Protection (OADP) 是平台中立的。以下信息仅与 IBM Power® 和 IBM Z® 相关。
OADP 1.1.7 已成功针对 IBM Power® 和 IBM Z® 上的 OpenShift Container Platform 4.11 进行了测试。以下部分提供了 OADP 1.1.7 在这些系统的备份位置方面的测试和支持信息。
OADP 1.2.3 已成功针对 IBM Power® 和 IBM Z® 上的 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 进行了测试。以下部分提供了 OADP 1.2.3 在这些系统的备份位置方面的测试和支持信息。
OADP 1.3.3 已成功针对 IBM Power® 和 IBM Z® 上的 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 进行了测试。以下部分提供了 OADP 1.3.3 在这些系统的备份位置方面的测试和支持信息。
OADP 1.4.1 已成功针对 IBM Power® 和 IBM Z® 上的 OpenShift Container Platform 4.14、4.15 和 4.16 进行了测试。以下部分提供了 OADP 1.4.1 在这些系统的备份位置方面的测试和支持信息。
运行 OpenShift Container Platform 4.11 和 4.12 的 IBM Power®,以及 OADP 1.1.7 已成功针对 AWS S3 备份位置目标进行了测试。尽管测试仅涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 IBM Power®、OpenShift Container Platform 4.11 和 4.12 以及 OADP 1.1.7。
运行 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 的 IBM Power®,以及 OADP 1.2.3 已成功针对 AWS S3 备份位置目标进行了测试。尽管测试仅涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 IBM Power®、OpenShift Container Platform 4.12、4.13、4.14 和 4.15 以及 OADP 1.2.3。
运行 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 的 IBM Power®,以及 OADP 1.3.3 已成功针对 AWS S3 备份位置目标进行了测试。尽管测试仅涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 IBM Power®、OpenShift Container Platform 4.13、4.14 和 4.15 以及 OADP 1.3.3。
运行 OpenShift Container Platform 4.14、4.15 和 4.16 的 IBM Power®,以及 OADP 1.4.1 已成功针对 AWS S3 备份位置目标进行了测试。尽管测试仅涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 IBM Power®、OpenShift Container Platform 4.14、4.15 和 4.16 以及 OADP 1.4.1。
运行 OpenShift Container Platform 4.11 和 4.12 的 IBM Z®,以及 OpenShift API for Data Protection (OADP) 1.1.7 已成功针对 AWS S3 备份位置目标进行了测试。尽管测试仅涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 IBM Z®、OpenShift Container Platform 4.11 和 4.12 以及 OADP 1.1.7。
在 AWS S3 备份位置目标上成功测试了运行 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 以及 OADP 1.2.3 的 IBM Z®。虽然测试只涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 以及 OADP 1.2.3 的 IBM Z®。
在 AWS S3 备份位置目标上成功测试了运行 OpenShift Container Platform 4.12、4.13、4.14 和 4.15 以及 1.3.3 的 IBM Z®。虽然测试只涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 OpenShift Container Platform 4.13、4.14 和 4.15 以及 1.3.3 的 IBM Z®。
在 AWS S3 备份位置目标上成功测试了运行 OpenShift Container Platform 4.14、4.15 和 4.16 以及 1.4.1 的 IBM Z®。虽然测试只涉及 AWS S3 目标,但 Red Hat 也支持在所有非 AWS 的 S3 备份位置目标上运行 OpenShift Container Platform 4.14、4.15 和 4.16 以及 1.4.1 的 IBM Z®。
以下部分描述了 OpenShift 数据保护 API (OADP) 插件中的已知问题。
当备份和备份存储位置 (BSL) 在数据保护应用程序 (DPA) 范围之外管理时,OADP 控制器(即 DPA 调和)不会创建相关的oadp-<bsl_name>-<bsl_provider>-registry-secret
。
运行备份时,OpenShift Velero 插件会在镜像流备份上发生崩溃,并显示以下崩溃错误。
024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item"
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…
要避免 Velero 插件崩溃错误,请执行以下步骤:
使用相关标签标记自定义 BSL。
$ oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bsl
标记 BSL 后,等待 DPA 调和。
您可以通过对 DPA 本身进行任何微小更改来强制调和。 |
DPA 调和后,确认已创建相关的oadp-<bsl_name>-<bsl_provider>-registry-secret
,并且正确的注册表数据已填充到其中。
$ oc -n openshift-adp get secret/oadp-<bsl_name>-<bsl_provider>-registry-secret -o json | jq -r '.data'
如果您同时启用cloudstorage
和restic
配置 DPA,则openshift-adp-controller-manager
pod 会无限期地崩溃和重启,直到 pod 因崩溃循环段错误而失败。
您只能定义velero
或cloudstorage
,因为它们是互斥字段。
如果您同时定义了velero
和cloudstorage
,则openshift-adp-controller-manager
会失败。
如果您既没有定义velero
也没有定义cloudstorage
,则openshift-adp-controller-manager
会失败。
有关此问题的更多信息,请参见 OADP-1054。