Helm是Deis开发的一个用于Kubernetes应用的包管理工具,主要用来管理Charts。有点类似于Linux中的APT或YUM。HelmChart是用来封装Kubernetes原生应用程序的一系列YAML文件。可以在你部署应用的时候自定义应用程序的一些Metadata,以便于应用程序的分发。对于应用发布者而言,可以通过Helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。对于使用者而言,使用Helm后不用需要编写复杂的应用部署文件,可以以简单的方式在Kubernetes上查找、安装、升级、回滚、卸载应用程序。
摘自互联网
作为Kubernetes的包管理工具,绝大部分软件都是选择Helm来作为应用的打包交付方式在Kubernetes上运行,而Helm已经成为了Kubernetes事实上的应用分发标准。
除了Helm之外,其实Operator与Helm干的事情也差不多,Operator是通过KubernetesAPI增加自定义功能,更好地发布和管理应用。对于Operator而言,Helm的门槛和成本更低,不需要进行开发,但Operator的概念更酷。
在Helm3版本中已经移除了Tiller,现在的Helm3客户端跟kubectl一样,使用kubeconfig作为认证信息直接连接到KubernetesAPIServer。
01
Helm概念
Chart代表着Helm包。它包含在Kubernetes集群内部运行应用程序,工具或服务所需的所有资源定义。可以把它看作是Ubuntu中aptinstall安装的DEB包或者CentOS中yuminstall安装的RPM包。
Repository(仓库)是用来存放和共享charts的地方。它就像Ubuntu中的apt源或CentOS中yum源。
Release是运行在Kubernetes集群中的chart的实例。一个chart通常可以在同一个集群中安装多次。每一次安装都会创建一个新的release。以MySQLchart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的release和releasename。
02
Helm3安装
官方提供了各大主流系统的二进制包,直接下载即可。
[root
k8s-test-master01~]#wget