Helm: 改善Kubernetes部署体验管理工具

什么是Helm?

Helm, the Package Manager for Kubernetes

我们使用很多现代的编程语言或框架时,都会用到包管理器,来处理依赖、构建等相关的工作。K8S作为当下最为流行的容器编排系统,虽然功能强大,但其繁琐的配置和略显麻烦的使用体验还是带来了不少上手难度。因此诞生了像GitKube、Helm、Ksonnet这类的工具。(具体这类工具对比可以看下这篇文章Draft vs Gitkube vs Helm vs Ksonnet vs Metaparticle vs Skaffold)

Helm因为扩展性、方便分享、使用简单等特点成为我们的选择。它可以使用Chart来管理部署配置,通过Helm CLI可以简单地完成Release部署,并可以使用Repo来分享配置

三个基本概念

Chart: 一个Chart就是一个Helm包。它包含了所有在K8S中运行程序、工具或者服务所必须定义的资源,可以简单的认为是类似于Yum RPM file或者Apt dpkg
Repository: Helm中的Repo是一个存放和分享chart的地方。
Release: Chart被发布到K8S中的实例。一个Chart可以进行多次Release

Helm install安装途径

  • 最基本的是从chart repository
  • 本地的chart 压缩包helm install foo-0.1.1.tgz
  • 一个解压缩的chart目录helm install path/to/foo
  • 一个完整的URLhelm install https://example.com/charts/foo-1.2.3.tgz