1、Heat简介
Heat 是 openstack,提供自动编排功能的组件,基于描述性的模板,来编排复合云应用程序。 I
2、架构
Heat中的模板是OpenStack资源的集合( 虚拟机、网络、存储、告警、浮动IP、安全组、伸缩组、嵌套stack等 ),通过定义模板,可以将需要创建的资源在模板中描述用此模板可以多次创建需要的资源。
Heat-api: 提供REST API服务,是其他组件与Heat交互的入口,接收API请求并传送给heat-engine。
Heat-api-cfn: 提供兼容AWS CloudFormation的API,接收API请求并转发给heat-engine。
Heat-engine: Heat的核心,主要实现任务调度、资源生命周期管理等作用,自身并不提供资源创建功能,只负责编排资源后交由其他组件去处理
1,堆栈(stack):管理资源集合,单个模板中定义的实例化资源的集合,是 Heat 管理应用程序逻辑单元,往往对应一个应用程序。
2,模板(template) 如何使用代码定义和描述堆栈,描述所有组件资源以及资源之间的关系,是Heat核心。
3,资源(resource) 将在编排期间创建或修改的对象,资源可以是网络,子网,实例,卷,浮动 IP,安全组。
4,参数(parameters): heat 模板中顶级的 key,定义在创建或更新 stack 时可以传递哪此数据来定制模板。
5.参数组(parameter_groups):用于指定如何对输入的参数进行分组,以及提供参数的的顺序
6.输出(outputs):heat模板中顶级 key,定义实例化后 stack 将返回的数据。
支持如下版本字段,建议根据实际的OpenStack版本选择Heat template version :配的Heat模板版本号:
2013-05-230
2014-10-16o
2015-04-30o
2015-10-15o
2016-04-080
2016-10-14或newton
2017-02-24或ocata
2017-09-01或pike
2018-03-02或queens
2018-08-31或rocky
resource ID
资源ID,在模板的resources部分中必须是唯一的。
type
资源类型,例如OS::Nova::Server或OS::Neutron::Port,必选属性。
properties特定于资源的属性列表。可以在适当的位置或通过函数提供属性值,可选属性
metadata 特定于资源的元数据。此部分是可选的。
depends on 资源依赖模板中的一个或多个资源上,可选属性。
update policy以嵌套字典的形式更新资源的策略,可选属性。
deletion policy 删除资源的策略。允许的删除策略是Delete,Retain和Snapshot。该属性是可选的,默认策略是从stack中删除资源时删除物理资源。
3、应用场景
Heat提供了多种资源类型来支持对于软件配置和部署的编排,例如:
OS:Heat::CloudConfig: VM引导程序启动时的配置,由OS::Nova::Server引l用。
OS::Heat::SoftwareConfig: 描述软件配置。
Os::Heat:SoftwareDeployment: 执行软件部署
Os::Heat::SoftwareDeploymentGroup: 对一组VM执行软件部署
OS::Heat::SoftwareComponent: 针对软件的不同生命周期部分,对应描述软件配置。
OS::Heat.StructuredConfig: 和OS::Heat::SoftwareConfig类似,但是用Map来表述配置。
OS::Heat::StructuredDeployment: 执行OS:Heat.:StructuredConfig对应的配置。
OS::Heat::StructuredDeploymentsGroup: 对一组VM执行OS.:Heat..StructuredConfig对应的配置。
负载均衡也是一个很高级应用,它也是由一组不同的资源类型来实现的。资源类型包括:
OS::Neutron::Pool: 定义资源池,一般可以由VM组成。
OS:Neutron::PoolMember: 定义资源池的成员。
Os::Neutron::HealthMonitor: 定义健康监视器,根据自定的协议,比如TCP来监控资源的状态,并提供给OS::Neutron::Pool来调整请求分发
OS::Neutron::LoadBalancer: 关联资源池以定义整个负载均衡。