创建 Cloud Pak for Data 实例的脱机备份并将其复原到其他集群
在 IBM Cloud Pak for Data 4.6 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。
您可以创建 IBM Cloud Pak for Data 实例的离线备份,然后使用 Cloud Pak for Data OADP 备份和还原实用程序在不同的群集上进行还原。
- 安装了 控制平面 和服务的单个项目
- 安装了 控制平面 的中心项目以及一个或多个系留项目
如果部署由同一集群上的多个 Cloud Pak for Data 实例组成,那么可以单独备份和复原每个实例。 您可以使用此过程在新集群上重新创建整个部署,在发生灾难破坏源集群时可以使用此部署。
- 此任务所需的许可权
- 您必须以具有集群管理员权限的用户身份登录。
要在其他集群上备份 Cloud Pak for Data 实例并将其复原,请完成以下高级步骤:
- 备份源集群上的 Cloud Pak for Data 实例。
- 备份源集群上的操作程序。
- 如果 Cloud Pak for Data 与 IAM Service集成,那么 备份源集群上的 IAM Service。
- 为复原设置新集群。
- 复原新集群上的操作程序。
- 如果 Cloud Pak for Data 与 IAM Service集成,那么 在新集群上复原 IAM Service。
- 在新集群上复原 Cloud Pak for Data 的实例。
在源集群上备份 Cloud Pak for Data 的实例
要备份 Cloud Pak for Data的实例,请执行以下步骤:
- 完成备份前提任务。
- 通过运行以下命令来创建备份。
如果实例由中心项目和一个或多个系留项目组成,请将 ${PROJECT_CPD_INSTANCE} 环境变量替换为以逗号分隔的项目列表。 例如:
--include-namespaces=cpd-instance,cpd-instance-tether1,cpd-instance-tether2。cpd-cli oadp backup create <instance_backup_name> \ --include-namespaces=${PROJECT_CPD_INSTANCE} \ --exclude-resources='Event,Event.events.k8s.io' \ --default-volumes-to-restic \ --cleanup-completed-resources \ --log-level=debug \ --verbose - 可选: 如果您稍后需要复原这些操作程序,请 备份操作程序。提示: 在同一集群中复原操作程序的步骤与 在其他集群上复原操作程序相同。
在源集群上备份操作程序和操作程序项目
- 快速安装
- 在 快速安装中, IBM
Cloud Pak foundational services 操作程序与 IBM Cloud Pak for Data platform operator 和服务操作程序安装在同一项目中,通常是
ibm-common-services。 - 专业安装
- 在 专用安装中, IBM
Cloud Pak foundational services 操作程序以及 IBM Cloud Pak for Data platform operator 和服务操作程序安装在不同的项目中。 例如:
- IBM
Cloud Pak foundational services 操作程序通常安装在
ibm-common-services中。 - IBM Cloud Pak for Data platform operator 和服务操作程序安装在不同的项目中,例如
cpd-operators。
- IBM
Cloud Pak foundational services 操作程序通常安装在
要备份源集群上的操作程序,请执行以下操作:
- 以具有足够许可权的用户身份登录到 Red Hat OpenShift Container Platform 以完成任务:
oc login ${OCP_URL} - 将 cpd-operators.sh 脚本复制到要从中连接到集群的机器,并使该脚本可执行:
chmod 700 cpd-operators.sh - 运行 cpd-operators.sh 脚本以创建名为
cpd-operators的configMap。configMap将捕获复原操作程序时所需的 Kubernetes 对象。您在运行脚本时指定的项目取决于您执行的安装类型:
快速安装
以下命令假定操作程序安装在
ibm-common-services项目中:./cpd-operators.sh backup --foundation-namespace ibm-common-services --operators-namespace ibm-common-services确认已创建
cpd-operatorsconfigMap:oc get configmap cpd-operators -n ibm-common-services
专业安装
以下命令假定 IBM Cloud Pak foundational services 操作程序安装在
ibm-common-services项目中, Cloud Pak for Data 操作程序安装在cpd-operators项目中:./cpd-operators.sh backup --foundation-namespace ibm-common-services --operators-namespace cpd-operators确认已创建
cpd-operatorsconfigMap:oc get configmap cpd-operators -n cpd-operators
- 备份相应的操作程序项目。 必须备份的项目取决于您执行的安装类型:重要信息: 请勿更改
--include-resources列表中指定的资源列表。
快速安装
以下命令假定操作程序安装在
ibm-common-services项目中:cpd-cli oadp backup create <operators_backup_name> \ --include-namespaces ibm-common-services \ --include-resources='namespaces,operatorgroups,configmaps,scheduling,crd' \ --skip-hooks \ --log-level=debug \ --verbose将 <operators_backup_name> 替换为要用于标识备份的名称。
专业安装
以下命令假定 IBM Cloud Pak foundational services 操作程序安装在
ibm-common-services项目中, Cloud Pak for Data 操作程序安装在cpd-operators项目中:cpd-cli oadp backup create <operators_backup_name> \ --include-namespaces ibm-common-services,cpd-operators \ --include-resources='namespaces,operatorgroups,configmaps,scheduling,crd' \ --skip-hooks \ --log-level=debug \ --verbose将 operators_backup_name 替换为要用于标识备份的名称。
在源集群上备份 IAM Service
如果 Cloud Pak for Data 实例与 IAM Service集成,那么必须在源集群上备份 IAM Service 。
- 开始之前
- 在备份 IAM Service之前,请确保已完成:
- 以具有足够许可权的用户身份登录到 Red Hat OpenShift Container Platform 以完成任务:
oc login ${OCP_URL} - 运行 mongodb-backup 作业。 您可以从 IBM cpd-cli GitHub 资源库复制
mongo-backup.sh脚本,也可以从quay.io运行该脚本。方法 指示信息 运行 mongo-backup.sh脚本的本地副本重要: 要使用该脚本,必须从 IBM cpd-cli GitHub 资源库中复制以下文件:mongo-backup.shmongo-job-rbac.yamlmongo-backup-job.yaml
有关详情,请参阅下载 Cloud Pak for Data 备份和还原脚本。
- 使
mongo-backup.sh脚本可执行:chmod 700 mongo-backup.sh - 如果
ibm-common-services项目中未安装 IBM Cloud Pak foundational services ,请替换 mongo-job-rbac.yaml 文件中的ibm-common-service项目。- 要将文件置于编辑方式,请运行:
vi mongo-job-rbac.yaml - 更改
namespace参数的值。 - 要保存更改,请单击 esc 并输入 :wq。
- 运行以下命令以确保
mongo-backup.sh脚本使用正确的项目:export CS_NAMESPACE=<foundational_services_project_name>
- 要将文件置于编辑方式,请运行:
- 创建
cs-br集群角色绑定:oc apply -f mongo-job-rbac.yaml - 运行
mongo-backup.sh脚本:./mongo-backup.sh
从 quay.io运行脚本- 创建
cs-br集群角色绑定:cat <<EOF |oc apply -f - kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cs-br roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: default namespace: ${PROJECT_CPFS_OPS} EOF - 创建
cs-backup-job作业以从quay.io运行mongo-backup.sh脚本。cat <<EOF |oc apply -f - apiVersion: batch/v1 kind: Job metadata: name: cs-backup-job namespace: ${PROJECT_CPFS_OPS| spec: template: spec: containers: - name: cs-mongo-br image: quay.io/opencloudio/cs-mongodb-br:v0.2 command: ["./mongo-backup.sh"] env: - name: CS_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace restartPolicy: Never EOF
- 删除
mongdb-backup作业。oc delete job mongodb-backup -n ${PROJECT_CPFS_OPS} - 设置
CPDBR_ENABLE_FEATURES环境变量:export CPDBR_ENABLE_FEATURES=experimental - 备份基础服务项目,按
--pvc-data-include-labels过滤。重要信息: 请勿更改在--include-resources列表或--pvc-data-include-labels列表中指定的资源列表。cpd-cli oadp backup create <foundational_iam_backup_name> \ --include-namespaces ${PROJECT_CPFS_OPS} \ --include-resources='ns,deploy,po,pvc,pv' \ --default-volumes-to-restic \ --pvc-data-include-labels=app=icp-bedrock-backup \ --skip-hooks \ --snapshot-volumes=false \ --log-level=debug \ --verbose将 <foundational_iam_backup_name> 替换为要用于标识备份的名称。
设置新集群
创建新集群后,必须设置并配置集群,以便可以在集群上复原 Cloud Pak for Data 的操作程序和实例。
确保符合下列条件:
- 目标集群具有与源集群相同的存储类。 有关设置存储的详细信息,请参阅设置持久存储。
- 对于使用专用容器注册表的环境 (例如气郄环境) ,目标集群具有与源集群相同的映像内容源策略。 有关配置图像内容源策略的详细信息,请参阅配置图像内容源策略。
- 目标集群必须能够拉取软件映像。 有关详情,请参阅更新全局图像提取密钥。
- OpenShift APIs for Data Protection (OADP) 备份和复原实用程序安装在目标集群上。 有关详细信息,请参阅安装 Cloud Pak for Data OADP 备份和还原实用程序。
- 目标集群的部署环境与源集群相同:
- 目标集群使用与源集群相同的硬件体系结构。 例如, x86-64。
- 目标集群与源集群处于同一 OpenShift 版本。
- 目标集群允许与源集群相同的节点配置。 例如,如果源群集使用自定义 KubeletConfig, 目标群集必须允许相同的自定义 KubeletConfig。 有关节点设置的更多信息,请参阅更改所需的节点设置。
不支持在 IBM Cloud 和非IBM Cloud 部署环境之间移动。
在新集群上复原操作程序和操作程序项目
配置新集群后,可以在新集群上复原操作程序和操作程序项目。
- 以具有足够许可权的用户身份登录到 Red Hat OpenShift Container Platform 以完成任务:
oc login ${OCP_URL} - 要查看现有备份的列表,请运行以下命令:
cpd-cli oadp backup ls - 恢复任何CustomResourceDefinitions (CRD):
cpd-cli oadp restore create <operators_restore_name1> \ --from-backup=<operators_backup_name> \ --include-resources='crd' \ --include-cluster-resources=true \ --skip-hooks \ --log-level=debug \ --verbose - 在目标集群上复原所需资源 (例如所需项目和操作程序组):
cpd-cli oadp restore create <operators_restore_name2> \ --from-backup=<operators_backup_name> \ --include-resources='namespaces,operatorgroups,scheduling,crd' \ --include-cluster-resources=true \ --skip-hooks \ --log-level=debug \ --verbose将 <operators_backup_name> 替换为创建备份时指定的名称。
- 恢复
cpd-operatorsconfigMap: 中包含的 Kubernetes 对象:cpd-cli oadp restore create <operators_restore_name3> \ --from-backup=<operators_backup_name> \ --include-resources='configmaps' \ --selector 'app=cpd-operators-backup' \ --skip-hooks \ --log-level=debug \ --verbose - 确认 Cloud Pak for Data 操作程序项目包含必需的
OperatorGroup和 configMap 资源:
快速安装
- 确认项目包含
operatorgroup操作程序组。以下命令假定 Cloud Pak for Data 操作程序安装在
ibm-common-services项目中:oc get operatorgroups -n ibm-common-services - 确认项目包含
cpd-operatorsconfigMap。以下命令假定 Cloud Pak for Data 操作程序安装在
ibm-common-services项目中:oc get configmaps cpd-operators -n ibm-common-services
专门安装
- 确认项目包含
operatorgroup操作程序组。以下命令假定 Cloud Pak for Data 操作程序安装在
cpd-operators项目中:oc get operatorgroups -n cpd-operators - 确认项目包含
cpd-operatorsconfigMap。以下命令假定 Cloud Pak for Data 操作程序安装在
cpd-operators项目中:oc get configmaps cpd-operators -n cpd-operators
- 确认项目包含
- 将 cpd-operators.sh 脚本复制到要从中连接到目标集群的机器,并使该脚本可执行:
chmod 700 cpd-operators.sh - 运行 cpd-operators.sh 脚本以在目标集群上复原操作程序。
您在运行脚本时指定的项目取决于在源集群上执行的安装类型:
快速安装
以下命令假定所有操作程序都安装在源集群上的
ibm-common-services项目中:./cpd-operators.sh restore --foundation-namespaceibm-common-services--operators-namespaceibm-common-services
专门安装
以下命令假定 IBM Cloud Pak foundational services 已安装在
ibm-common-services项目中, Cloud Pak for Data 操作程序已安装在源集群上的cpd-operators项目中:./cpd-operators.sh restore --foundation-namespace ibm-common-services --operators-namespace cpd-operators
在新集群上复原 IAM Service
如果 Cloud Pak for Data 实例与 IAM Service集成,请在新集群上复原 IAM Service 。
- 开始之前
- 在新集群上复原 IAM Service 之前,请确保已完成:
--include-resources 和过滤器。- 以具有足够许可权的用户身份登录到 Red Hat OpenShift Container Platform 以完成任务:
oc login ${OCP_URL} - 复原持久卷以及与 IAM Service关联的卷。
cpd-cli oadp restore create <foundational_iam_restore_name1> \ --from-backup=<foundational_iam_backup_name> \ --include-resources='pvc,pv' \ --skip-hooks \ --log-level=debug \ --verbose - 复原 IAM Service的数据。
cpd-cli oadp restore create <foundational_iam_restore_name2> \ --from-backup=<foundational_iam_backup_name> \ --include-resources='pv,pvc,deploy,po' \ --selector 'app=cpdbr-vol-mnt' \ --skip-hooks \ --log-level=debug \ --verbose - 运行 mongodb-restore 作业。 您可以从 IBM cpd-cli GitHub 资源库复制
mongo-restore.sh脚本,也可以从quay.io运行该脚本。方法 指示信息 运行 mongo-restore.sh脚本的本地副本重要: 要使用该脚本,必须从 IBM cpd-cli GitHub 资源库中复制以下文件:mongo-restore.shmongo-job-rbac.yamlmongo-restore-job.yaml
有关详情,请参阅下载 Cloud Pak for Data 备份和还原脚本。
- 使
mongo-restore.sh脚本可执行:chmod 700 mongo-restore.sh - 如果
ibm-common-services项目中未安装 IBM Cloud Pak foundational services ,请替换 mongo-job-rbac.yaml 文件中的ibm-common-service项目。- 要将文件置于编辑方式,请运行:
vi mongo-job-rbac.yaml - 更改
namespace参数的值。 - 要保存更改,请单击 esc 并输入 :wq。
- 运行以下命令以确保
mongo-backup.sh脚本使用正确的项目:export CS_NAMESPACE=<foundational_services_project_name>
- 要将文件置于编辑方式,请运行:
- 创建
cs-br集群角色绑定:oc apply -f mongo-job-rbac.yaml - 运行
mongo-restore.sh脚本:./mongo-restore.sh
从 quay.io运行脚本- 创建
cs-br集群角色绑定:cat <<EOF |oc apply -f - kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cs-br roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: default namespace: ${PROJECT_CPFS_OPS| EOF - 创建
cs-restore-job作业以从quay.io运行mongo-restore.sh脚本。cat <<EOF |oc apply -f - apiVersion: batch/v1 kind: Job metadata: name: cs-restore-job namespace: ${PROJECT_CPFS_OPS| spec: template: spec: containers: - name: cs-mongo-br image: quay.io/opencloudio/cs-mongodb-br:v0.2 command: ["./mongo-restore.sh"] env: - name: CS_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace restartPolicy: Never EOF
在新集群上复原 Cloud Pak for Data 实例
- 开始之前
- 在新集群上复原 Cloud Pak for Data 实例之前,请确保已完成:
要在新集群上复原 Cloud Pak for Data 实例,请执行以下步骤。
- 以具有足够许可权的用户身份登录到 Red Hat OpenShift Container Platform 以完成任务:
oc login ${OCP_URL} - 仅专用安装: 启用 IBM Cloud Pak for Data platform operator 以监视要在其中复原 Cloud Pak for Data实例的项目。
更新 Cloud Pak for Data 操作程序项目中的
cpd-operatorsNamespaceScope资源,以监视要复原实例的项目。提示: 要检索namespaceMembers列表中的现有项目,请运行以下命令:oc get namespacescope cpd-operators -n ${PROJECT_CPD_OPS} -o jsonpath={.spec.namespaceMembers}编辑
namespaceMembers列表以添加要在其中复原实例的项目。 例如,如果要将实例复原到cpd-instance项目,请将该项目添加到列表中。 如果实例由一个中心项目和一个或多个系留项目组成,那么必须将所有这些项目添加到列表中。 例如,cpd-instance-tether1或cpd-instance-tether2。cat <<EOF |oc apply -f - apiVersion: operator.ibm.com/v1 kind: NamespaceScope metadata: name: cpd-operators namespace: cpd-operators # (Default) Replace with the Cloud Pak for Data platform operator project name spec: csvInjector: # This setting is required for some services. Do not delete this line if you specified it when you created operator subscriptions. enable: true # This setting is required for some services. Do not delete this line if you specified it when you created operator subscriptions. namespaceMembers: - cpd-operators # (Default) Replace with the Cloud Pak for Data platform operator project name - cpd-instance # Replace with the project where you are restoring Cloud Pak for Data EOF - 复原 Cloud Pak for Data 实例。
- 复原 ZenService 资源:
cpd-cli oadp restore create <instance_backup_name>-zenservice-restore \ --from-backup=<instance_backup_name> \ --include-resources='namespaces,zenservices,secrets,certificates.cert-manager.io,certificates.certmanager.k8s.io,issuers.cert-manager.io,issuers.certmanager.k8s.io' \ --skip-hooks \ --log-level=debug \ --verbose - 复原所有其他备份资源:
cpd-cli oadp restore create <instance_backup_name>-restore \ --from-backup=<instance_backup_name> \ --exclude-resources='clients,ImageTag' \ --include-cluster-resources=true \ --log-level=debug \ --verbose注: 如果要复原 Db2® 或 Watson Knowledge Catalog,请添加--scale-wait-timeout 15m以确保复原命令成功完成。
- 复原 ZenService 资源: