移除双数据中心部署
将您的 2DCDR 部署转换为 Kubernetes, OpenShift, 和 Cloud Pak for Integration 上的独立部署。
确保您已阅读并了解 2DCDR的概念。 请参阅 Kubernetes 和 OpenShift 上的两个数据中心热备用部署以及 2DCDR 和故障方案的关键概念。
注: 将 热备用 数据中心转换为独立数据中心时,将从其管理数据库中删除所有数据。 数据删除是为了防止出现 主动/主动 情况,在这种情况下, 热备用 会尝试与正式活动的数据中心也与之通信的现有门户网站,网关和分析子系统进行通信。
注: OpenShift® 用户:本主题中详细介绍的步骤使用 Kubernetes
kubectl 命令。 在 OpenShift, 使用等效的 oc 命令来代替它。 如果您正在使用顶级 CR ,那么必须在顶级 CR 中编辑子系统的 multiSiteHA 部分,而不是直接在子系统 CR 中编辑。注意:在转换为单机版时,必须将2DCDR系统端点更改为单机版,以避免出现新的健康检查问题。
临时转换为独立
某些 API Connect 维护操作 (例如 管理数据库复原 ) 要求临时禁用 2DCDR 。
要将 2DCDR 管理或门户网站子系统转换为独立,请执行以下步骤:
- 通过备份子系统 CR 来备份当前 2DCDR 配置。
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,使用以下命令进行管理子系统 CR 备份:
并使用以下命令进行门户网站 CR 备份:kubectl get mgmt -o yaml > mgmt_<dr status>_2dcdr_backup.yaml
其中 <dr status> 是子系统的当前 2DCDR 状态 (活动或 热备用)。kubectl get ptl -o yaml > portal_<dr status>_2dcdr_backup.yaml - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,运行:
其中 <dr status> 是子系统的当前 2DCDR 状态 (活动或 热备用)。kubectl get apiconnectcluster -o yaml > apic_<dr status>_2dcdr_backup.yamlAPIConnectClusterCR 包含管理子系统和门户网站子系统的 2DCDR 设置。
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,使用以下命令进行管理子系统 CR 备份:
- 从管理子系统中除去 2DCDR 配置。 对于活动和 热备用,要执行的步骤有所不同:
- 活动管理子系统:
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
kubectl patch managementcluster <mgmt cr name> --type json -p='[{"op": "remove", "path": "/spec/multiSiteHA"}]' - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上:
kubectl patch apiconnectcluster <apic cr name> --type json -p='[{"op": "remove", "path": "/spec/management/multiSiteHA"}]'
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
- 热备用 管理子系统:要将管理子系统从 热备用 转换为独立管理子系统,必须在管理 CR 中的注释中确认接受此操作。 将 热备用 管理转换为独立管理的步骤包括:
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,创建名为 remove-2dcdr-config-from-warm-standby.yaml的文件,并粘贴以下文本:
使用以下命令将文件应用于管理 CR:metadata: annotations: apiconnect-operator/dr-data-deletion-confirmation: "true" spec: multiSiteHA: nullkubectl patch managementcluster <mgmt cr name> --type merge --patch "$(cat remove-2dcdr-config-from-warm-standby.yaml)" - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,创建名为 remove-2dcdr-config-from-warm-standby.yaml 的文件并粘贴以下文本:
使用以下命令将文件应用于顶级 CR:metadata: annotations: apiconnect-operator/dr-data-deletion-confirmation: "true" spec: management: multiSiteHA: nullkubectl patch apiconnectcluster <mgmt cr name> --type merge --patch "$(cat remove-2dcdr-config-from-warm-standby.yaml)"
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,创建名为 remove-2dcdr-config-from-warm-standby.yaml的文件,并粘贴以下文本:
- 活动管理子系统:
- 从门户网站子系统中除去 2DCDR 配置:
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
删除kubectl patch portalcluster <portal CR name> --type json -p='[{"op": "remove", "path": "/spec/multiSiteHA"}]'spec.multiSiteHA部分。 - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,运行:
kubectl patch apiconnectcluster <apic cr name> --type json -p='[{"op": "remove", "path": "/spec/portal/multiSiteHA"}]'
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
- 完成需要临时转换为独立操作的维护操作,例如 管理数据库复原。
- 通过将
multiSiteHA部分添加回子系统 CR 来复原 2DCDR 配置。 您可以通过从您在步骤 1中获取的备份文件复制multiSiteHA节,并将其粘贴到相应的 CR 中来复原这些节:- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上:
- 编辑管理 CR:
并粘贴备份中的kubectl edit mgmtmultiSiteHA部分 mgmt_<dr status>_2dcdr_backup.yaml。 - 编辑门户网站 CR:
并粘贴备份中的kubectl edit ptlmultiSiteHA部分 portal_<dr status>_2dcdr_backup.yaml。
- 编辑管理 CR:
- 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,编辑顶级 CR:
并在kubectl edit apiconnectclusterspec.management.multiSiteHA中,粘贴 apic_<dr status>_2dcdr_backup.yaml 的相应multiSiteHA部分中的内容
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上:
永久还原为独立
如果要还原到单个数据中心拓扑:
- 决定要保留哪个数据中心。 如果该数据中心不是当前的活动数据中心,则完成故障切换操作,使其成为活动中心:故障切换到热备用。
- 从活动数据中心上的管理子系统 CR 中除去 2DCDR 配置部分。
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
kubectl patch managementcluster <mgmt cr name> --type json -p='[{"op": "remove", "path": "/spec/multiSiteHA"}]' - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,运行:
kubectl patch apiconnectcluster <apic cr name> --type json -p='[{"op": "remove", "path": "/spec/management/multiSiteHA"}]'
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
- 从门户网站子系统中除去 2DCDR 配置:
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
删除kubectl patch portalcluster <portal CR name> --type json -p='[{"op": "remove", "path": "/spec/multiSiteHA"}]'spec.multiSiteHA部分。 - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,运行:
kubectl patch apiconnectcluster <apic cr name> --type json -p='[{"op": "remove", "path": "/spec/portal/multiSiteHA"}]'
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
- 您执行的下一个操作取决于您要对 热备用 数据中心执行的操作:
- 如果要永久还原到单个数据中心拓扑,请卸载 热备用 数据中心上的 API Connect 。 请参阅:卸载API Connect。
- 保持 热备用 状态,以防您决定将独立数据中心还原为 2DCDR 处于活动状态。
- 将 热备用 子系统转换为独立子系统。 此操作将擦除管理和门户网站数据库中的所有数据。要将管理子系统从 热备用 转换为独立管理子系统,必须在管理 CR 中的注释中确认接受此操作。 将 热备用 管理转换为独立管理的步骤包括:
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,创建名为 remove-2dcdr-config-from-warm-standby.yaml的文件,并粘贴以下文本:
使用以下命令将文件应用于管理 CR:metadata: annotations: apiconnect-operator/dr-data-deletion-confirmation: "true" spec: multiSiteHA: nullkubectl patch managementcluster <mgmt cr name> --type merge --patch "$(cat remove-2dcdr-config-from-warm-standby.yaml)" - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,创建名为 remove-2dcdr-config-from-warm-standby.yaml 的文件并粘贴以下文本:
使用以下命令将文件应用于顶级 CR:metadata: annotations: apiconnect-operator/dr-data-deletion-confirmation: "true" spec: management: multiSiteHA: nullkubectl patch apiconnectcluster <mgmt cr name> --type merge --patch "$(cat remove-2dcdr-config-from-warm-standby.yaml)"
要将门户网站从 热备用 转换为独立门户网站,请从门户网站 CR 中手动除去spec.multiSiteHA部分:- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,运行:
删除kubectl edit ptlspec.multiSiteHA部分。 - 在使用顶级 CR 的 Cloud Pak for Integration 和 OpenShift 上,运行:
删除kubectl edit apiconnectclusterspec.portal.multiSiteHA部分。
- 在使用个别子系统 CR 的 Kubernetes 和 OpenShift 上,创建名为 remove-2dcdr-config-from-warm-standby.yaml的文件,并粘贴以下文本: