2019独角兽企业重金招聘Python工程师标准>>>
Kubernetes Helm 架构
Helm Chart简介
Helm是一个用于Kubernetes的包管理工具。
每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。
一个Chart是Kubernetes部署文件的集合,使用Chart可以方便的在Kubernetes中部署一组应用。
Helm组件
Helm:
Helm是一个cli客户端,可以完成如下内容:
- 创建Chart
- 打包Chart,打包成name-version.tgz格式
- 调试Chart
- 创建本地Chart仓库
- 管理本地和远程Chart仓库
- 与Tiller通信并完成Chart的安装,升级,删除,回滚,查看等操作
Tiller
Tiller是一个Chart管理服务端,Tiller接收Helm的请求,并根据Chart生成Kubernetes的部署文件(称为一个Release),然后提交给Kubernetes创建应用。
Tiller有如下功能:
- 监听来自Helm的请求
- 根据请求提交的Chart与Config生成一个Release
- 将Release提交给Kubernetes,并且跟踪Release的状态
- 提供Release的升级,删除,回滚等功能
Helm通信过程
Chart Install 过程:
- Helm从指定的目录或者tgz文件中解析出Chart结构信息
- Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller
- Tiller根据Chart和Values生成一个Release
- Tiller将Release发送给Kubernetes用于生成Release
Chart Update过程:
- Helm从指定的目录或者tgz文件中解析出Chart结构信息
- Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller
- Tiller生成Release并更新指定名称的Release的History
- Tiller将Release发送给Kubernetes用于更新Release
Chart Rollback过程:
- Helm将要回滚的Release的名称传递给Tiller
- Tiller根据Release的名称查找History
- Tiller从History中获取上一个Release
- Tiller将上一个Release发送给Kubernetes用于替换当前Release
Chart依赖说明:
Tiller在处理Chart时,直接将Chart以及其依赖的所有Charts合并为一个Release,同时传递给Kubernetes。因此Tiller并不负责管理依赖之间的启动顺序。Chart中的应用需要能够自行处理依赖关系。
- 上一篇:Kubernetes Port Forward机制
- 下一篇:Helm Chart 结构
- 发表时间:2016-11-24 11:34:03
- 更新时间:2016-11-25 10:29:34
- 文章分类:Docker&Kubernetes
- 版权声明:自由转载-非商用-非衍生-保持署名(CC 3.0)