【K8s教程】K8s包管理工具Helm介绍
当前版本:v3.6.3
安装
查看Helm和对应支持的Kubernetes版本,您可以参考 Helm 版本支持策略(https://helm.sh/zh/docs/topics/version_skew/)。
用二进制版本安装
每个Helm 版本都提供了各种操作系统的二进制版本,这些版本可以手动下载和安装。
1.下载 需要的版本
https://github.com/helm/helm/releases
2.解压(tar -zxvf helm-v3.0.0-linux-amd64.tar.gz)
3.在解压目中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)
然后就可以执行客户端程序并 添加稳定仓库: helm help.
环境变量说明:
默认目录说明:
使用Apt (Debian/Ubuntu)安装
https://helm.baltorepo.com/stable/debian/
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
初始化
当您已经安装好了Helm之后,您可以添加一个chart 仓库。从 Artifact Hub中查找有效的Helm chart仓库。
$ helm repo add bitnami https://charts.bitnami.com/bitnami
当添加完成,您将可以看到可以被您安装的charts列表:
$ helm search repo bitnami
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/bitnami-common 0.0.9 0.0.9 DEPRECATED Chart with custom templates used in ...
bitnami/airflow 8.0.2 2.0.0 Apache Airflow is a platform to programmaticall...
bitnami/apache 8.2.3 2.4.46 Chart for Apache HTTP Server
bitnami/aspnet-core 1.2.3 3.1.9 ASP.NET Core is an open-source framework create...
# ... and many more
安装Chart示例
您可以通过helm install 命令安装chart。 Helm可以通过多种途径查找和安装chart, 但最简单的是安装官方的bitnami charts。
$ helm repo update # 确定我们可以拿到最新的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: ...
在上面的例子中,bitnami/mysql这个chart被发布,名字是 mysql-1612624192
您可以通过执行 helm show chart bitnami/mysql 命令简单的了解到这个chart的基本信息。 或者您可以执行 helm show all bitnami/mysql 获取关于该chart的所有信息。
每当您执行 helm install 的时候,都会创建一个新的发布版本。 所以一个chart在同一个集群里面可以被安装多次,每一个都可以被独立的管理和升级。
helm install 是一个拥有很多能力的强大的命令,更多信息详见 使用 Helm(https://helm.sh/zh/docs/intro/using_helm)
关于版本发布
通过Helm您可以很容易看到哪些chart被发布了:
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
mysql-1612624192 default 1 2021-02-06 16:09:56.283059 +0100 CET deployed mysql-8.3.0 8.0.23
helm list (或 helm ls) 命令会列出所有可被部署的版本。
卸载一个版本
您可以使用helm uninstall 命令卸载你的版本
$ helm uninstall mysql-1612624192
release "mysql-1612624192" uninstalled
该命令会从Kubernetes卸载 mysql-1612624192, 它将删除和该版本相关的所有相关资源(service、deployment、 pod等等)甚至版本历史。
如果您在执行 helm uninstall 的时候提供 --keep-history 选项, Helm将会保存版本历史。 您可以通过命令查看该版本的信息
$ helm status mysql-1612624192
Status: UNINSTALLED
...
因为 --keep-history 选项会让helm跟踪你的版本(即使你卸载了他们), 所以你可以审计集群历史甚至使用 helm rollback 回滚版本。
查看帮助信息
如果您想通过Helm命令查看更多的有用的信息,请使用 helm help 命令,或者在任意命令后添加 -h 选项:
$ helm get -h