第 4 章 应用程序备份和恢复
4.1. OADP 功能和插件
OpenShift API 用于数据保护(OADP)功能,提供用于备份和恢复应用的选项。
默认插件使 Velero 能够与某些云供应商集成,并备份和恢复 OpenShift Container Platform 资源。
4.1.1. OADP 功能
OpenShift API 用于数据保护(OADP)支持以下功能:
- Backup
您可以备份集群中的所有资源,或者您可以按类型、命名空间或标签过滤资源。
OADP 通过将 Kubernetes 对象和内部镜像保存为对象存储上的存档文件来备份 Kubernetes 对象和内部镜像。OADP 使用原生云快照 API 或通过容器存储接口(CSI)创建快照来备份持久性卷(PV)。对于不支持快照的云供应商,OADP 使用 Restic 备份资源和 PV 数据。
- 恢复
- 您可以从备份中恢复资源和 PV。您可以恢复备份中的所有对象,或者根据命名空间、PV 或标签过滤恢复的对象。
- 调度
- 您可以通过指定的间隔调度备份。
- Hook
-
您可以使用 hook 在 pod 上的容器中运行命令,如
fsfreeze
以冻结文件系统。您可以将 hook 配置为在备份或恢复之前或之后运行。恢复 hook 可以在 init 容器或应用程序容器中运行。
4.1.2. OADP 插件
用于数据保护(OADP)的 OpenShift API 提供了与存储供应商集成的默认 Velero 插件,以支持备份和恢复操作。您可以根据 Velero 插件创建自定义插件。
OADP 还为 OpenShift Container Platform 资源备份和 Container Storage Interface(CSI)快照提供了插件。
OADP 插件 | 功能 | 存储位置 |
---|---|---|
| 使用对象存储备份和恢复 Kubernetes 对象。 | AWS S3 |
使用快照备份和恢复卷。 | AWS EBS | |
| 使用对象存储备份和恢复 Kubernetes 对象。 | Microsoft Azure Blob 存储 |
使用快照备份和恢复卷。 | Microsoft Azure 管理的磁盘 | |
| 使用对象存储备份和恢复 Kubernetes 对象。 | Google Cloud Storage |
使用快照备份和恢复卷。 | Google Compute Engine 磁盘 | |
| 使用对象存储备份和恢复 OpenShift Container Platform 资源。[1] | 对象存储 |
| 使用 CSI 快照备份和恢复卷。[2] | 支持 CSI 快照的云存储 |
- 必需。
-
csi
插件使用 Velero CSI beta 快照 API。
4.1.3. 关于 OADP Velero 插件
安装 Velero 时,您可以配置两种类型的插件:
- 默认云供应商插件
- 自定义插件
两种类型的插件都是可选的,但大多数用户都会至少配置一个云供应商插件。
4.1.3.1. 默认 Velero 云供应商插件
当您在部署过程中配置 oadp_v1alpha1_dpa.yaml
文件时,您可以安装以下默认 Velero 云供应商插件:
-
aws
(Amazon Web Services) -
gcp
(Google Cloud Platform) -
azure
(Microsoft Azure) -
openshift
(OpenShift Velero plugin) -
csi
(Container Storage Interface) -
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
4.1.3.2. 自定义 Velero 插件
您可在部署期间配置 oadp_v1alpha1_dpa.yaml
文件时,通过指定插件 镜像
和名称
来安装自定义 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