Ironic 中退役节点

概述

节点退役是服务器生命周期中的自然组成部分,例如当保修期结束并且物理空间需要用于安装替换容量的新交付时。

然而,根据部署类型,从服务中移除节点本身可能是一个完整的流程,因为它可能包括将应用程序迁移到其他主机、清除磁盘或 BMC 上的敏感数据,或跟踪服务器从机架上的拆卸等步骤。

Ironic 提供了一些手段来支持这些流程,允许将节点标记为 retired(已退役),这将阻止任何进一步的实例调度,但仍允许进行其他操作,例如清理(这与设置了 maintenance(维护)标志的节点有重要的区别)。

需求

使用退役功能要求启用自动清理。默认的 conductor.automated_clean 设置不得禁用,因为退役功能仅在完成清理后才会启动,因为它提出了从节点中删除敏感数据的期望。

如果您对完全清理感到不适,但想使用退役功能,一种妥协方案是探索使用元数据擦除,但是这将留下磁盘上的额外数据,您可能希望完全擦除这些数据。请查阅 deploy.erase_devices_metadata_prioritydeploy.erase_devices_priority 设置的配置,并请注意,如果希望触发 erase_devices 清理步骤以完全擦除存储设备上的所有数据,可以通过手动清理手动调用清理步骤。或者,也可以使用 baremetal node set --automated-clean <node_id> 命令在单个节点级别启用自动清理。

如何使用

当已知节点将被退役时,使用以下命令在节点上设置 retired 标志:

baremetal node set --retired node-001

无论节点处于什么状态,都可以执行此操作,特别是当节点处于 active(活动)状态时。

注意

例外情况是处于 available(可用)状态的节点。为了保持向后兼容性,这些节点需要先移动到 manageable(可管理)状态。尝试为 available 节点设置 retired 标志将导致错误。

可选地,可以在退役节点时指定原因,例如:

baremetal node set --retired node-001 \
  --retired-reason "End of warranty for delivery abc123"

实例删除后,设置了 retired 标志的 active 节点将不会移动到 available,而是移动到 manageable。因此,该节点将不符合新实例调度的资格。

同样,设置了 retired 为 True 的节点无法从 manageable 移动到 availableprovide 命令被阻止。这是为了防止意外地重新使用标记为从机队中移除的节点。为了尽管如此将这些节点移动到 available,首先需要删除 retired 字段。可以通过以下方式完成:

baremetal node unset --retired node-001

为了便于其他团队识别标记为退役的节点,Ironic 还允许列出所有设置了 retired 标志的节点:

baremetal node list --retired