一、Helm官方站点

官网:https://v3.helm.sh/zh/docs/

Helm官方的chart站点:https://hub.kubeapps.com/

Helm文档:https://www.qikqiak.com/k8s-book/docs/42.Helm%E5%AE%89%E8%A3%85.html

Helm项目地址:https://github.com/helm/helm/releases

二、Helm简介

Helm是kubernetes的包管理工具,相当于linux环境下的yum/apg-get命令,Helm的首要目标一直是让 从零到 Kubernetes” 变得轻松。无论是运维、 开发人员、经验丰富的 DevOps工程师,还是刚刚入门的学生, Helm 的 目标是让大家在两分钟内就可以在 Kubernetes 上安装应用程序,helm也是go语言开发的。

Helm 可以解决的问题:①运维人员写好资源文件模板,②交给开发人员填写参数即可。


三、Helm概念

helm :命令行客户端工具,主要用于 Kubernetes 应用 中的 chart 的创建、打包、发布和管理。

Chart: helm 程序包 ,一系列用于描述 k8s 资源相关文件的集合 ,比方说我们部署nginx,需要deployment的yaml,需要service的yaml,这两个清单文件就是一个helm程序包,在k8s中把这些yaml清单文件叫做chart图表。

vlues.yaml文件为模板中的文件赋值,可以实现我们自定义安装,如果是chart开发者需要自定义模板,如果是chart使用者只需要修改values.yaml即可。

repository:存放chart图表的仓库,提供部署k8s应用程序需要的那些yaml清单文件。

Release:基于 Chart 的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release ;将在k8s 中创建出真实运行的资源对象。整体流程:chart--->通过values.yaml这个文件赋值-->生成release实例。

helm把 kubernetes 资源打包到一个 chart 中,制作并完成各个 chart 和 chart 本身依赖关系并利用chart 仓库实现对外分发,而 helm 还可通过 values.yaml 文件完成可配置的发布,如果chart版本更新了, helm自动支持滚更更新机制,还可以一键回滚,但是不是适合在生产环境使用,除非具有定义自制chart 的能力。

Helm与kubernetes兼容性表

查询链接:https://helm.sh/zh/docs/topics/version_skew/

四、Helm3安装

# 下载安装包
wget https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz

# 安装
[root@k8s-master-1 ~]# tar -zxf helm-v3.7.1-linux-amd64.tar.gz
[root@k8s-master-1 ~]# mv linux-amd64/helm /usr/bin
[root@k8s-master-1 ~]# rm -rf linux-amd64/
[root@k8s-master-1 ~]# helm version
version.BuildInfo{Version:"v3.7.1", GitCommit:"1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4", GitTreeState:"clean", GoVersion:"go1.16.9"}

配置国内源

阿里云仓库(https://kubernetes.oss cn hangzhou.aliyuncs.com/charts)

官方仓库(https://hub.kubeapps.com/charts/incubator )官方 chart 仓库,国内 可能无法访问。

微软仓库(http://mirror.azure.cn/kubernetes/charts/ charts/)这个仓库推荐,基本上官网有的 chart这里都有国内可能无法访问。

# 添加阿里云的 chart 仓库
[root@k8s-master-1 ~]# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"aliyun" has been added to your repositories

# 更新chart仓库
[root@k8s-master-1 ~]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "aliyun" chart repository
Update Complete. ⎈Happy Helming!⎈

# 查看配置的 chart 仓库有哪些
[root@k8s-master-1 ~]# helm repo list
NAME URL
aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 从指定 chart 仓库地址搜索 chart
[root@k8s-master-1 ~]# helm search repo aliyun | grep redis
aliyun/redis 1.1.15 4.0.8 Open source, advanced key-value store. It is of...
aliyun/redis-ha 2.0.1 Highly available Redis cluster with multiple se...