Heat 集群模板分解¶
https://blueprints.launchpad.net/sahara/+spec/heat-template-decomposition
目前 Sahara 创建一个包含大量复制粘贴资源的庞大模板。Heat 的特性,例如 模板组合,可以帮助将所有组合工作从 Sahara 转移到 Heat。 这也将允许 Sahara 将各个集群部分作为单独的模板,并将它们作为资源插入(与当前的文本操作相比)。
问题描述¶
目前 Sahara 将集群资源序列化为 heat 模板的文本。 这种方法存在几个问题
代码重复。 如果一个节点组包含 10 个实例,则模板将包含所有实例相关资源 10 次。
没有代码验证。 不能保证生成的模板在语法上是正确的(Sahara 将其视为文本)。 一个资源中缺少逗号可能会影响其他资源。
这不是 Sahara 的工作。 Sahara 微观管理基础设施创建过程。 这是 Heat 的工作。
提议的变更¶
对节点组内的资源使用 OS::Heat::ResourceGroup。 每个节点组将只包含一个资源组,并指定所需的实例数量。 资源组的每个实例将包含所有 Sahara 实例所需的资源(nova 服务器、安全组、卷、浮动 IP 等)。
此更改还将为节点组自动缩放功能奠定基础。
替代方案¶
无。
数据模型影响¶
无。
REST API 影响¶
无。
其他最终用户影响¶
Heat 中生成的 Sahara 堆栈将包含嵌套堆栈。
部署者影响¶
无。
开发者影响¶
无。
Sahara-image-elements impact¶
无。
Sahara-dashboard / Horizon 影响¶
无。
实现¶
负责人¶
- 主要负责人
alazarev (Andrew Lazarev)
- 其他贡献者
无
工作项¶
添加为节点组的单个实例生成单独的 ResourceGroup 的能力
将节点组的模板切换为带有指定实例数量的 ResourceGroup
更新单元测试
确保使用 heat 引擎的 Sahara 仍然适用于所有支持的配置
依赖项¶
无。
测试¶
手动。 CI 也会涵盖 heat 中的更改。
文档影响¶
无。
参考资料¶
无。