Conductor Groups¶
概述¶
大型运营商通常有创建明确定义和划分资源的需求。在某些情况下,这些系统可能位于附近或遥远的地方。原因可能很简单或复杂,但只有部署者和基础设施运营商才知道。
一个常见的情况是需要划分的高可用性域,在这种情况下,在南极洲建立一个数据中心并配备南极洲的conductor,比在纽约市配备conductor效率更高。
工作原理¶
从 ironic 11.1 开始,每个节点都有一个 conductor_group 字段,该字段会影响 ironic conductor 如何计算(以及因此分配)ironic 管理下的裸机节点。此计算由每个运行的 conductor 独立执行,因此,如果 conductor 在其 ironic.conf 配置文件中定义了 conductor.conductor_group 配置选项,则该 conductor 将仅限于管理具有匹配 conductor_group 字符串的节点。
注意
任何没有 conductor.conductor_group 设置的 conductor 将仅管理在节点创建时未设置 conductor_group 值的裸机节点。如果配置了 conductor group 时没有这样的 conductor,则除非在节点创建时指定了 conductor_group,否则节点创建将失败。
警告
没有 conductor_group 设置的节点只能在存在没有定义 conductor.conductor_group 的 conductor 时进行管理。如果所有 conductor 都已迁移到使用 conductor group,则这些节点实际上将被“孤立”。
如何使用¶
conductor group 值可以是任何不区分大小写的字符串,长度最多为 255 个字符,并且与 ^[a-zA-Z0-9_\-\.]*$ 正则表达式匹配。
在 ironic.conf 中设置一个或多个(但不是全部)conductor 上的
conductor.conductor_group选项[conductor] conductor_group = OperatorDefinedString
重启 ironic-conductor 服务。
在一个或多个节点上设置 conductor group
baremetal node set \ --conductor-group "OperatorDefinedString" <uuid>
根据需要,可以更新剩余的 conductor,执行前两个步骤。请注意文档前面介绍的有关管理节点能力的约束。