apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: test-obc (1)
namespace: openshift-adp
spec:
storageClassName: openshift-storage.noobaa.io
generateBucketName: test-backup-bucket (2)
您可以将自签名证书颁发机构 (CA) 证书包含在数据保护应用程序 (DPA) 中,然后备份应用程序。您将备份存储在 Red Hat OpenShift 数据基金会 (ODF) 提供的 NooBaa 存储桶中。
ODF 提供的s3.openshift-storage.svc
服务使用由自签名服务 CA 签名的传输层安全协议 (TLS) 证书。
为避免出现证书由未知机构签名
错误,您必须在DataProtectionApplication
自定义资源 (CR) 的备份存储位置 (BSL) 部分中包含自签名 CA 证书。对于这种情况,您必须完成以下任务
通过创建对象存储桶声明 (OBC) 来请求 NooBaa 存储桶。
提取存储桶详细信息。
在DataProtectionApplication
CR 中包含自签名 CA 证书。
备份应用程序。
您已安装 OADP 运算符。
您已安装 ODF 运算符。
您有一个在单独命名空间中运行数据库的应用程序。
创建 OBC 清单以请求 NooBaa 存储桶,如下例所示
ObjectBucketClaim
CRapiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: test-obc (1)
namespace: openshift-adp
spec:
storageClassName: openshift-storage.noobaa.io
generateBucketName: test-backup-bucket (2)
1 | 指定对象存储桶声明的名称。 |
2 | 指定存储桶的名称。 |
运行以下命令创建 OBC
$ oc create -f <obc_file_name>
创建 OBC 时,ODF 会创建名称与对象存储桶声明相同的secret
和ConfigMap
。secret
对象包含存储桶凭据,ConfigMap
对象包含访问存储桶的信息。要从生成的配置映射中获取存储桶名称和存储桶主机,请运行以下命令
$ oc extract --to=- cm/test-obc (1)
1 | OBC 的名称为test-obc 。 |
# BUCKET_NAME
backup-c20...41fd
# BUCKET_PORT
443
# BUCKET_REGION
# BUCKET_SUBREGION
# BUCKET_HOST
s3.openshift-storage.svc
要从secret
对象获取存储桶凭据,请运行以下命令
$ oc extract --to=- secret/test-obc
# AWS_ACCESS_KEY_ID
ebYR....xLNMc
# AWS_SECRET_ACCESS_KEY
YXf...+NaCkdyC3QPym
使用以下示例配置创建包含对象存储桶凭据的cloud-credentials
文件
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
运行以下命令使用cloud-credentials
文件内容创建cloud-credentials
密钥
$ oc create secret generic \
cloud-credentials \
-n openshift-adp \
--from-file cloud=cloud-credentials
运行以下命令从openshift-service-ca.crt
配置映射中提取服务 CA 证书。确保您以Base64
格式编码证书,并记下要在下一步中使用的值。
$ oc get cm/openshift-service-ca.crt \
-o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0...
....gpwOHMwaG9CRmk5a3....FLS0tLS0K
使用以下示例配置DataProtectionApplication
CR 清单文件和存储桶名称以及 CA 证书
DataProtectionApplication
CRapiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
defaultSnapshotMoveData: true
backupLocations:
- velero:
config:
profile: "default"
region: noobaa
s3Url: https://s3.openshift-storage.svc
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "false" (1)
provider: aws
default: true
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: <bucket_name> (2)
prefix: oadp
caCert: <ca_cert> (3)
1 | insecureSkipTLSVerify 标志可以设置为true 或false 。如果设置为“true”,则禁用 SSL/TLS 安全性。如果设置为false ,则启用 SSL/TLS 安全性。 |
2 | 指定在前面步骤中提取的存储桶名称。 |
3 | 复制并粘贴上一步中的Base64 编码证书。 |
运行以下命令创建DataProtectionApplication
CR
$ oc apply -f <dpa_filename>
运行以下命令验证DataProtectionApplication
CR 是否已成功创建
$ oc get dpa -o yaml
apiVersion: v1
items:
- apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
namespace: openshift-adp
#...#
spec:
backupLocations:
- velero:
config:
#...#
status:
conditions:
- lastTransitionTime: "20....9:54:02Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
kind: List
metadata:
resourceVersion: ""
运行以下命令验证备份存储位置 (BSL) 是否可用
$ oc get backupstoragelocations.velero.io -n openshift-adp
NAME PHASE LAST VALIDATED AGE DEFAULT
dpa-sample-1 Available 3s 15s true
使用以下示例配置Backup
CR
Backup
CRapiVersion: velero.io/v1
kind: Backup
metadata:
name: test-backup
namespace: openshift-adp
spec:
includedNamespaces:
- <application_namespace> (1)
1 | 指定要备份的应用程序的命名空间。 |
运行以下命令创建Backup
CR
$ oc apply -f <backup_cr_filename>
运行以下命令验证Backup
对象是否处于Completed
阶段
$ oc describe backup test-backup -n openshift-adp
Name: test-backup
Namespace: openshift-adp
# ....#
Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none>