16.3. 删除 Compute 节点


在某些情况下,您可能需要从 overcloud 中删除计算节点。例如,需要替换有问题的计算节点。

重要

在从 overcloud 中删除计算节点前,先将该节点上的工作负载迁移到其他计算节点。有关更多信息,请参见 第 13 章 在 Compute 节点之间迁移虚拟机

先决条件

  • 放置服务软件包 python3-OSC-placement 已安装在 undercloud 上。

步骤

  1. 查找 overcloud 配置:

    $ source ~/stack/overcloudrc
    Copy to clipboard
  2. 禁用 overcloud 中传出节点上的 Compute 服务,以防止节点调度新的实例:

    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service set <hostname> nova-compute --disable
    Copy to clipboard
    提示

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

  3. 查找 undercloud 配置:

    (overcloud) $ source ~/stack/stackrc
    Copy to clipboard
  4. 确定 overcloud 堆栈的 UUID:

    (undercloud) $ openstack stack list
    Copy to clipboard
  5. 找到要被删除的节点的 UUID:

    (undercloud) $ openstack server list
    Copy to clipboard
  6. 从 overcloud 堆栈中删除节点,并相应地更新计划:

    (undercloud) $ openstack overcloud node delete --stack <stack_uuid> [node1_uuid] [node2_uuid] [node3_uuid]
    Copy to clipboard
  7. 确保 openstack overcloud node delete 命令已运行完:

    (undercloud) $ openstack stack list
    Copy to clipboard

    当删除操作完成后,overcloud 堆栈的状态会显示 UPDATE_COMPLETE

    重要

    如果您打算使用相同的主机名重新部署 Compute 服务,则需要对重新部署的节点使用现有服务记录。如果是这样,则跳过此过程中的剩余步骤,继续按照 使用相同的主机名重新部署 Compute 服务中详述的说明操作。

  8. 从节点删除 Compute 服务:

    (undercloud) $ source ~/stack/overcloudrc
    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service delete <service-id>
    Copy to clipboard
  9. 从节点删除 Open vSwitch 代理:

    (overcloud) $ openstack network agent list
    (overcloud) $ openstack network agent delete <openvswitch-agent-id>
    Copy to clipboard
  10. 将删除的 Compute 服务作为资源提供商从放置服务中移除:

    (overcloud) $ openstack resource provider list
    (overcloud) $ openstack resource provider delete <uuid>
    Copy to clipboard
  11. 减少包含节点数的环境文件中的 ComputeCount 参数。此文件通常被命名为 node-info.yaml。例如,如果您删除两个节点,则把节点数从五个节点减小到三个节点:

    parameter_defaults:
      ...
      ComputeCount: 3
      ...
    Copy to clipboard

    减少节点数可确保 director 在运行 openstack overcloud deploy 时不置备新节点。

现在,可以安全地把节点从 overcloud 中删除,并将它部署用于其他目的。

使用相同的主机名重新部署 Compute 服务

要重新部署禁用的 Compute 服务,请在具有相同主机名的 Compute 节点重新启动之后再重新启用。

步骤

  1. 将删除的 Compute 服务作为资源提供商从放置服务中移除:

    (undercloud) $ source ~/overcloudrc
    (overcloud) $ openstack resource provider list
    (overcloud) $ openstack resource provider delete <uuid>
    Copy to clipboard
  2. 检查 Compute 服务的状态:

    (overcloud) $ openstack compute service list --long
    ...
    | ID | Binary       | Host                  | Zone  | Status   | State | Updated At                 | Disabled Reason      |
    | 80 | nova-compute | compute-1.localdomain | nova  | disabled | up    | 2018-07-13T14:35:04.000000 | gets re-provisioned |
    ...
    Copy to clipboard
  3. 重新部署的 Compute 节点的服务状态再次为“up”后,重新启用该服务:

    (overcloud) $ openstack compute service set compute-1.localdomain nova-compute --enable
    Copy to clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.