安装Helm

说明:我用的Kubernetes版本为1.23.17,考虑到后期会升级Kubernetes版本,所以helm版本为3.11

$ k get no

NAME           STATUS   ROLES    AGE    VERSION
k8s-master01   Ready    <none>   208d   v1.23.17
k8s-master02   Ready    <none>   208d   v1.23.17
k8s-master03   Ready    <none>   208d   v1.23.17
k8s-node01     Ready    <none>   208d   v1.23.17
k8s-node02     Ready    <none>   208d   v1.23.17

下载二进制包

$ wget https://get.helm.sh/helm-v3.11.3-linux-amd64.tar.gz

解压,改名并做软链接

$ tar zxf helm-v3.11.3-linux-amd64.tar.gz  -C /opt/
$ mv /opt/linux-amd64/  /opt/helm
$ ln -s /opt/helm/helm  /bin/

验证软链接

$ ll /bin/helm

lrwxrwxrwx 1 root root 14 Oct  5 22:00 /bin/helm -> /opt/helm/helm

测试,查看helm版本

$ helm version

version.BuildInfo{Version:"v3.11.3", GitCommit:"323249351482b3bbfc9f5004f65d400aa70f9ae7", GitTreeState:"clean", GoVersion:"go1.20.3"}

Helm常用命令

添加仓库,这样会把该仓库添加到本地

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add helm_sh https://charts.helm.sh/stable
$ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

更新仓库列表到本地

$ helm repo update

查看仓库列表

$ helm repo list

在本地添加的仓库里搜索所有chart

$ helm search repo

在本地的仓库里搜索mysql

$ helm search repo mysql

还可以从公共的hub里搜索chart,目的是找到合适的repo

$ helm search hub mysql
$ helm search hub mysql  --list-repo-url  ##查看对应repo的url
$ helm search hub mysql  --max-col-width 100 #可以设置每一列的宽度,这样可以显示所有的描述信息

查看某个chart详细信息

$ helm show chart bitnami/mysql

查看某个chart values(这个values相当于是该cahrt的配置文件)

$ helm show values helm_sh/redis

安装chart (示例,安装nginx)

$ helm search repo nginx ##先搜一下
$ helm install nginx-test  bitnami/nginx   #这个nginx-test就是release名字,同时也是service和deployment/statefulset以及pod前缀

$ helm install   bitnami/nginx --generate-name #让Helm帮忙定义release name,不常用

#其中install过程中会自动生成缓存目录: ~/.cache/helm/repository/

安装完后,查看用helm安装过的chart

$ helm list -A  #-A会列出所有namespace里的release,不加-A只列default namespace里的release

卸载

$ helm uninstall nginx-test

下载一个chart包

$ helm pull bitnami/mysql #会下载一个tgz的压缩包

下载一个指定版本的chart包

$ helm pull bitnami/redis-cluster --version 7.5.0

利用本地的chart包,直接安装

$ tar zxf mysql-9.12.3.tgz
$ cd  mysql
$ helm install test-mysql . #.代表找当前目录下的values.yaml文件