OpenShift API for Data Protection (OADP) Operator 的安装
本节概述了 OpenShift API for Data Protection (OADP) Operator 的安装。
前提条件
-
安装在裸机基础架构上并带有 RHCOS 工作节点的 Red Hat OpenShift 集群(高于 4.12 版本)
-
使用Trident与集群集成的NetApp ONTAP集群
-
在ONTAP集群上配置了 SVM 的Trident后端
-
在 OpenShift 集群上配置 StorageClass,并使用Trident作为配置器
-
在集群上创建的Trident Snapshot 类
-
集群管理员访问 Red Hat OpenShift 集群
-
NetApp ONTAP集群的管理员访问权限
-
部署在集群上的应用程序,例如 postgresql
-
安装了 tridentctl 和 oc 工具并添加到 $PATH 的管理员工作站
安装 OADP Operator 的步骤
-
进入集群的 Operator Hub,选择 Red Hat OADP 操作员。在安装页面中,使用所有默认选择并单击安装。在下一页上,再次使用所有默认设置并单击“安装”。 OADP 操作员将安装在命名空间 openshift-adp 中。
使用 Ontap S3 详细信息进行 Velero 配置的先决条件
操作员安装成功后,配置Velero的实例。 Velero 可以配置为使用 S3 兼容的对象存储。使用所示步骤配置ONTAP S3"ONTAP文档的对象存储管理部分" 。您将需要ONTAP S3 配置中的以下信息才能与 Velero 集成。
-
可用于访问 S3 的逻辑接口 (LIF)
-
访问 S3 的用户凭证,包括访问密钥和秘密访问密钥
-
S3 中用于备份的存储桶名称,具有用户访问权限
-
为了安全访问对象存储,应在对象存储服务器上安装 TLS 证书。
使用 StorageGrid S3 详细信息进行 Velero 配置的先决条件
Velero 可以配置为使用 S3 兼容的对象存储。您可以使用以下所示的步骤配置 StorageGrid S3"StorageGrid 文档" 。您将需要 StorageGrid S3 配置中的以下信息才能与 Velero 集成。
-
可用于访问 S3 的端点
-
访问 S3 的用户凭证,包括访问密钥和秘密访问密钥
-
S3 中用于备份的存储桶名称,具有用户访问权限
-
为了安全访问对象存储,应在对象存储服务器上安装 TLS 证书。
配置 Velero 的步骤
-
首先,为ONTAP S3 用户凭证或 StorageGrid Tenant 用户凭证创建一个密钥。这将用于稍后配置 Velero。您可以从 CLI 或 Web 控制台创建机密。要从 Web 控制台创建密钥,请选择“密钥”,然后单击“键/值密钥”。提供凭证名称、密钥和值的值,如下所示。请务必使用您的 S3 用户的访问密钥 ID 和秘密访问密钥。为秘密指定一个合适的名称。在下面的示例中,创建了一个名为 ontap-s3-credentials 的具有ONTAP S3 用户凭据的密钥。
要从 CLI 创建名为 sg-s3-credentials 的密钥,您可以使用以下命令。
-
接下来,要配置 Velero,请从 Operators 下的菜单项中选择 Installed Operators,单击 OADP 操作员,然后选择 DataProtectionApplication 选项卡。
单击创建 DataProtectionApplication。在表单视图中,为数据保护应用程序提供一个名称或使用默认名称。
现在转到 YAML 视图并替换规范信息,如下面的 yaml 文件示例所示。
使用ONTAP S3 作为备份位置配置 Velero 的示例 yaml 文件
spec: backupLocations: - velero: config: insecureSkipTLSVerify: 'false' ->use this for https communication with ONTAP S3 profile: default region: us-east-1 s3ForcePathStyle: 'true' ->This allows use of IP in s3URL s3Url: 'https://10.61.181.161' ->Ensure TLS certificate for S3 is configured credential: key: cloud name: ontap-s3-credentials -> previously created secret default: true objectStorage: bucket: velero -> Your bucket name previously created in S3 for backups prefix: container-demo-backup ->The folder that will be created in the bucket caCert: <base64 encoded CA Certificate installed on ONTAP Cluster with the SVM Scope where the bucker exists> provider: aws configuration: nodeAgent: enable: true uploaderType: kopia #default Data Mover uses Kopia to move snapshots to Object Storage velero: defaultPlugins: - csi ->This plugin to use CSI snapshots - openshift - aws - kubevirt -> This plugin to use Velero with OIpenShift Virtualization
使用 StorageGrid S3 作为备份位置来配置 Velero 的示例 yaml 文件
spec: backupLocations: - velero: config: insecureSkipTLSVerify: 'true' profile: default region: us-east-1 ->region of your StorageGrid system s3ForcePathStyle: 'True' s3Url: 'https://172.21.254.25:10443' ->the IP used to access S3 credential: key: cloud name: sg-s3-credentials ->secret created earlier default: true objectStorage: bucket: velero prefix: demobackup provider: aws configuration: nodeAgent: enable: true uploaderType: kopia velero: defaultPlugins: - csi - openshift - aws - kubevirt
yaml 文件中的 spec 部分应针对类似于上述示例的以下参数进行适当配置
backupLocations ONTAP S3 或 StorageGrid S3(其凭据和其他信息如 yaml 中所示)配置为 velero 的默认 BackupLocation。
snapshotLocations 如果您使用容器存储接口 (CSI) 快照,则无需指定快照位置,因为您将创建 VolumeSnapshotClass CR 来注册 CSI 驱动程序。在我们的示例中,您使用Trident CSI,并且之前已使用Trident CSI 驱动程序创建了 VolumeSnapShotClass CR。
启用 CSI 插件 将 csi 添加到 Velero 的默认插件中,以使用 CSI 快照备份持久卷。 Velero CSI 插件用于备份 CSI 支持的 PVC,它将选择集群中设置了 velero.io/csi-volumesnapshot-class 标签的 VolumeSnapshotClass。为了这
-
您必须创建 trident VolumeSnapshotClass。
-
编辑 trident-snapshotclass 的标签,并将其设置为 velero.io/csi-volumesnapshot-class=true,如下所示。
确保即使 VolumeSnapshot 对象被删除,快照也能保留。这可以通过将 deletionPolicy 设置为 Retain 来实现。如果不是,删除命名空间将完全丢失其中备份的所有 PVC。
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: trident-snapshotclass driver: csi.trident.netapp.io deletionPolicy: Retain
确保 DataProtectionApplication 已创建并且处于“状态:Reconciled”。
OADP 操作员将创建相应的 BackupStorageLocation。这将在创建备份时使用。