3.16. 使用 Metro-DR 恢复替换集群
当主集群出现问题时,您可以获得修复选项,等待现有集群恢复,或者如果集群不可取,请完全替换集群。此解决方案指导您在将失败的主集群替换为新集群时,并对这个新集群启用故障恢复(重复)。
在这些说明中,我们假设 RHACM 受管集群必须在安装和保护应用程序后被替换。在本小节中,RHACM 受管集群是 替换集群,而没有替换的集群是 Surviving 集群,新的集群是 恢复集群。
前提条件
- 确保 Metro-DR 环境已配置了使用 Red Hat Advance Cluster Management (RHACM)安装的应用程序。
- 确保为应用程序分配了一个数据策略,该策略可防止它们出现集群故障。
流程
在 Hub 集群中 执行以下步骤:
使用 CLI 终端编辑 DRCluster 资源来隔离替换集群,其中 < drcluster_name> 是替换集群名称。
oc edit drcluster <drcluster_name>
oc edit drcluster <drcluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用 RHACM 控制台,进入到 Applications,并将所有受保护的应用程序从故障集群故障转移到存活的集群。
验证并确保所有受保护的应用程序现在都在存活的集群中运行。
注意每个应用程序 DRPlacementControl 的 PROGRESSION 状态将显示为
Cleaning Up
。如果替换集群离线或关闭,则这是预期的。
取消隔离替换群集。
使用 CLI 终端,编辑 DRCluster 资源,其中 < ;drcluster_name& gt; 是替换集群名称。
oc edit drcluster <drcluster_name>
$ oc edit drcluster <drcluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除替换集群的 DRCluster。
oc delete drcluster <drcluster_name> --wait=false
$ oc delete drcluster <drcluster_name> --wait=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用 --wait=false,因为 DRCluster 在稍后的步骤前不会删除。
在 Surviving 集群中为每个受保护的应用程序禁用 Hub 集群上的灾难恢复。
对于每个应用程序,编辑放置并确保选择了 Surviving 集群。
注意对于基于 Subscription 的应用程序,相关的放置可以在与受管集群类似的 hub 集群上的同一命名空间中找到。对于基于 ApplicationSets 的应用程序,相关的放置可在 hub 集群的
openshift-gitops
命名空间中找到。oc edit placement <placement_name> -n <namespace>
$ oc edit placement <placement_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在每个受保护的应用程序的 VolumeReplicationGroup 上运行以下命令来验证为替换集群删除了
s3Profile
。oc get vrg -n <application_namespace> -o jsonpath='{.items[0].spec.s3Profiles}' | jq
$ oc get vrg -n <application_namespace> -o jsonpath='{.items[0].spec.s3Profiles}' | jq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在将受保护的应用程序 放置资源 配置为使用 Surviving 集群,并替换集群 s3Profile (s)从受保护的应用程序中删除后,所有
DRPlacementControl
资源都必须从 Hub 集群中删除。oc delete drpc <drpc_name> -n <namespace>
$ oc delete drpc <drpc_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对于基于 Subscription 的应用程序,相关的 DRPlacementControl 可以在与 hub 集群上的受管集群相同的命名空间中找到。对于基于 ApplicationSets 的应用程序,相关的 DRPlacementControl 可以在 hub 集群的
openshift-gitops
命名空间中找到。验证所有 DRPlacementControl 资源是否已删除,然后继续下一步。此命令是所有命名空间的查询。应该没有找到资源。
oc get drpc -A
$ oc get drpc -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最后一步是编辑每个应用程序 放置 并删除注解
cluster.open-cluster-management.io/experimental-scheduling-disable: "true
"。oc edit placement <placement_name> -n <namespace>
$ oc edit placement <placement_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 在存活集群中,重复上一步中详述的流程,以及每个受保护应用程序的子步骤。为受保护的应用程序禁用 DR 现已完成。
在 Hub 集群中,运行以下脚本从 存活 集群和 hub 集群中删除所有灾难恢复配置。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此脚本使用
oc delete project openshift-operators
命令来删除 hub 集群上的这个命名空间中的灾难恢复(DR) Operator。如果在这个命名空间中存在其他非DR operator,则必须从 OperatorHub 再次安装它们。再次创建命名空间
openshift-operators
后,添加监控标签以收集灾难恢复指标。oc label namespace openshift-operators openshift.io/cluster-monitoring='true'
$ oc label namespace openshift-operators openshift.io/cluster-monitoring='true'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Surviving 集群中,确保删除在 DR 安装期间创建的对象存储桶。如果对象存储桶没有被脚本删除,请删除它。用于 DR 的对象存储桶的名称以
odrbucket
开始。oc get obc -n openshift-storage
$ oc get obc -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 RHACM 控制台中,进入到 Infrastructure
Clusters 视图。 - 分离替换集群。
- 创建新的 OpenShift 集群(恢复集群),并将新集群导入到 RHACM 控制台。具体步骤请参阅创建集群并将 目标受管集群导入到 hub 集群。
在恢复集群中安装 OpenShift Data Foundation 操作器,并将它连接到与存活集群相同的外部 Ceph 存储系统。具体步骤请参考 以外部模式部署 OpenShift Data Foundation。
注意确保 OpenShift Data Foundation 版本为 4.15 (或更高),并且同一版本的 OpenShift Data Foundation 位于存活集群中。
- 在 hub 集群中,从 OperatorHub 安装 ODF Multicluster Orchestrator operator。具体步骤,请参阅安装 OpenShift Data Foundation Multicluster Orchestrator operator 的章节。
使用 RHACM 控制台,导航到 Data Services
Data policies。 - 选择 Create DRPolicy 并为您的策略命名。
- 选择 恢复 群集和 存活集群。
- 创建策略。具体步骤请查看在 Hub 集群上创建灾难恢复策略 一章。
只有在 DRPolicy 状态变为
Validated
后,继续下一步。- 将 DRPolicy 应用到最初在替换集群失败前保护的存活集群中的应用程序。
- 将新受保护的应用重新定位到存活群集上,返回到新的恢复(主)集群。使用 RHACM 控制台,进入到 Applications 菜单来执行重新定位。