7.4. 从数据平面中删除 Compute 节点


您可以从数据平面上的节点集合中删除 Compute 节点。如果从节点集合中删除所有节点,则还必须从 data plane 中删除节点集。

先决条件

  • 以具有 cluster-admin 权限的用户身份登录 RHOCP 集群。
  • Compute 节点上的工作负载已迁移到其他 Compute 节点。

流程

  1. 访问 openstackclient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
  2. 检索您要删除的 Compute 节点的 IP 地址:

    $ openstack hypervisor list
  3. 检索 Compute 节点列表,以识别您要删除的节点的名称和 UUID:

    $ openstack compute service list
  4. 禁用要删除的 Compute 节点上的 nova-compute 服务:

    $ openstack compute service set <hostname> nova-compute --disable
    提示

    使用 --disable-reason 选项添加有关为何要禁用该服务的简短说明。如果您打算重新部署 Compute 服务,这很有用。

  5. 退出 OpenStackClient pod:

    $ exit
  6. SSH 到要删除的 Compute 节点,并停止 ovnnova-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 > 替换为在第 2 步中获取的 Compute 节点的 IP 地址。
  7. 删除管理 ovnnova-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
  8. 断开与 Compute 节点的连接:

    $ exit
  9. 访问 openstackclient 的远程 shell:

    $ oc rsh -n openstack openstackclient
  10. 删除要删除的 Compute 节点的网络代理:

    $ openstack network agent list [--host <hostname>]
    $ openstack network agent delete <agent_id>
  11. 删除要删除的 Compute 节点的 nova-compute 服务:

    $ openstack compute service delete <node_uuid>
    • <node_uuid > 替换为您要删除在第 3 步中检索的节点 UUID。
  12. 退出 OpenStackClient pod:

    $ exit
  13. OpenStackDataPlaneNodeSet CR 中删除节点:

    $ oc patch openstackdataplanenodeset/<node_set_name> --type json --patch '[{ "op": "remove", "path": "/spec/nodes/<node_name>" }]'
    • <node_set_name > 替换为节点所属的 OpenStackDataPlaneNodeSet CR 的名称。
    • <node_name > 替换为 OpenStackDataPlaneNodeSet CR 的 nodes 部分中定义的节点名称。
  14. 在工作站上创建一个文件,以定义 OpenStackDataPlaneDeployment CR,以便在移除 Compute 节点的情况下更新节点集:

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
      name: <node_set_deployment_name>
    • <node_set_deployment_name > 替换为 OpenStackDataPlaneDeployment CR 的名称。名称必须是唯一的,必须包含小写字母数字字符(hyphen)或 . (句点),且必须以字母数字字符开头和结尾。
    提示

    为定义文件和 OpenStackDataPlaneDeployment CR 提供唯一和描述性名称,以指示修改的节点集的用途。

  15. 添加从中删除节点的 OpenStackDataPlaneNodeSet CR:

    spec:
      nodeSets:
        - <nodeSet_name>
  16. 指定 OpenStackDataPlaneDeployment CR 应该仅在部署列出的节点集合时运行 ssh-known-hosts 服务:

    spec:
      servicesOverride:
        - ssh-known-hosts
  17. 保存 OpenStackDataPlaneDeployment CR 部署文件。
  18. 部署 ssh-known-hosts 服务,以从剩余的节点上的已知主机列表中删除删除的节点:

    $ 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

    如果 oc logs 命令返回类似以下错误的错误,请提高 --max-log-requests 值:

    error: you are attempting to follow 19 log streams, but maximum allowed concurrency is 10, use --max-log-requests to increase the limit
  19. 验证修改后的 OpenStackDataPlaneNodeSet CR 是否已部署:

    $ oc get openstackdataplanedeployment -n openstack
    NAME                  NODESETS                  STATUS  MESSAGE
    openstack-data-plane  ["openstack-data-plane"]  True    Setup Complete
    
    $ oc get openstackdataplanenodeset -n openstack
    NAME                  STATUS  MESSAGE
    openstack-data-plane  True    NodeSet Ready

    有关返回状态的含义的信息,请参阅 在 OpenShift 上部署 Red Hat OpenStack Services 中的 Data plane 条件和状态

    如果状态表示 data plane 尚未部署,则对部署进行故障排除。如需更多信息,请参阅在 OpenShift 上部署 Red Hat OpenStack Services 中的对 data plane 创建和部署进行故障排除

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部