第 5 章 缩减 director Operator 资源
在将数据库迁移到 control plane 之前,您必须缩减和删除 OpenStack director Operator (OSPdO)资源,才能使用 OpenShift (RHOSO)资源。
您必须执行以下操作:
- 从现有 RHOSP 17.1 集群中转储所选数据。您可以使用此数据为 data plane 采用构建自定义资源。
- 提取并保存数据后,删除 OSPdO control plane 和 Operator。
流程
下载 NIC 模板:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取用于访问数据平面节点的 SSH 密钥:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从每个 Compute 节点角色
OpenStackBaremetalSet获取 OVN 配置。稍后使用这个配置来构建OpenStackDataPlaneNodeSet(s)。为每个OpenStackBaremetalSet重复此步骤:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从所有 Compute 主机中删除冲突的存储库和软件包。定义必须停止的 OSPdO 和 RHOSP 17.1 Pacemaker 服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 RHOSO OpenStack Operator
controller-manager缩减为 0 个副本,并临时删除OpenStackControlPlaneOpenStackClientpod,以便您可以使用 OSPdOcontroller-manager清理其一些资源。需要清理,以避免 OSPdO OpenStackClient 和 RHOSO OpenStackClient 之间的 pod 名称冲突。oc patch csv -n openstack-operators openstack-operator.v1.0.5 --type json -p="[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/replicas", "value": "0"}]" oc delete openstackclients.client.openstack.org --all$ oc patch csv -n openstack-operators openstack-operator.v1.0.5 --type json -p="[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/replicas", "value": "0"}]" $ oc delete openstackclients.client.openstack.org --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 将 CSV 版本替换为集群中部署的 CSV 版本。
删除 OSPdO
OpenStackControlPlane自定义资源(CR):oc delete openstackcontrolplanes.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" --all$ oc delete openstackcontrolplanes.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 OSPdO
OpenStackNetConfigCR,以删除关联的节点网络配置策略:oc delete osnetconfig -n "${OSPDO_NAMESPACE}" --all$ oc delete osnetconfig -n "${OSPDO_NAMESPACE}" --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 标记包含 OSPdO 虚拟机(VM)的 RHOCP 节点:
oc label nodes <ospdo_vm_master_node> type=openstack
$ oc label nodes <ospdo_vm_master_node> type=openstackCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<ospdo_vm_master_node> 替换为包含 OSPdO 虚拟机的剩余 master 节点。
-
将
为第三个 RHOCP 节点创建节点网络配置策略。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除剩余的 OSPdO 资源。不要删除
OpenStackBaremetalSets和OpenStackProvisionServer资源:for i in $(oc get crd | grep osp-director | grep -v baremetalset | grep -v provisionserver | awk {'print $1'}); do echo Deleting $i...; oc delete $i -n "${OSPDO_NAMESPACE}" --all; done$ for i in $(oc get crd | grep osp-director | grep -v baremetalset | grep -v provisionserver | awk {'print $1'}); do echo Deleting $i...; oc delete $i -n "${OSPDO_NAMESPACE}" --all; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 OSPdO 缩减为 0 个副本:
ospdo_csv_ver=$(oc get csv -n "${OSPDO_NAMESPACE}" -l operators.coreos.com/osp-director-operator.openstack -o json | jq -r '.items[0].metadata.name') oc patch csv -n "${OSPDO_NAMESPACE}" $ospdo_csv_ver --type json -p="[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/replicas", "value": "0"}]"$ ospdo_csv_ver=$(oc get csv -n "${OSPDO_NAMESPACE}" -l operators.coreos.com/osp-director-operator.openstack -o json | jq -r '.items[0].metadata.name') $ oc patch csv -n "${OSPDO_NAMESPACE}" $ospdo_csv_ver --type json -p="[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/replicas", "value": "0"}]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 OSPdO 中删除 webhook:
oc patch csv $ospdo_csv_ver -n "${OSPDO_NAMESPACE}" --type json -p="[{"op": "remove", "path": "/spec/webhookdefinitions"}]"$ oc patch csv $ospdo_csv_ver -n "${OSPDO_NAMESPACE}" --type json -p="[{"op": "remove", "path": "/spec/webhookdefinitions"}]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 OSPdO
OpenStackBaremetalSet资源中删除终结器:oc patch openstackbaremetalsets.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" compute --type json -p="[{"op": "remove", "path": "/metadata/finalizers"}]"$ oc patch openstackbaremetalsets.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" compute --type json -p="[{"op": "remove", "path": "/metadata/finalizers"}]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
OpenStackBaremetalSet和OpenStackProvisionServer资源:oc delete openstackbaremetalsets.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" --all oc delete openstackprovisionservers.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" --all$ oc delete openstackbaremetalsets.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" --all $ oc delete openstackprovisionservers.osp-director.openstack.org -n "${OSPDO_NAMESPACE}" --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注解每个 RHOSP Compute
BareMetalHost资源,以便 Metal3 不会启动节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在其操作状态被分离后删除
BareMetalHost资源:for bmh_compute in $compute_bmh_list;do \ oc -n openshift-machine-api delete bmh $bmh_compute; \ donefor bmh_compute in $compute_bmh_list;do \ oc -n openshift-machine-api delete bmh $bmh_compute; \ doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 OSPdO Operator Lifecycle Manager 资源以删除 OSPdO:
oc delete subscription osp-director-operator -n "${OSPDO_NAMESPACE}" oc delete operatorgroup osp-director-operator -n "${OSPDO_NAMESPACE}" oc delete catalogsource osp-director-operator-index -n "${OSPDO_NAMESPACE}" oc delete csv $ospdo_csv_ver -n "${OSPDO_NAMESPACE}"$ oc delete subscription osp-director-operator -n "${OSPDO_NAMESPACE}" $ oc delete operatorgroup osp-director-operator -n "${OSPDO_NAMESPACE}" $ oc delete catalogsource osp-director-operator-index -n "${OSPDO_NAMESPACE}" $ oc delete csv $ospdo_csv_ver -n "${OSPDO_NAMESPACE}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 RHOSO OpenStack Operator
controller-manager扩展为 1 个副本,以便协调关联的OpenStackControlPlaneCR,并重新创建其OpenStackClientpod:oc patch csv -n "${OSPDO_NAMESPACE}"-operators openstack-operator.v0.0.1 --type json -p="[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/replicas", "value": "1"}]"$ oc patch csv -n "${OSPDO_NAMESPACE}"-operators openstack-operator.v0.0.1 --type json -p="[{"op": "replace", "path": "/spec/install/spec/deployments/0/spec/replicas", "value": "1"}]"Copy to Clipboard Copied! Toggle word wrap Toggle overflow