OpenStack的Heat組件詳解


一、什么Heat

  1. Heat 是一套業務流程平台,旨在幫助用戶更輕松地配置以 OpenStack 為基礎的雲體系。利用Heat應用程序,開發人員能夠在程序中使用模板以實現資源的自動化部署。
    Amazon Web Services 業務流程平台 CloudFormation (CFN)

  2. Heat 是 OpenStack 提供的自動編排功能的組件,基於描述性的模板,來編排復合雲應用程序。

二、為什么需要Heat

1.Heat 采用了模板方式來設計或者定義編排,為方便用戶使用,Heat 還提供了大量的模板例子,使用戶能夠方便地得到想要的編排。

  1. 更小的研發成本:引入 Heat,對於不了解 OpenStack 的研發者來說,可以更快的接入現有的業務系統。

三、概念

  1. 堆棧(stack):管理資源的集合。單個模板中定義的實例化資源的集合,是 Heat 管理應用程序的邏輯單元,往往對應一個應用程序。
  2. 模板(template):如何使用代碼定義和描述堆棧。描述了所有組件資源以及組件資源之間的關系,是 Heat 的核心。
  3. 資源(resource):將在編排期間創建或修改的對象。資源可以是網絡、路由器、子網、實例、卷、浮動IP、安全組等。
  4. 參數(parameters):heat模板中的頂級key,定義在創建或更新 stack 時可以傳遞哪些數據來定制模板。
  5. 參數組(parameter_groups):用於指定如何對輸入參數進行分組,以及提供參數的順序。
  6. 輸出(outputs):heat模板中的頂級key,定義實例化后 stack 將返回的數據。

四:架構

Heat 服務重要的組件:
1. heat command-line client
CLI通過與 heat-api 通信,來調用 API 實現相關功能。終端開發者可以直接使用編排 REST API。
2. heat-api
實現 OpenStack 原生支持的 REST API。該組件通過把 API 請求經由 AMQP 傳送給 Heat engine 來處理 API 請求。
3. heat-api-cfn
提供與 AWS CloudFormation 兼容的、AWS 風格的查詢 API,處理請求並通過 AMQP 將它們發送到 heat-engine。
4. heat-engine
heat-engine是heat中的核心模塊,處理主要的邏輯業務。此模塊提供heat最主要的功能。
5. heat-cfntools
完成虛擬機實例內部的操作配置任務,需要單獨下載。這個工具用來完成虛擬機實例內部的操作配置任務。在創建虛擬機鏡像時,需要在鏡像中安裝heat-cfntools工具。

五.工作流程

Heat Engine 在這里的作用分為三層: 第一層處理 Heat 層面的請求,就是根據模板和輸入參數來創建 Stack,這里的 Stack 是由各種資源組合而成。 第二層解析 Stack 里各種資源的依賴關系,Stack 和嵌套 Stack 的關系。第三層就是根據解析出來的關系,依次調用各種服務客戶段來創建各種資源。

六.Heat 模板全稱為heat orchestration template,簡稱為HOT
模版中有四個關鍵段:
. Parameters stack需要輸入的參數 (可選)
. Mapping 一組靜態的Key/ValuePair ,用Fn::FindlnMap 來查找對應的值(可選)
. Resource 資源 CPU Memory (必填)
. Output 用戶的返回值(可選)



編排模板(HEAT)語言
列出可以用於指定模板版本的命令:

列出可用的資源類型:

HOT提供了幾個內置函數,用於執行模板中的特定任務。編排模板中的內部函數將值分配給在創建堆棧期間可用的屬性。

get_attr
get_attr函數引用資源的屬性。

get_param
get_param函數引用模板的一個輸入參數並返回該輸入參數的值。

get_resource
get_resource函數引用模板中的一個資源。

str_replace
str_replace函數將輸入字符串中的變量替換為您指定的值。

list_join
list_join函數將一組字符串附加到單個值中,由指定的分隔符分隔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM