使用 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 围绕扩展的说明。