一、helm简单介绍
Helm是k8s的包管理工具。我们在使用k8s部署服务的时候,经常要创建多个资源对象,并且这些资源对象可能还有先后顺序,部署起来会比较麻烦。如果服务需要提供给其他人部署使用,那对大家都是一场灾难。(部署过程可能会遇到问题)。这时候,helm就体现出它的作用了,helm支持部署服务时创建多个资源对象如deployment、service等等,并且按一定的顺序进行创建。(顺序参考官方文档https://helm.sh/zh/docs/intro/using_helm/)
当我们打包好chart并且上传到仓库后,其他人就可以直接安装了。简单方便。
二、helm中的三大概念
Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,或 Yum RPM 在Kubernetes 中的等价物。
Repository(仓库) 是用来存放和共享 charts 的地方。它就像 Perl 的 CPAN 档案库网络 或是 Fedora 的 软件包仓库,只不过它是供 Kubernetes 包所使用的。
Release 是运行在 Kubernetes 集群中的 chart 的实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release。以 MySQL chart为例,如果你想在你的集群中运行两个数据库,你可以安装该chart两次。每一个数据库都会拥有它自己的 release 和 release name。
在了解了上述这些概念以后,我们就可以这样来解释 Helm:
Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart。
chart和release感觉像docker中镜像和容器一样,一个是静态的,一个是运行实例
三、helm的常用命令
1、查找charts
helm search hub 从 Artifact Hub 中查找并列出 helm charts。 Artifact Hub中存放了大量不同的仓库。
helm search repo 从你添加(使用 helm repo add)到本地 helm 客户端中的仓库中进行查找。该命令基于本地数据进行搜索,无需连接互联网。
2、安装 helm包
使用 helm install 命令来安装一个新的 helm 包。最简单的使用方法只需要传入两个参数:你命名的release名字和你想安装的chart的名称。
安装前修改chart包
helm show values可以查看chart可配置选项
helm show values helm包名称
helm install 命令可以从多个来源进行安装:
chart 的仓库(如上所述)
本地 chart 压缩包(helm install foo foo-0.1.1.tgz)
解压后的 chart 目录(helm install foo path/to/foo)
完整的 URL(helm install foo https://example.com/charts/foo-1.2.3.tgz)
3、helm upgrade 和 helm rollback:升级 release 和失败时恢复
4、 helm uninstall 命令从集群中卸载一个 release:
5、’helm repo’:使用仓库
helm repo list 查看所有仓库
helm repo add xxx 添加仓库
helm repo remove xxx 删除仓库
6、创建charts
helm create xxx
创建完成后使用helm lint检查格式是否正确
7、helm lint xxx
打包
8、helm package xxx
安装
9、helm install xxx
参考官方文档
https://helm.sh/zh/docs/intro/using_helm/