第 3 章 替换数据平面节点
您可以在 OpenShift (RHOSO)云上扩展 Red Hat OpenStack Services 的情况下替换预置备和置备的数据平面节点。
3.1. 替换预置备节点 复制链接链接已复制到粘贴板!
当您替换有问题的预置备节点时,您的替换节点与故障节点具有相同的主机名和 IP 地址。您可以创建一个新的 OpenStackDataPlaneDeployment CR 来部署新节点。
如果您的替换节点有与故障节点不同的 IP 地址,您可以为该节点设置一个新的 fixedIP,并为 OpenStackDataPlaneNodeSet CR 中的节点设置一个新的 ansibleHost。然后,您可以创建一个新的 OpenStackDataPlaneDeployment CR 来部署新节点。
当替换预置备节点时,您可以手动清理您要删除的节点。
有关错误、数据平面条件和状态以及修改 OpenStackDataPlaneNodeSet CR 时可能会出现的状态,请参阅 修改 OpenStackDataPlaneNodeSet CR 中的 自定义 OpenShift 部署上的 Red Hat OpenStack Services。
先决条件
-
以具有
cluster-admin权限的用户身份登录 RHOCP 集群。 - Compute 节点上的工作负载已迁移到其他 Compute 节点。
流程
如果有问题的节点仍然可以被访问,请执行清理的任务,以确保有问题的节点不会影响新节点。
SSH 到移除的节点,并停止
ovn和nova-compute容器:$ ssh -i <key_file_name> cloud-admin@<node_IP_address> [cloud-admin@<hostname> ~]$ sudo systemctl stop edpm_ovn_controller [cloud-admin@<hostname> ~]$ sudo systemctl stop edpm_ovn_metadata_agent [cloud-admin@<hostname> ~]$ sudo systemctl stop edpm_nova_compute-
将 <
key_file_name> 替换为您创建的 SSH 密钥对文件的名称和位置,以便 Ansible 管理 RHEL 节点。 -
将
<node_IP_address> 替换为已删除节点的 IP 地址。
-
将 <
删除管理
ovn和nova-compute容器的systemd单元文件,以防止在删除的节点重启时自动启动和注册代理:[cloud-admin@<hostname> ~]$ sudo rm -f /etc/systemd/system/edpm_ovn_controller [cloud-admin@<hostname> ~]$ sudo rm -f /etc/systemd/system/edpm_ovn_metadata_agent [cloud-admin@<hostname> ~]$ sudo rm -f /etc/systemd/system/edpm_nova_compute断开与节点的连接:
$ exit
如果您的替换节点具有与故障节点相同的 IP 地址,请执行以下步骤 3 以创建
OpenStackDataPlaneDeploymentCR 来部署新节点。如果您的替换节点有与故障节点不同的 IP 地址,请打开您要更新的节点设置的OpenStackDataPlaneNodeSetCR 文件,例如openstack_data_plane.yaml,并进行以下更改。为您要替换的节点更新 control plane 网络的
fixedIP,以指定新节点的 IP 地址:Example:
nodes: edpm-compute-0: hostName: edpm-compute-0 networks: - name: ctlplane subnetName: subnet1 defaultRoute: true fixedIP: 192.168.122.100 ...更新您要替换的节点的
ansibleHost值,以指定新节点的 IP 地址:Example:
nodes: edpm-compute-0: hostName: edpm-compute-0 ... ansible: ansibleHost: 192.168.122.100 ansibleUser: cloud-admin ansibleVars: fqdn_internal_api: edpm-compute-0.example.com ...-
保存
OpenStackDataPlaneNodeSetCR 文件。 应用更新的
OpenStackDataPlaneNodeSetCR 配置:$ oc apply -f openstack_data_plane.yaml通过确认状态为
SetupReady来验证 data plane 资源是否已更新:$ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m当状态是
SetupReady时,命令会返回一个condition met消息,否则会返回超时错误。
在工作站上创建一个文件,以定义
OpenStackDataPlaneDeploymentCR 来部署新节点:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: <node_set_deployment_name>-
将
<node_set_deployment_name> 替换为OpenStackDataPlaneDeploymentCR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或.(句点),且必须以字母数字字符开头和结尾。
-
将
添加
OpenStackDataPlaneNodeSetCR:spec: nodeSets: - <nodeSet_name>-
保存
OpenStackDataPlaneDeploymentCR 部署文件。 部署
OpenStackDataPlaneNodeSetCR:$ oc create -f openstack_data_plane_deploy.yaml -n openstack您可以在部署执行时查看 Ansible 日志:
$ oc get pod -l app=openstackansibleee -w $ oc logs -l app=openstackansibleee -f --max-log-requests 10验证
OpenStackDataPlaneNodeSetCR 是否已部署:$ oc get openstackdataplanedeployment -n openstack NAME STATUS MESSAGE openstack-data-plane True Setup Complete $ oc get openstackdataplanenodeset -n openstack NAME STATUS MESSAGE openstack-data-plane True NodeSet Ready