helm官网地址
https://whmzsu.github.io/helm-doc-zh-cn/quickstart/using_helm-zh_cn.html
helm引入
相比之前的部署一个简单的服务流程:
- 编写yaml文件
- 创建pod
- 创建svc
- 做代理Ingress
这种部署单一的应用,相对于简单的应用比较合适,如果是微服务项目,需要几十个服务,每一个服务都有一套yaml文件,维护与更改就不是很方便
但是使用helm可以:
- 把yaml文件整体管理起来
- 实现yaml的高效复用
- 使用helm应用级别的版本管理(升级降级)
其中有3个重要的概念
- helm:一个命令行客户端工具,主要是用于k8s应用chart的创建、打包、发布和管理
- chart:应用描述,一系列用于描述k8s资源相关文件的集合,把yaml打包,是yaml的集合,支持推送到dicjer仓库中
- 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
- 其他