helm官网地址

https://whmzsu.github.io/helm-doc-zh-cn/quickstart/using_helm-zh_cn.html

helm引入

相比之前的部署一个简单的服务流程:

  1. 编写yaml文件
  2. 创建pod
  3. 创建svc
  4. 做代理Ingress


这种部署单一的应用,相对于简单的应用比较合适,如果是微服务项目,需要几十个服务,每一个服务都有一套yaml文件,维护与更改就不是很方便

但是使用helm可以:

  1. 把yaml文件整体管理起来
  2. 实现yaml的高效复用
  3. 使用helm应用级别的版本管理(升级降级)


其中有3个重要的概念

  1. helm:一个命令行客户端工具,主要是用于k8s应用chart的创建、打包、发布和管理
  1. chart:应用描述,一系列用于描述k8s资源相关文件的集合,把yaml打包,是yaml的集合,支持推送到dicjer仓库中
  2. elease:基于chart的部署实体,应用级别的版本管理。一个chart被helm运行后将会生成对应的一个release,将在k8s中创建出真实运行的资源对象。

    Helm基本介绍

    Helm 是一个 Kubernetes 的包管理工具,就像 Linux下的包管理器,如 yum/apt 等,可以很方便的将之前打包好的yaml 文件部署到 kubernetes 上。
    Helm 有 3 个重要概念:
  • helm:一个命令行客户端工具,主要用于Kubernetes 应用 chart 的创建、打包、发 布和管理。
  • Chart:应用描述,一系列用于描述 k8s 资源相关文件的集合 (yaml集合)。
  • Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在 k8s 中创建出真实运行的资源对象。(应用级别的版本管理)

    Helm v3变化

  • 最明显的变化是 Tiller 的删除

  • Release 名称可以在不同命名空间重用
  • 支持将 Chart 推送至 Docker 镜像仓库中
  • 使用 JSONSchema 验证 chart values
  • 其他

helm是什么 - 图1

架构变化

v3版本之前的架构

helm是什么 - 图2

V3版本架构

helm是什么 - 图3

helm是什么 - 图4