当前位置:   article > 正文

OpenStack Heat编排

heat编排

一,什么是Heat

    Heat是OpenStack提供的自动编排功能的组件,基于描述性的模板,来编排复合云应用程序。

    Heat向开发人员和系统管理员提供了一种简便地创建和管理一批相关的OpenStack资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。

    用户可以使用Heat的示例模板或自己创建模板来描述OpenStack资源以及应用程序运行时所需的任何相关依赖项或运行时参数。

    当设置完成后,可通过按授权控制、可预测的方式修改和更新OpenStack资源。

    用户可以通过OpenStack管理控制台、Heat命令行工具或 API对模板及其相关的资源集进行设置和更新。

 

二,为什么需要Heat

1,更快更有效的管理OpenStack的资源

     云平台系统在相对比较稳定的情况下,管理成本逐渐变成首要的解决问题。云上自动化能力是一个云平台的刚需,可以有效降低维护难度。

    OpenStack原生提供命令行和 Horizon 来供用户管理资源。然而命令行和在浏览器中的点击,费时费力,不利于用户使用 Openstack 来进行大批量的管理以支撑 IT 应用。

    Heat 在这种情况下应运而生。

    Heat 采用了模板方式来设计或者定义编排。为方便用户使用,Heat 还提供了大量的模板例子,使用户能够方便地得到想要的编排。

2,更小的研发成本

     引入Heat,对于不了解OpenStack的研发者来说,可以更快的接入现有的业务系统。开发者更关心的是授权认证和对虚拟资源的增删改,而对于底层的状态并不用太多了解。

 

三,基本术语

1,stack

    Stack概念来源于AWS,是OpenStack中用来管理一组资源的基本单位。一个stack往往对应一个应用程序。

    Stack管理的是resource,而resource是个抽象的概念,它可以是虚拟机,可以是网络等。

    Stack就是在单个模板中定义的实例化资源的集合,是Heat管理应用程序的逻辑单元。

2,template

    heat的template描述了所用的所有组件资源以及组件资源之间的关系。

    heat模版是heat的核心.

2.1,resource

    资源是底层服务的抽象,CPU、memory、disk、网络等都可以看作是资源。一个stack可以拥有很多资源。

    资源和资源之间会存在依赖关系。Heat在创建栈的时候会自动解析依赖关系,按顺序创建资源。

    在heat的template中,resources用于模板中资源的声明,在HOT模板中,应该至少有一个资源的定义,否则在实例化模板时将不会做任何事情。

2.2,parameters

    heat模板中的顶级key,定义在创建或更新stack时可以传递哪些数据来定制模板。

2.3,parameter_groups,

    用于指定如何对输入参数进行分组,以及提供参数的顺序。

2.4,outputs

    heat模板中的顶级key,定义实例化后stack将返回的数据。

顶级key包括七个:

heat_template_version、description、parameter_groups、parameters、resources、outputs、conditions。

除了heat_template_version和resources,其它都是可选部分。

 

四,Heat 功能描述

Heat编排服务,通过使用描述性的模板格式,来编排复合云应用程序。

1,Heat提供基于模板的业务流程,调用相应的OpenStack API,生成运行的云应用程序。

2,Heat模板在文本文件中,描述了云应用程序的基础结构,这些文本文件可读可写,并且可以通过版本控制工具进行管理。

3,模板指定了资源之间的关系(例如,指定存储卷连接到指定服务器),这使Heat能够调用OpenStack APIs,以正确的顺序创建所有基础设施,启动应用程序。

4,Heat集成了OpenStack的其他组件,能够自动化调配大多数云资源(例如实例、浮动ip、卷、安全组、用户等),以及一些更高级的功能,例如高可用性、实例自动伸缩和嵌套stack。

5,Heat模板与软件配置管理工具(如Puppet和Ansible)的集成

6,操作人员可以通过安装插件定制Heat功能

 

五,Heat 架构组成

1,heat command-line client

    CLI通过与heat-api通信,来调用API实现相关功能。终端开发者可以直接使用编排REST API。

2,heat-api

    一个OpenStack本地REST API,通过RPC,把发送来的API请求在发给heat-engine。

    heat-api,提供了原生restful API对外使用。用户对API的调用,由heat-api处理之后,最终通过RPC传递给Heat-engine来进一步处理。

3,heat-api-cfn

   组件提供了Amazon style 的查询 API,可以完全兼容于Amazon的CloudFormation,对于API的请求同heat-api类似,处理之后,通过RPC传递给heat-engine进一步处理。

4,heat-engine

    heat-engine是heat中的核心模块,处理主要的逻辑业务。

    此模块提供heat最主要的功能,执行模板内容,最终完成应用系统的创建和部署,并把执行结果返回给API调用者。

    当 heat engine 拿到请求后,会把请求解析为各种类型的资源,每种资源都对应 OpenStack 其它的服务客户端,然后通过发送 REST 的请求给其它服务。通过如此的解析和协作,最终完成请求的处理。

5,heat-cfntools

   独立于heat组件的一个的工具,需要单独下载。这个工具用来完成虚拟机实例内部的操作配置任务。在创建虚拟机镜像时,需要在镜像中安装heat-cfntools工具。

Heat 架构

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/70562
推荐阅读
相关标签
  

闽ICP备14008679号