Helm
1、helm引入
- 在没有了解heml之前部署应用基本过程
- 编写yaml文件
- deployment
- service
- Ingress
- 如果使用之前方式进行部署单一应用,少数服务的应用,比较合适
- 如部署微服务项目,可能有几十个服务,那么每一个服务都需要有一套yaml文件,对于需要维护大量yaml文件,版本不便于管理
2、使用heml可以解决哪些问题
- 实现helm可以将这些yaml做为一个整体管理
- 实现yaml文件高效复用
- 实现heml应用级别的版本管理
3、heml介绍
Helm 是一个 Kubernetes 的包管理工具,就像 Linux 下的包管理器,如 yum/apt 等,可以很方便的将之前打包好的 yaml 文件部署到 kubernetes
4、Helm三个重要概念
- helm:是一个命令行客户端工具
- Chart:将yaml文件打包,简单来说是yaml集合,k8s资源相关的集合
- Release:基于chart部署实体,应用级别的版本管理
5、Helm 团队在2019年发布 Helm v3 的第一个稳定版本,与之前版本相比有哪些变化
- V3版本删除Tiller
- release可以在不同命名空间重用,旧版是不支持重用的
- 将chart推送至docker仓库,旧版本不支持
6、helm架构变化

7、helm安装
- 下载helm安装压缩文件,基于二进制文件
- 解压helm压缩文件,将解压helm目录文件复制至/usr/bin
8、配置helm仓库
微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库推荐,基本上官网有的 chart 这里都有
官方仓库(https://hub.kubeapps.com/charts/incubator)官方 chart 仓库,国内有点不好使
- 添加仓库
- 更新仓库
- 删除仓库
9、使用helm快速部署应用
- 使用命令搜索应用
- 根据搜索内容选择安装
- 查看安装后的状态
- 将端口暴露出去并验证访问
10、自定义Chart
- 使用命令创建chart
- Chart.yaml:当前chart属性配置信息
- templates:存放yaml文件在此目录下
- values.yaml:yaml文件可以使用全局变量
- templates文件夹创建yaml文件
- deployment.yaml
- service.yaml
- 安装自定义chart
- 应用升级(修改yaml文件后可操作)
11、实现yaml高效复用
- 通过传递参数,动态渲染模板,yaml内容动态传入参数生成
- varlues.yaml文件是定义yaml文件全局文件
- 在values.yaml定义变量和值
- 在具体yaml文件,获取定义变量值
- yaml文件大致有几个地方不同
- image
- tag
- label
- port
- replicas
- 在values.yaml定义变量和值
- templaster.yaml应用values.yaml中的变量
- 通过表达式形式使用全局变量
{{ .Values.变量名称 }}{{ .Release.Name }}表示当前版本名称,动态生成
- 模拟运行测试
- 真实运行
- 测试访问
Loading...
keepalived