第 7 章 从 hub 和受管集群卸载灾难恢复
7.1. 从 hub 和受管集群卸载灾难恢复 复制链接链接已复制到粘贴板!
Regional-DR 和 Metro-DR 都有两个级别的卸载:
卸载部分部分 涉及从 DRPolicy 中定义的两个或多个对等受管集群中删除所有 DR 资源和配置。
完成卸载,这是 DR 设置的完整卸载,包括以下步骤:
- 从所有对等集群中删除所有 DRPolicies 和 mirrorpeers。
- 从 hub 集群中删除 DR operator 和相关资源。
7.1.1. 卸载灾难恢复前 复制链接链接已复制到粘贴板!
在卸载 DR 前,您必须首先从所有受保护的应用程序(包括受管和发现)中删除灾难恢复保护。按照以下步骤删除灾难恢复保护。
在尝试 DR Uninstall 前,两个受管集群都必须在线且健康。
使用以下选项之一找到与您要删除 DR 的对等集群关联的所有 DRPolicies:
使用 RHACM 控制台
-
在 hub 集群中,进入到 All Clusters
Data Services disaster Recovery Policies。 - 识别与您要从中删除 DR 的对等集群关联的 DRPolicies。
-
在 hub 集群中,进入到 All Clusters
使用 CLI
-
从 RHACM 控制台获取对等集群的名称。在 hub 集群中,进入到 All Clusters
Infrastructure Clusters。 在 hub 集群中运行以下命令,将集群名称替换为上一步中找到的对等集群:
$ CLUSTER_A="{cluster1_name}"$ CLUSTER_B="{cluster2_name}"$ oc get drpolicies -o json | jq -r --arg c1 "$CLUSTER_A" --arg c2 "$CLUSTER_B" '.items[] |select((.spec.drClusters | sort) == ([$c1, $c2] | sort)) .metadata.name'- 识别与您要从中删除 DR 的对等集群关联的 DRPolicies。
-
从 RHACM 控制台获取对等集群的名称。在 hub 集群中,进入到 All Clusters
查找与对等受管集群关联的任何现有 DRPlacementControl (DRPC)资源。在 hub 集群中运行以下命令,以便在第 1 步中标识的每个 DRPolicy:
$ DRPOLICY_NAME="{drpolicy_name}"将
drpolicy_name替换为 DRPolicy。$ oc get drplacementcontrols -A -o json | jq -r --arg drpc "$DRPOLICY_NAME" \ '.items[] | select(.spec.drPolicyRef.name == $drpc) | "\(.metadata.namespace)/\(.metadata.name)"'如果找到任何 DRPC,请从关联的应用程序中删除 DR 保护。
从受管应用程序中删除 DR 保护:
-
在 Hub 集群中,进入到 All Clusters
Applications。 - 在 Overview 选项卡中,选择 Manage disaster recovery。
- 点 Remove disaster recovery。
- 单击 Confirm remove。
-
在 Hub 集群中,进入到 All Clusters
从发现的应用程序中删除 DR 保护:
-
在 RHACM 控制台中,进入到 All Clusters
Data Services Protected applications 选项卡。 - 在应用程序行的末尾,点操作菜单 (&&) 并选择 Remove disaster recovery。
- 在下一提示中,单击 Remove。
-
在 RHACM 控制台中,进入到 All Clusters
在 hub 集群中运行以下命令以查找关联的 mirrorpeer:
$ export DR_POLICY={drpolicy_name}将
drpolicy_name替换为在第 1 步中找到的 DRPolicy 名称之一。$ DR_CLUSTERS=$(oc get drpolicy $DR_POLICY -o json | jq -r '.spec.drClusters | sort | join(",")')$ oc get mirrorpeers -A -o json | jq -r --arg dr_clusters "$DR_CLUSTERS" '.items[] | {name: .metadata.name,clusters: (.spec.items | map(.clusterName) | sort | join(",")) } |select(.clusters == $dr_clusters) | .name'
7.1.2. 为对等受管集群卸载灾难恢复 复制链接链接已复制到粘贴板!
按照以下步骤为对等受管集群卸载 DR 资源。
您需要上一节中标识的集群名称、DRPolicies 和 mirrorpeer。
流程
在 hub 集群中,删除与对等受管集群关联的 DRPolices,以进行 DR 删除。
将在需要删除的 prior 部分找到一个或多个 DRPolicies。
$ oc delete drpolicy {drpolicy_name1 drpolicy_name2 ...}将
drpolicy_name1等替换为上一节中的 DRPolicy 名称。从 hub 集群中,删除与对等受管集群关联的 mirrorpeer 以进行 DR 删除。
在需要删除的 prior 部分,每个 DRPolicy 都会有一个 mirrorpeer。
$ oc delete mirrorpeer {mirrorpeer_name}
如果您只为特定对等集群删除 DR,请不要继续卸载 DR operator 或其他共享资源。这一部分 DR 卸载过程到此结束。
7.1.3. 卸载灾难恢复 Operator 复制链接链接已复制到粘贴板!
如果您的目标是从 OpenShift 环境中完全删除 DR,请确保已遵循之前的所有部分从每个对等受管集群卸载 DR。
流程
在 hub 集群中,删除 OpenShift Data Foundation Multicluster Orchestrator 和 OpenShift DR Hub Operator 的 subscription
.operators和clusterserviceversion(csv):$ oc delete subscriptions.operators.coreos.com -l operators.coreos.com/odr-hub-operator.openshift-operators -n openshift-operators $ oc delete subscriptions.operators.coreos.com -l operators.coreos.com/odf-multicluster-orchestrator.openshift-operators -n openshift-operators $ oc delete csv -l operators.coreos.com/odr-hub-operator.openshift-operators -n openshift-operators $ oc delete csv -l operators.coreos.com/odf-multicluster-orchestrator.openshift-operators -n openshift-operators另外,您还可以从 RHACM 控制台删除 ODF Multicluster Orchestrator 和 DR Hub Operator:
-
进入 Operators
Installed Operators。 - 找到 DR Hub Operator。
- 点操作菜单 (3.3.0) 并选择 Uninstall Operator。
- 对 Multicluster Orchestrator 重复相同的操作。
-
进入 Operators
在 hub 集群中,删除每个对等集群的
managedclusterview:$ oc delete managedclusterview -l multicluster.odf.openshift.io/created-by=odf-multicluster-managedcluster-controller -A在 hub 集群中,删除 Multicluster Orchestrator operator 的动态插件:
$ oc delete consoleplugins.console.openshift.io odf-multicluster-console在 hub 集群中,删除 configmap
odf-client-info:$ oc delete configmap odf-client-info -n openshift-operators在 hub 集群中,删除
odf-multicluster-console服务:$ oc delete service odf-multicluster-console -n openshift-operators
此时,所有 DR 相关的 Operator 组件和配置都应从 hub 集群和所有受管集群完全删除。