没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
OpenStack 本身提供了命令行和 Horizon 供用户管理资源,用户也可以编写程序通过
REST API 来管理云资源。这些方式适合简单少量的资源管理和单一任务。对于大量资源的
管理和负杂的云部署任务,需要使用编排(Orchestration)服务来提高效率。OpenStack 的
编排服务成为 Heat。Heat 是一个通过 OpenStack 原生 REST API 基于模板来编排复合云应用
的服务。Heat 提供一个云业务流程平台,可以让用户使用模板实现资源的自动化部署。
14.1 Heat 编排服务
所谓编排就是按照一定的目的依次排列。在 OpenStack 环境中,可以使用编排服务来集
中管理整个云架构、服务和应用的生命周期。编排可以通过预先设定来协调配置同一个节点
或不同节点的部署资源和部署顺序。
用户将各种资源的需求写入模板文件中,Heat 基于模板文件自动调用相关服务的接口
来配置资源,从而实现自动化云部署。
在编排服务中,资源特指编排期间创建或修改的对象,可以是网络、路由器、子网、实
例、卷、浮动 IP、安全组等。
模板以文本文件的形式描述了云应用的基础设施,主要是需要被创建的资源的细节。
Heat 从四个方面来支持编排:
(1) 首先是 OpenStack 自己提供的基础架构资源,包括计算,网络和存储等资源。通
过编排这些资源,用户就可以得到最基本的 VM。
(2) 在编排 VM 的过程中,用户可以提供一些简单的脚本,以便对 VM 做一些简单
的配置。
(3) 然后用户可以通过 Heat 提供的 Software Configuration 和 Software Deployment
等对 VM 进行复杂的配置,比如安装软件、配置软件。
(4) 接着如果用户有一些高级的功能需求,比如需要一组能够根据负荷自动伸缩的 VM
组,或者需要一组负载均衡的 VM,Heat 提供了 AutoScaling 和 Load Balance 等进行支持。
如果要用户自己单独编程来完成以上这些功能,所花费的时间和编写的代码都是不菲的。
通过 Heat,只需要一段长度的 Template,就可以实现这些复杂的应用。Heat 对诸如
AutoScaling 和 Load Blance 等复杂应用的支持已经非常成熟,有各种各样的模板供参考。
14.1.1 Heat 与 OpenStack 其它组件之间的关系
图 14-1 Heat 与 OpenStack 其它组件之间的关系
14.1.2 Heat 架构
Heat 的主要组件:
heat:命令行工具,用于与 heat-api 通信以执行 AWS CloudFormation API.终端人员
也可以直接使用 heat 的 REST API。
heat-api:提供 OpenStack 本身支持的 REST API,通过 RPC 将 API 请求发送给
heat-engine 进行处理。
heat-api-cfn:提供兼容 AWS 的 API,通过 RPC 将 API 请求发送给 heat-engine 进行
处理。
heat-engine:Heat 的核心,主要实现任务调度、资源生命周期管理等作用,它自身
并不会创建资源,只负责资源编排,资源的创建都会交由相应的组件去处理。
图 14-2 heat 架构
Heat 的工作机制如下:
图 14-3 Heat 工作机制
用 户 在 Dashboard 图 形 界 面 中 或 者 命 令 行 中 提 交 包 含 模 板 和 参 数 输 入 的 请 求 ,
Dashboard 图形界面中或者命令行工具会将请求转化为 REST 格式的 API 调用,然后调用
heat-api 或者 heat-api-cfn。heat-api 或者 heat-api-cfn 会验证模板的有效性,然后通过 AMQP
异步传递给 heat-engine 来处理请求。
核心组件 heat-engine 提供 Heat 最主要的协作功能。当 heat-engine 收到请求后,会将请
求解析为各种类型的资源,每种资源都对应 OpenStack 其他服务的客户端,然后发送 REST
请求给其他服务。
组件 heat-engine 的作用可以分为三个层面。第一个层面负责处理 Heat 层面的请求,根
据模板和输入参数创建栈(由各种资源组成)。第二个层面解析栈中各种资源的依赖关系,
以及栈和嵌套栈的关系,第三个层面就是根据解析出来的次序、依赖关系和嵌套关系,依次
调用各种服务客户端来创建各种资源。
14.2 Heat 编排模板
Heat 采用了模板方式来设计和定义编排,用户只需要使用文本编辑器编写包含若干节、
键值对(key-value pair)代码的模板文件,来实现资源的编排。Heat 目前支持两种格式:一
种是基于 YAML 的 HOT(Heat Orchestration Template)模板;另一种基于 JSON 格式的 CFN
(CloudFormation-compatible)模板,CFN 主要为了兼容 AWS。HOT 是 Heat 自由的模板,
资源类型更加丰富,更能体现 Heat 的特点,比 CFN 更好。主要讲解 HOT 模板。
14.2.1 HOT 结构
OpenStack 官方模板向导:
https://docs.openstack.org/heat/latest/template_guide/index.html
HOT 模板由以下几部分构成:
模板版本信息。必填部分,用于指定相应的版本信息,不同版本都向下兼容。
模板参数列表。可选部分,用于定义模板的输入参数。
模板资源列表。必填部分,设计用户需要创建哪些资源,也可以指定资源间的关联
及绑定关系。
模板输出信息。可选部分,用于指定 Stack 暴露的原信息,此信息可以为其他 stack
使用。
HOT 的结构如下
(参考:
https://docs.openstack.org/heat/latest/template_guide/hot_spec.ht
ml#hot-spec-template-version):
heat_template_version: 2016-10-14
#heat_template_version: 必填字段,指定对应的模板版本,Heat 会根据版本进行检验和
#支持的功能。
#命令 heat template-version-list 可查看所有模板版本
description:
# description: 选填字段,用于模板的描述
parameter_groups:
#parameter_groups: 选填字段,允许指定如何对输入参数进行分组,以及提供参数的顺
剩余21页未读,继续阅读
代码深渊漫步者
- 粉丝: 14
- 资源: 320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0