今天我来简单介绍 kubernetes 生态中一个重要一环-包管理工具 Helm。

介绍

Helm 是 Kubernetes 的开源包管理器。它提供了提供、共享和使用为 Kubernetes 构建的软件的能力。

Helm 于 2015 年在 Deis 创建,后来被微软收购。现在称为 Helm Classic 的是在当年 11 月的首届 KubeCon 上推出的。2016 年 1 月,Helm Classic 与谷歌的 Kubernetes 部署管理器合并到现在是 Helm 主要项目的存储库中。

该项目目前拥有超过 30,000 个 GitHub stars,每月从全球获得超过 200 万次下载。2020 年 4 月,Helm 在 CNCF 中获得毕业。

安装 Helm

二进制安装

1 打开 https://github.com/helm/helm/releases , 下载你需要的版本 2 解压安装包 3 将文件夹中的 helm 二进制文件移动到相应的位置

脚本安装

helm 官方提供了一个安装的脚本:

1
2
3
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

除了以上2种安装方式,你还可以通过各个操作系统的包管理工具安装和编译源码安装,这里就不过多赘述了。

与 k8s 版本兼容的 Helm 版本列表

不同版本的 Helm 兼容不同的 k8s 版本,需要根据你的集群版本来选择不同的 Helm 版本,下面列出相应的关系:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Helm版本	支持的 Kubernetes 版本
3.11.x	        1.26.x - 1.23.x
3.10.x	        1.25.x - 1.22.x
3.9.x	        1.24.x - 1.21.x
3.8.x	        1.23.x - 1.20.x
3.7.x	        1.22.x - 1.19.x
3.6.x	        1.21.x - 1.18.x
3.5.x	        1.20.x - 1.17.x
3.4.x	        1.19.x - 1.16.x
3.3.x	        1.18.x - 1.15.x
3.2.x	        1.18.x - 1.15.x
3.1.x	        1.17.x - 1.14.x
3.0.x	        1.16.x - 1.13.x
2.16.x	        1.16.x - 1.15.x
2.15.x	        1.15.x - 1.14.x
2.14.x	        1.14.x - 1.13.x
2.13.x	        1.13.x - 1.12.x
2.12.x	        1.12.x - 1.11.x
2.11.x	        1.11.x - 1.10.x
2.10.x	        1.10.x - 1.9.x
2.9.x	        1.10.x - 1.9.x
2.8.x	        1.9.x - 1.8.x
2.7.x	        1.8.x - 1.7.x
2.6.x	        1.7.x - 1.6.x
2.5.x	        1.6.x - 1.5.x
2.4.x	        1.6.x - 1.5.x
2.3.x	        1.5.x - 1.4.x
2.2.x	        1.5.x - 1.4.x
2.1.x	        1.5.x - 1.4.x
2.0.x	        1.4.x - 1.3.x

使用

接下来由我来简单的介绍如何使用 Helm.

添加 chart 存储库

我们可以通过 helm repo add 命令添加各种存储库。

1
helm repo add bitnami https://charts.bitnami.com/bitnami

展示可以安装的 chart

我们可以通过 helm search repo 命令搜索相应 chart 存储库中可以安装的chart

1
helm search repo bitnami
1
2
3
4
5
6
7
bitnami/airflow                                 14.0.11         2.5.1           Apache Airflow is a tool to express and execute...
bitnami/apache                                  9.2.15          2.4.55          Apache HTTP Server is an open-source HTTP serve...
bitnami/appsmith                                0.1.9           1.9.2           Appsmith is an open source platform for buildin...
bitnami/argo-cd                                 4.4.6           2.5.10          Argo CD is a continuous delivery tool for Kuber...
bitnami/argo-workflows                          5.1.4           3.4.4           Argo Workflows is meant to orchestrate Kubernet...
bitnami/aspnet-core                             4.0.3           7.0.2           ASP.NET Core is an open-source framework
....

安装 chart

要安装 chart,可以通过 helm install 命令来安装。

1
2
3
4
5
6
7
8
9
$ helm repo update              # Make sure we get the latest list of charts
$ helm install bitnami/mysql --generate-name
NAME: mysql-1612624192
LAST DEPLOYED: Sat Feb  6 16:09:56 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES: ...

查看安装

想查看 Helm 安装了哪些 chart ,可以通过 helm list (helm ls) 命令来安装。

1
2
3
4
5
6
7

$  helm ls

NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART
        APP VERSION
pyroscope       default         7               2023-01-04 09:41:40.388931012 +0000 UTC deployed        pyroscope-0.2.86        0.36.0
pyroscope-ebpf  default         1               2023-01-04 08:46:33.590784083 +0000 UTC deployed        pyroscope-ebpf-0.1.25   0.36.0

卸载

要卸载一个版本可以通过 helm uninstall 命令:

1
2
$ helm uninstall mysql-1612624192
release "mysql-1612624192" uninstalled

其它命令

要想查看 Helm 的其他命令可以通过 helm get -h 查看。

小结

本文简单介绍了 helm ,介绍了如何安装 helm ,以及对 helm 的简单使用。

参考