第 13 章 控制节点放置
默认情况下,director 会随机选择各个角色的节点,通常根据节点的 profile 标签。但是,您还可以定义特定的节点放置。这在以下情况中很有用:
-
分配特定节点 ID,如
controller-0
、controller-1
- 分配自定义主机名
- 分配特定的 IP 地址
- 分配特定的虚拟 IP 地址
为网络手动设置可预测的 IP 地址、虚拟 IP 地址和端口,从而降低分配池需求。但是,建议为每个网络保留分配池,以简化扩展新节点。确保任何静态定义的 IP 地址都位于分配池之外。
13.1. 分配特定节点 ID
您可以将节点 ID 分配给特定的节点,例如 controller-0
、controller-1
、compute-0
和 compute-1
。
流程
将 ID 分配为计算调度程序在部署时匹配的每个节点功能:
openstack baremetal node set --property capabilities='node:controller-0,boot_option:local' <id>
此命令将能力
node:controller-0
分配给节点。使用唯一连续索引重复此模式,从 0 开始用于所有节点。确保给定角色的所有节点(Controller、Compute 或每个存储角色)都以相同的方式标记,或者计算调度程序无法正确匹配该功能。创建一个 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]
替换为角色名称。
-
Controller 节点的
-
在
overcloud deploy 命令中包含
scheduler_hints_env.yaml
环境文件。
节点放置优先于配置集匹配。为避免调度失败,请使用默认 baremetal
类型进行部署,而不是为配置集匹配设计的类别(计算
、控制
):在环境文件中将对应的 flavor 参数设置为 baremetal:
parameter_defaults: OvercloudControllerFlavor: baremetal OvercloudComputeFlavor: baremetal