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架构变化
notion image
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...
      目录