4.8. 使用 IBM Cloud 配置 OADP
4.8.1. 为 IBM Cloud 配置 OpenShift API for Data Protection 复制链接链接已复制到粘贴板!
您可以在 IBM Cloud 集群上安装 OpenShift API for Data Protection (OADP) Operator,以便在集群上备份和恢复应用程序。您可以配置 IBM Cloud Object Storage (COS)来存储备份。
4.8.1.1. 配置 COS 实例 复制链接链接已复制到粘贴板!
您可以创建一个 IBM Cloud Object Storage (COS) 实例来存储 OADP 备份数据。创建 COS 实例后,配置 HMAC
服务凭据。
先决条件
- 您有一个 IBM Cloud Platform 帐户。
- 已安装 IBM Cloud CLI。
- 登录到 IBM Cloud。
流程
运行以下命令来安装 IBM Cloud Object Storage (COS) 插件:
ibmcloud plugin install cos -f
$ ibmcloud plugin install cos -f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来设置存储桶名称:
BUCKET=<bucket_name>
$ BUCKET=<bucket_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来设置存储桶区域:
REGION=<bucket_region>
$ REGION=<bucket_region>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定存储桶区域,如
eu-gb
。
运行以下命令来创建资源组:
ibmcloud resource group-create <resource_group_name>
$ ibmcloud resource group-create <resource_group_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来设置目标资源组:
ibmcloud target -g <resource_group_name>
$ ibmcloud target -g <resource_group_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证目标资源组是否已正确设置:
ibmcloud target
$ ibmcloud target
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
API endpoint: https://cloud.ibm.com Region: User: test-user Account: Test Account (fb6......e95) <-> 2...122 Resource group: Default
API endpoint: https://cloud.ibm.com Region: User: test-user Account: Test Account (fb6......e95) <-> 2...122 Resource group: Default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在示例输出中,资源组设置为
Default
。运行以下命令来设置资源组名称:
RESOURCE_GROUP=<resource_group>
$ RESOURCE_GROUP=<resource_group>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定资源组名称,例如
"default"
。
运行以下命令来创建 IBM Cloud
service-instance
资源:ibmcloud resource service-instance-create \ <service_instance_name> \ <service_name> \ <service_plan> \ <region_name>
$ ibmcloud resource service-instance-create \ <service_instance_name> \
1 <service_name> \
2 <service_plan> \
3 <region_name>
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例命令
ibmcloud resource service-instance-create test-service-instance cloud-object-storage \ standard \ global \ -d premium-global-deployment
$ ibmcloud resource service-instance-create test-service-instance cloud-object-storage \
1 standard \ global \ -d premium-global-deployment
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来提取服务实例 ID:
SERVICE_INSTANCE_ID=$(ibmcloud resource service-instance test-service-instance --output json | jq -r '.[0].id')
$ SERVICE_INSTANCE_ID=$(ibmcloud resource service-instance test-service-instance --output json | jq -r '.[0].id')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 COS 存储桶:
ibmcloud cos bucket-create \//
$ ibmcloud cos bucket-create \// --bucket $BUCKET \// --ibm-service-instance-id $SERVICE_INSTANCE_ID \// --region $REGION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $BUCKET
,$SERVICE_INSTANCE_ID
, 和$REGION
等值会被您在前面设置的值替代。运行以下命令来创建
HMAC
凭据。ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance --parameters {\"HMAC\":true}
$ ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance --parameters {\"HMAC\":true}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
HMAC
凭证中提取访问密钥 ID 和 secret 访问密钥,并将它们保存到credentials-velero
文件中。您可以使用credentials-velero
文件为备份存储位置创建secret
。运行以下命令:cat > credentials-velero << __EOF__ [default] aws_access_key_id=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.access_key_id') aws_secret_access_key=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.secret_access_key') __EOF__
$ cat > credentials-velero << __EOF__ [default] aws_access_key_id=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.access_key_id') aws_secret_access_key=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.secret_access_key') __EOF__
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.2. 创建默认 Secret 复制链接链接已复制到粘贴板!
如果您的备份和快照位置使用相同的凭证,或者不需要快照位置,则创建一个默认 Secret
。
DataProtectionApplication
自定义资源(CR)需要一个默认的 Secret
。否则,安装将失败。如果没有指定备份位置 Secret
的名称,则会使用默认名称。
如果您不想在安装过程中使用备份位置凭证,您可以使用空 credentials-velero
文件创建带有默认名称的 Secret
。
先决条件
- 您的对象存储和云存储(若有)必须使用相同的凭证。
- 您必须为 Velero 配置对象存储。
流程
-
为您的云供应商为备份存储位置创建一个
credentials-velero
文件。 使用默认名称创建
Secret
自定义资源(CR):oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在安装 Data Protection Application 时,secret
会在 DataProtectionApplication
CR 的 spec.backupLocations.credential
块中引用。
4.8.1.3. 为不同凭证创建 secret 复制链接链接已复制到粘贴板!
如果您的备份和恢复位置使用不同的凭证,您必须创建两个 Secret
对象:
-
具有自定义名称的备份位置
Secret
。自定义名称在DataProtectionApplication
自定义资源(CR)的spec.backupLocations
块中指定。 -
带有默认名称
cloud-credentials
的快照位置Secret
。此Secret
不在DataProtectionApplication
CR 中指定。
流程
-
为您的云供应商为快照位置创建一个
credentials-velero
文件。 使用默认名称为快照位置创建
Secret
:oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
为您的对象存储创建一个用于备份位置的
credentials-velero
文件。 使用自定义名称为备份位置创建
Secret
:oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将带有自定义名称的
Secret
添加到DataProtectionApplication
CR 中,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 具有自定义名称的备份位置
Secret
。
4.8.1.4. 安装数据保护应用程序 复制链接链接已复制到粘贴板!
您可以通过创建 DataProtectionApplication
API 的实例来安装数据保护应用程序(DPA)。
先决条件
- 您必须安装 OADP Operator。
- 您必须将对象存储配置为备份位置。
- 如果使用快照来备份 PV,云供应商必须支持原生快照 API 或 Container Storage Interface(CSI)快照。
如果备份和快照位置使用相同的凭证,您必须创建带有默认名称
cloud-credentials
的Secret
。注意如果您不想在安装过程中指定备份或快照位置,您可以使用空
credentials-velero
文件创建默认Secret
。如果没有默认Secret
,安装将失败。
流程
-
点 Operators
Installed Operators 并选择 OADP Operator。 - 在 Provided APIs 下,点 DataProtectionApplication 框中的 Create 实例。
点 YAML View 并更新
DataProtectionApplication
清单的参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Create。
验证
运行以下命令,查看 OpenShift API for Data Protection (OADP) 资源来验证安装:
oc get all -n openshift-adp
$ oc get all -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
DataProtectionApplication
(DPA) 是否已协调:oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证
type
被设置为Reconciled
。 运行以下命令,验证备份存储位置并确认
PHASE
为Available
:oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.5. 设置 Velero CPU 和内存分配 复制链接链接已复制到粘贴板!
您可以通过编辑 DataProtectionApplication
自定义资源(CR)清单来为 Velero
pod 设置 CPU 和内存分配。
先决条件
- 您必须安装了 OpenShift API for Data Protection(OADP)Operator。
流程
编辑
DataProtectionApplication
CR 清单的spec.configuration.velero.podConfig.ResourceAllocations
块中的值,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Kopia 是 OADP 1.3 及之后的版本中的一个选项。您可以使用 Kopia 进行文件系统备份,Kopia 是 Data Mover 的唯一选择,并带有内置数据 Mover。
和 Restic 相比,Kopia 需要更多资源,您可能需要相应地调整 CPU 和内存要求。
4.8.1.6. 配置节点代理和节点标签 复制链接链接已复制到粘贴板!
OADP 的 DPA 使用 nodeSelector
字段来选择哪些节点可以运行节点代理。nodeSelector
字段是节点选择限制的最简单的形式。
任何指定的标签都需要与每个节点上的标签匹配。
在您选择的任何节点上运行节点代理的正确方法是使用自定义标签标记节点:
oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
在 DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
中使用相同的自定义标签,用于标记节点。例如:
以下示例是 nodeSelector
的反模式,除非标签 'node-role.kubernetes.io/infra: ""'
和 'node-role.kubernetes.io/worker: ""'
都位于节点上,否则无法工作:
4.8.1.7. 使用客户端 burst 和 QPS 设置配置 DPA 复制链接链接已复制到粘贴板!
burst 设置决定在应用限制前可以发送到 velero
服务器的请求数量。达到 burst 限制后,查询每秒 (QPS) 设置决定了每秒可以发送多少个额外请求。
您可以使用 burst 和 QPS 值配置数据保护应用程序 (DPA) 来设置 velero
服务器的 burst 和 QPS 值。您可以使用 DPA 的 dpa.configuration.velero.client-burst
和 dpa.configuration.velero.client-qps
字段来设置 burst 和 QPS 值。
先决条件
- 已安装 OADP Operator。
4.8.1.8. 覆盖 DPA 中的 imagePullPolicy 设置 复制链接链接已复制到粘贴板!
在 OADP 1.4.0 或更早版本中,Operator 会将 Velero 和节点代理 pod 的 imagePullPolicy
字段设置为 Always
。
在 OADP 1.4.1 或更高版本中,Operator 首先检查每个镜像是否有 sha256
或 sha512
摘要,并相应地设置 imagePullPolicy
字段:
-
如果镜像有摘要,Operator 会将
imagePullPolicy
设置为IfNotPresent
。 -
如果镜像没有摘要,Operator 会将
imagePullPolicy
设置为Always
。
您还可以使用 Data Protection Application (DPA)中的 spec.imagePullPolicy
字段覆盖 imagePullPolicy
字段。
先决条件
- 已安装 OADP Operator。
流程
在 DPA 中配置
spec.imagePullPolicy
字段,如下例所示:数据保护应用程序示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
imagePullPolicy
的值。在本例中,imagePullPolicy
字段设置为Never
。
4.8.1.9. 使用多个 BSL 配置 DPA 复制链接链接已复制到粘贴板!
您可以使用多个 BackupStorageLocation
(BSL) CR 配置 DataProtectionApplication
(DPA) 自定义资源 (CR),并指定云供应商提供的凭证。
例如,在配置了以下两个 BSLs 时:
- 在 DPA 中配置了一个 BSL,并将它设置为默认的 BSL。
-
使用
BackupStorageLocation
CR 独立创建另一个 BSL。
因为您已通过 DPA 创建 BSL 作为默认值,您无法再次设置独立创建的 BSL 作为默认值。这意味着,在任何给定时间,您只能将一个 BSL 设置为默认的 BSL。
先决条件
- 您必须安装 OADP Operator。
- 您必须使用云供应商提供的凭证创建 secret。
流程
使用多个
BackupStorageLocation
CR 配置DataProtectionApplication
CR。请参见以下示例:DPA 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定要在备份 CR 中使用的 BSL。请参见以下示例。
备份 CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.8.1.10. 在 DataProtectionApplication 中禁用节点代理 复制链接链接已复制到粘贴板!
如果您没有在备份中使用 Restic
、Kopia
或 DataMover
,您可以在 DataProtectionApplication
自定义资源(CR)中禁用 nodeAgent
字段。在禁用 nodeAgent
前,请确保 OADP Operator 闲置且没有运行任何备份。
流程
您可以设置一个作业来启用和禁用 DataProtectionApplication
CR 中的 nodeAgent
字段。如需更多信息,请参阅"使用作业在 pod 中运行任务"。