詳細分析以模板引擎為核心部署框架
導讀:容器創(chuàng)建或者應用部署配置繁雜且存在變數(shù),為了保證系統(tǒng)靈活性和復用性,本文重點講述如何以模板引擎為核心,構建統(tǒng)一的容器部署框架。
在大家使用容器的過程中,都會有一種經歷,容器配置項眾多大概有四五十項,且需要一定技術背景才能理解。部署過程中,用戶常常會因為對于配置參數(shù)缺乏理解,導致容器啟動,應用部署或者升級時遇到各種各樣的問題。用戶如何加快對不同參數(shù)的理解并且能夠根據(jù)不同的應用類型和場景,做相應擴展,本文將重點要探討和解決這些問題。
容器創(chuàng)建或者應用部署配置繁雜且存在變數(shù),為了保證系統(tǒng)靈活性和復用性,決定以模板引擎為核心,構建統(tǒng)一的容器部署框架。本文重點講述如何構建模板引擎以及以模板引擎為核心構建容器部署框架的運行原理。模板引擎中,符合一定格式規(guī)范的文件是基礎,對于可能有變化或者根據(jù)部署流程需要變化的位置,使用參數(shù)標識站位。模板文件結尾追加參數(shù)標識的定義,用來執(zhí)行參數(shù)標識語義轉化。模板或者參數(shù)標識的具體內容,可以通過特定配置文件讀取或者接收客戶端請求參數(shù)。
模板引擎
模板引擎由模板定義,模板解析,模板轉換,模板執(zhí)行四個模塊組成。模板定義依賴于容器集群的管理框架,是非可執(zhí)行的文件。模板解析器負責把模板一分為二:一部分形成非可執(zhí)行的部署模板;一部分形成部署模板中參數(shù)的定義說明,參數(shù)定義說明通過唯一的站位標識符與部署模板中的站位標識符一一對應。模板轉換器接受參數(shù)值,結合解析器中生成的部署模板,參數(shù)值標識與模板中占位標識關聯(lián),參數(shù)值通過占位標識替換,生成可執(zhí)行文件。模板執(zhí)行器負責根據(jù)模板創(chuàng)建對象,一般有調度框架或者容器引擎承擔。
模板引擎的執(zhí)行原理如圖1所示:
圖1 模板引擎的執(zhí)行原理
模板定義
模板定義包括兩類信息:部署模板;參數(shù)標識。
以kubernetes的部署模板為例,部署模板涉及到4種不同類型定義,分別是:資源、版本、信息說明、數(shù)據(jù)配置。
資源:表示kubernetes中定義的對象類型。
版本:表示對象的版本
信息說明:包括對象名稱,標簽,注釋等,為對象查找或者調度提供索引。
數(shù)據(jù)配置:負責定義容器處于運行態(tài)遵循的標準,包括端口、環(huán)境變量、資源、調度、健康檢查等。
參數(shù)標識由6個屬性組成,分別是parameters、name、deion、displayname、value、type。
parameters:參數(shù)定義起始標志
deion:參數(shù)的提示信息
displayname:具體語義信息
name:與引用參數(shù)名稱對應,表示描述信息為對應的引用參數(shù)
value:參數(shù)默認值
type:代表不同的樣式,客戶端根據(jù)type類型,呈現(xiàn)具體樣式
以kubernetes中的namespace對象為例,模板的完整定義如下代碼所示:
apiVersion: v1kind: Namespacemetadata: name: ${name }---{“parameters”: [ { “deion”: “命名空間”, “displayName”: “命名空間”, “name”: “name”, “value”: “”, “type”: “String” }]}
由上述代碼中,包含兩部分內容:部署模板,參數(shù)說明。
部署模板如下代碼塊所示:
apiVersion:v1kind:Namespacemetadata:name: ${name }
部署模板定義對象創(chuàng)建的所有內容,模板中字段含義描述如下:
apiVersion:通用選項,定義版本信息
Kind:定義對象類型,區(qū)別不同的對象
Metadata:定義部署時指定的參數(shù)鍵值對
${}:表示參數(shù)的引用值,即可替代參數(shù)
參數(shù)標識,定義了客戶端動態(tài)獲取參數(shù)后的展現(xiàn)形態(tài),下面代碼示例參數(shù)標識定義:
{“parameters”: [ { “deion”: “命名空間”, “displayName”: “命名空間”, “name”: “name”, “value”: “”, “type”: “String” }]}
參數(shù)標識定義統(tǒng)一的格式。通過語義轉化,把繁雜的配置轉變?yōu)橛脩粢子诶斫獾姆绞?。客戶端讀取到Parameters標識,通過模板解析器抽象可輸入?yún)?shù),展示需要的Form表單,提供用戶輸入的功能。
模板定義由對Kubernetes或者Docker熟悉的專業(yè)人員編寫??梢愿鶕?jù)具體的業(yè)務場景,進行實時和動態(tài)調整,保證部署的靈活性和擴展性。同時,系統(tǒng)根據(jù)不同的對象,提供基礎模板。用戶在具備一定知識背景的基礎上同樣可以進行模板制作和維護。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
詳細分析以模板引擎為核心部署框架下載
相關電子資料下載
- 躍昉動態(tài)|躍昉簽署亞洲城市減碳卡澳門合作框架協(xié)議 26
- 使用MVVM框架實現(xiàn)一個簡單加法器 30
- 探討嵌入式系統(tǒng)的軟硬件框架 29
- 昇騰AI框架全棧深度介紹 317
- 隆基與德國重要合作伙伴PVI簽署1.5GW Hi-MO X6框架協(xié)議 208
- PyCharm 2022.2支持最新 Python 3.11 和 PyScript 框架 86
- 華工科技與振華重工簽署戰(zhàn)略合作框架協(xié)議 253
- 嵌入式狀態(tài)機編程-QP狀態(tài)機框架基本知識介紹 76
- 介紹一款基于昆侖芯AI加速卡的高效模型推理部署框架 142
- 基于觀察者模式設計的框架-REB,使代碼模塊化 68