-
必需的。
-
虚拟机磁盘使用 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 for Data Protection (OADP) 功能提供备份和恢复应用程序的选项。
默认插件使 Velero 能够与某些云提供商集成,并能够备份和恢复 AWS 上的 Red Hat OpenShift Service 资源。
OpenShift API for Data Protection (OADP) 支持以下功能
您可以使用 OADP 备份 OpenShift 平台上的所有应用程序,也可以按类型、命名空间或标签过滤资源。
OADP 通过将 Kubernetes 对象和内部镜像保存为对象存储上的归档文件来备份它们。OADP 通过使用原生云快照 API 或容器存储接口 (CSI) 创建快照来备份持久卷 (PV)。对于不支持快照的云提供商,OADP 使用 Restic 备份资源和 PV 数据。
为了备份和恢复成功,您必须从应用程序备份中排除 Operators。 |
您可以从备份中恢复资源和 PV。您可以恢复备份中的所有对象,也可以按命名空间、PV 或标签过滤对象。
为了备份和恢复成功,您必须从应用程序备份中排除 Operators。 |
您可以按指定的时间间隔安排备份。
您可以使用钩子在 Pod 中的容器中运行命令,例如fsfreeze
来冻结文件系统。您可以配置钩子在备份或恢复之前或之后运行。恢复钩子可以在 init 容器或应用程序容器中运行。
OpenShift API for Data Protection (OADP) 提供与存储提供商集成的默认 Velero 插件,以支持备份和快照操作。您可以根据 Velero 插件创建自定义插件。
OADP 还提供用于 AWS 资源备份的 Red Hat OpenShift Service 插件、OpenShift Virtualization 资源备份插件和容器存储接口 (CSI) 快照插件。
OADP 插件 | 功能 | 存储位置 |
---|---|---|
|
备份和恢复 Kubernetes 对象。 |
AWS S3 |
使用快照备份和恢复卷。 |
AWS EBS |
|
|
备份和恢复 AWS 上的 Red Hat OpenShift Service 资源。[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)
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 (OADP) 插件中的已知问题。
当备份和备份存储位置 (BSL) 在数据保护应用程序 (DPA) 的范围之外进行管理时,OADP 控制器(即 DPA 调和)不会创建相关的 `oadp-
运行备份时,OpenShift Velero 插件在镜像流备份上发生 panic,并显示以下 panic 错误。
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 插件 panic 错误,请执行以下步骤:
使用相关标签标记自定义 BSL。
$ oc label backupstoragelocations.velero.io <bsl_name> app.kubernetes.io/component=bsl
标记 BSL 后,等待 DPA 调和。
您可以通过对 DPA 本身进行任何小的更改来强制调和。 |
DPA 调和后,确认已创建相关的 `oadp-
$ 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。