Helm是Kubernetes的一个包管理工具,它的工作方式类似于Linux系统中的apt或yum,以及Python的pip。它允许开发者和运维人员预先打包好Kubernetes资源配置(如部署、服务、存储卷等),这些打包好的配置被称为“chart”。使用Helm可以简化Kubernetes应用程序的部署和管理过程。

Helm的核心概念包括:

  1. Chart:Chart是Helm管理的包单位,它包含了运行一个应用所需要的所有Kubernetes资源定义。一个Chart可以简单到定义一个单个的对象,也可以复杂到定义一组相互依赖的应用服务。

  2. Repository(仓库):Chart的存储库,允许用户分享和发布自己打包的Chart。Helm官方提供了一个公共Repository,社区也有很多其他的Repository。

  3. Release:在Kubernetes集群中部署Chart的实例。每次部署新的Chart或者更新现有的Chart时,Helm都会创建一个新的Release。这样做的好处是可以追踪每次部署的变化,方便回滚到之前的版本。

    官网下载地址https://github.com/helm/helm/releases

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

这里提供一个本地下载helm helm-v3.13.3-linux-amd64.tar.gz

tar -zxvf helm-v3.13.3-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm --help 

安装好后查看官网和help,就可以尝试使用了

helm repo add 命令用来添加仓库

helm update 命令更新仓库

helm repo add stable https://charts.helm.sh/stable #官方仓库
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts #国内阿里仓库

添加仓库然后更新源,用search可以查看该源提供的仓库,也可以直接搜索相关软件的chart包

helm search repo aliyum
helm search repo nginx

类似这种效果

如果要安装chart包,用install命令,格式用helm install 自定义名称 源/chart包名,比如下载nginx的chart包

helm install my-nginx stable/nginx-ingress

其他常用命令还有

helm pull stable/nginx-ingress 将chart的压缩包下载到当前目录

helm pull stable/nginx-ingress --untar 下载并解压

在修改了chart的yaml文件后可以用命令

helm lint /PATH 来检查这个文件的语法等有没有问题

helm package /PATH 然后通过这个命令将chart目录打包为tgz文件
对于tgz结尾的压缩包就可以用helm install 自定义名字 tgz路径来安装了

chart 包卸载命令把install换成uninstall即可

其他还有helm upgrade my-nginx stable/nginx-ingress 更新命令

helm rollback my-nginx回滚命令