使用 Minion 扩展 Undercloud¶
https://blueprints.launchpad.net/tripleo/undercloud-minion
为了提高我们的扩展能力,我们已经确定 heat-engine 和可能 ironic-conductor 是可以添加到现有 undercloud 部署中的服务。添加 heat-engine 可以在创建和更新部署堆栈时提供额外的处理能力。通过添加一个新的轻量级 minion 节点,我们可以横向扩展 Heat 容量。
此外,由于这些节点可能更偏远,我们可以添加一个 ironic-conductor 实例来管理远程区域中的主机,同时仍然拥有一个用于主要管理的中央 undercloud。
问题描述¶
目前,我们使用 undercloud 中的单个 heat-engine 进行部署。根据 Heat 团队的说法,为了提高处理能力,拥有额外的 heat-engine 实例是有益的。推荐的扩展方式是横向扩展而不是纵向扩展。此外,通过能够部署辅助主机,我们可以在需要额外扩展容量时提高 undercloud 的容量。
提议的变更¶
概述¶
我们建议添加一个新的 undercloud “minion” 配置,操作员可以使用该配置来配置额外的 heat-engine 和 ironic-conductor 实例,以在需要更多处理能力时使用。我们还将允许操作员禁用主 undercloud 中的 heat-engine,以减少 undercloud 的资源使用。通过从常规 undercloud 中删除 heat-engine,操作员可能可以避免在系统负载较高时可能发生的 keystone 和 neutron 等其他服务的超时。
替代方案¶
另一种选择是使 undercloud 能够以传统的 HA 方式部署,从而在多个节点之间共享服务。这将提高整体容量,但会增加 undercloud 的复杂性。此外,这不能让我们针对资源密集型特定服务。
安全影响¶
新节点需要能够访问主 undercloud 的 keystone、数据库和消息传递服务。
升级影响¶
新的 minion 角色需要能够被用户升级。
其他最终用户影响¶
无。
性能影响¶
由于提供的额外资源容量,此额外的 minion 角色可以提高 heat 处理速度。
将 ironic-conductor 放置在靠近被管理节点的位置可以提高性能,因为靠近系统(更低的延迟等)。
其他部署者影响¶
将创建一个额外的 undercloud 角色和一个新的 undercloud-minion.conf 配置文件。此外,可能还会向 undercloud.conf 添加一个新的选项来管理 heat-engine 安装。
开发人员影响¶
无。
实现¶
负责人¶
- 主要负责人
mwhahaha
- 其他贡献者
slagle EmilienM
工作项¶
工作项目或任务 – 将该功能分解为实施它需要完成的事情。这些部分可能最终由不同的人完成,但我们主要试图了解实施的时间表。
python-tripleoclient¶
用于安装的新 ‘openstack undercloud minion deploy’ 命令
用于升级的新 ‘openstack undercloud minion upgrade’ 命令
用于驱动安装和升级的新配置文件 ‘undercloud-minion.conf’。
‘undercloud.conf’ 中的新配置选项,用于提供禁用 undercloud 上 heat-engine 的能力。
tripleo-heat-templates¶
新的 ‘UndercloudMinion’ 角色文件
用于 undercloud minion 部署的新环境文件
额外的环境文件,用于启用或禁用 heat-engine 和 ironic-conductor。
依赖项¶
无。
测试¶
我们将添加一个新的 CI 任务来测试 minion 节点的部署。此任务很可能是一个新的多节点任务。
文档影响¶
我们需要记录 undercloud minion 安装的使用方法以及可以从中受益的具体用例。
参考资料¶
请参阅 Train PTG 围绕扩展的说明。