Kubernetes软件包管理系统-Helm架构

Kubernetes Helm 架构

Helm Chart简介

Helm是一个用于Kubernetes的包管理工具。 
每一个包称为一个Chart,一个Chart是一个目录(通常状况下会将目录进行打包压缩,造成name-version.tgz格式的单一文件,方便传输和存储)。 
一个Chart是Kubernetes部署文件的集合,使用Chart能够方便的在Kubernetes中部署一组应用。html

Helm组件

Helm:架构

Helm是一个cli客户端,能够完成以下内容:工具

  • 建立Chart
  • 打包Chart,打包成name-version.tgz格式
  • 调试Chart
  • 建立本地Chart仓库
  • 管理本地和远程Chart仓库
  • 与Tiller通讯并完成Chart的安装,升级,删除,回滚,查看等操做

Tiller

Tiller是一个Chart管理服务端,Tiller接收Helm的请求,并根据Chart生成Kubernetes的部署文件(称为一个Release),而后提交给Kubernetes建立应用。 
Tiller有以下功能:spa

  • 监听来自Helm的请求
  • 根据请求提交的Chart与Config生成一个Release
  • 将Release提交给Kubernetes,而且跟踪Release的状态
  • 提供Release的升级,删除,回滚等功能

Helm通讯过程

Helm过程

Chart Install 过程:调试

  1. Helm从指定的目录或者tgz文件中解析出Chart结构信息
  2. Helm将指定的Chart结构和Values信息经过gRPC传递给Tiller
  3. Tiller根据Chart和Values生成一个Release
  4. Tiller将Release发送给Kubernetes用于生成Release

Chart Update过程:htm

  1. Helm从指定的目录或者tgz文件中解析出Chart结构信息
  2. Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller
  3. Tiller生成Release并更新指定名称的Release的History
  4. Tiller将Release发送给Kubernetes用于更新Release

Chart Rollback过程:部署

  1. Helm将要回滚的Release的名称传递给Tiller
  2. Tiller根据Release的名称查找History
  3. Tiller从History中获取上一个Release
  4. Tiller将上一个Release发送给Kubernetes用于替换当前Release

Chart依赖说明: 
Tiller在处理Chart时,直接将Chart以及其依赖的全部Charts合并为一个Release,同时传递给Kubernetes。所以Tiller并不负责管理依赖之间的启动顺序。Chart中的应用须要可以自行处理依赖关系。get

相关文章
相关标签/搜索