Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第 8 章 控制节点放置

director 的默认行为是为每个角色随机选择节点,通常基于它们的 profile 标签。但是,director 提供了定义特定节点放置的功能。这是对以下情况的非常有用的方法:

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

为网络手动设置可预测的 IP 地址、虚拟 IP 地址和端口,可减少分配池的需求。但是,建议为每个网络保留分配池,以便更轻松地扩展新节点。确保任何静态定义的 IP 地址不在分配池之外。有关设置分配池的详情请参考 第 7.2 节 “创建网络环境文件”

8.1. 分配特定的节点 ID

此流程将节点 ID 分配给特定的节点。节点 ID 的示例包括 controller-0controller-1compute-0compute-1 等。

第一步是将 ID 指定为与部署上的 Nova 调度程序匹配的每个节点功能。例如:

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

这会将 capability node:controller-0 分配给节点。使用唯一连续索引重复此模式,从 0 开始,对所有节点从 0 开始。确保给定角色(Controller、Compute 或每个存储角色)的所有节点都以相同的方式标记,否则 Nova 调度程序将不能正确匹配。

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

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

要使用这些调度程序提示,请在 Overcloud 创建过程中包括带有 overcloud deploy 命令的 ' scheduler_hints_env.yaml' 环境文件。

通过这些参数,每个角色都可以使用相同的方法:

  • Controller 节点的 ControllerSchedulerHints
  • Compute 节点的 NovaComputeSchedulerHints
  • Block Storage 节点的 BlockStorageSchedulerHints
  • Object Storage 节点的 ObjectStorageSchedulerHints
  • Ceph Storage 节点的 CephStorageSchedulerHints
  • [ROLE] 自定义角色的SchedulerHints。将 [ROLE] 替换为角色名称。
注意

节点放置优先于配置集匹配。为避免调度失败,请使用默认的 baremetal 类别进行部署,而不是为配置文件匹配而设计的类别(计算控制 等等)。例如:

$ openstack overcloud deploy ... --control-flavor baremetal --compute-flavor baremetal ...