第 13 章 控制节点放置

默认情况下,director 会随机选择各个角色的节点,通常根据节点的 profile 标签。但是,您还可以定义特定的节点放置。这在以下情况中很有用:

  • 分配特定节点 ID,如 controller-0controller-1
  • 分配自定义主机名
  • 分配特定的 IP 地址
  • 分配特定的虚拟 IP 地址
注意

为网络手动设置可预测的 IP 地址、虚拟 IP 地址和端口,从而降低分配池需求。但是,建议为每个网络保留分配池,以简化扩展新节点。确保任何静态定义的 IP 地址都位于分配池之外。

13.1. 分配特定节点 ID

您可以将节点 ID 分配给特定的节点,例如 controller-0controller-1compute-0compute-1

流程

  1. 将 ID 分配为计算调度程序在部署时匹配的每个节点功能:

    openstack baremetal node set --property capabilities='node:controller-0,boot_option:local' <id>

    此命令将能力 node:controller-0 分配给节点。使用唯一连续索引重复此模式,从 0 开始用于所有节点。确保给定角色的所有节点(Controller、Compute 或每个存储角色)都以相同的方式标记,或者计算调度程序无法正确匹配该功能。

  2. 创建一个 heat 环境文件(如 scheduler_hints_env.yaml),该文件使用调度程序提示来匹配每个节点的功能:

    parameter_defaults:
      ControllerSchedulerHints:
        'capabilities:node': 'controller-%index%'

    使用以下参数为其他角色类型配置调度程序提示:

    • Controller 节点的 ControllerSchedulerHints
    • Compute 节点的 ComputeSchedulerHints
    • Block Storage 节点的 BlockStorageSchedulerHints
    • Object Storage 节点的 ObjectStorageSchedulerHints
    • CephStorageSchedulerHints 用于 Ceph Storage 节点。
    • [ROLE]SchedulerHints 用于自定义角色。将 [ROLE] 替换为角色名称。
  3. overcloud deploy 命令中包含 scheduler_hints_env.yaml 环境文件。
注意

节点放置优先于配置集匹配。为避免调度失败,请使用默认 baremetal 类型进行部署,而不是为配置集匹配设计的类别(计算控制):在环境文件中将对应的 flavor 参数设置为 baremetal:

parameter_defaults:
  OvercloudControllerFlavor: baremetal
  OvercloudComputeFlavor: baremetal