资源编排 - Heat

1. Heat简介

Heat是一个基于模板来创建相关资源的服务,是OpenStack核心项目之一。可以通过.yaml文件生成模板,通过Heat-agent组件在OpenStack中创建相关的资源。
除此之外,支持自由的Haut模板。以及亚马逊的cloudy formation格式的模板。
模板支持丰富的资源类型,不仅支持了常用的基础架构,包括计算、网络、存储、 镜像等功能,还包括了Ceilometer警报等高级资源。
提供基于模板的编排服务。

2. 常用术语

  • Stack:Heat要用到的所有设施和资源的集合。
  • Heat template:是以.yaml结尾的文件,用于创建stack。
  • Heat-api:提供rest api服务,Heat入口将api请求发送给heat engine去执行。
  • Heat-api-cfn:支持亚马逊格式访问的rest api。
  • Heat-engine:Heat的核心模块,接收API请求,在openstack中创建资源。
  • Heat-cfntools、Heat-init:在镜像中安装完成虚拟实例操作任务的工具。
  • Heat-api-cloudwatch: 监控编排服务。
  • Resource:底层各种服务抽象的集合。(例:计算、存储、网络)
  • Heat-client:用于调用访问其它各个组件的client工具

3. Heat架构

资源编排 - Heat_第1张图片

当用户在Horizon中或者命令行(CLI)中提交包含模板和参数的,创建实例的请求时,Heat服务接收请求,调用Heat-API/Heat-API-cfn,然后API首先验证模板的正确性,然后通过消息队列异步传输给Heat Engine进行处理。

资源编排 - Heat_第2张图片

当Heat Engine拿到请求后,会把请求解析为各种资源类型,而每一种资源都有相关的Client与相关的服务对应。
Client通过发送rest请求给其它的服务,从而获取相关的资源,最终完成请求的处理。
在整个过程中,Heat Engine的作用分为三层:

  1. 处理Heat层面的请求,然后根据模板和输入的参数来创建Stack。
  2. 解析Stack中各种资源的依赖关系以及Stack的嵌套关系。
  3. 根据解析出来的关系,依次调用各种服务的Clinet,来创建各种资源。

你可能感兴趣的:(资源编排 - Heat)