摘要:容器创建或者应用部署配置繁杂且存在变数,为了保证系统灵活性和复用性,本文重点讲述如何以模板引擎为核心,构建统一的容器部署框架。
在大家使用容器的过程中,都会有一种经历,容器配置项众多大概有四五十项,且需要一定技术背景才能理解。部署过程中,用户常常会因为对于配置参数缺乏理解,导致容器启动,应用部署或者升级时遇到各种各样的问题。用户如何加快对不同参数的理解并且能够根据不同的应用类型和场景,做相应扩展,本文将重点要探讨和解决这些问题。
容器创建或者应用部署配置繁杂且存在变数,为了保证系统灵活性和复用性,决定以模板引擎为核心,构建统一的容器部署框架。本文重点讲述如何构建模板引擎以及以模板引擎为核心构建容器部署框架的运行原理。模板引擎中,符合一定格式规范的文件是基础,对于可能有变化或者根据部署流程需要变化的位置,使用参数标识站位。模板文件结尾追加参数标识的定义,用来执行参数标识语义转化。模板或者参数标识的具体内容,可以通过特定配置文%本文来源gaodai#ma#com搞*代#码9网#搞gaodaima代码件读取或者接收客户端请求参数。
模板引擎
模板引擎由模板定义,模板解析,模板转换,模板执行四个模块组成。模板定义依赖于容器集群的管理框架,是非可执行的文件。模板解析器负责把模板一分为二:一部分形成非可执行的部署模板;一部分形成部署模板中参数的定义说明,参数定义说明通过唯一的站位标识符与部署模板中的站位标识符一一对应。模板转换器接受参数值,结合解析器中生成的部署模板,参数值标识与模板中占位标识关联,参数值通过占位标识替换,生成可执行文件。模板执行器负责根据模板创建对象,一般有调度框架或者容器引擎承担。
模板引擎的执行原理如图1所示:
图1 模板引擎的执行原理
模板定义
模板定义包括两类信息:部署模板;参数标识。
以kubernetes的部署模板为例,部署模板涉及到4种不同类型定义,分别是:资源、版本、信息说明、数据配置。