Helm
是什么?
helm是k8s的包管理工具。可以方便的将之前打包好的yaml文件部署到k8s上。
之前部署一个应用的过程:编写yaml文件 –> 创建service对外暴露 –> 通过ingress域名访问
这种方式的缺点:只适合简单的应用。实际上我们部署微服务项目,可能有几十个服务,用这种方式就不合适了。需要维护大量的yaml文件。
使用helm的优势:
- 使用helm可以将大量yaml文件作为一个整体进行管理
- 实现yaml文件的高效复用。
- 实现应用级别的版本管理
总之,helm的作用就是让我们在k8s中部署应用更高效。
helm的核心概念:
helm
是一个命令行客户端工具。用于chart的创建、打包、发布。
chart
应用描述,实际上就是把yaml文件的打包。
release
基于chart部署的实体。就是应用的一个版本。

helm安装
从helm官网:https://helm.sh/,下载v3版本的安装包
放到服务器上,解压。将helm目录移动到/usr/bin目录下。
1
2tar -zxvf helm-v3.6.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/配置helm仓库
添加仓库:helm repo add 仓库名称 仓库地址
1
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
添加阿里云的仓库
1
2helm repo list #查看仓库
helm repo remove aliyun #删除仓库
还有一个常用的仓库:
helm repo add bitnami https://charts.bitnami.com/bitnami
更新仓库
1
helm repo update
常用Helm命令
快速搜索应用
helm search repo 名字
列出所有版本
1
helm search repo redis -l
下载指定版本
1
helm pull bitnami/redis-cluster --version 8.2.5
要下载最新版本就不用加–version
根据搜索结果进行安装
helm install 安装之后的名称 搜索到的应用名称
1
helm install xx名字 .
自定义变量
1
helm install xx名字 . -f values.yaml
查看安装状态
1
helm list -n redis
helm status 安装之后的名称
删除
1
helm uninstall my-redis-cluster -n redis
使用helm部署redis
1 | # kubectl create ns redis |
自己创建chart,完成部署
使用命令创建chart
1
helm create 自定义chart的名字
目录作用:
- charts:
- Chart.yaml: 配置chart的基本信息,版本等。
- templates:自己写的yaml文件放在这
- valus.yaml: 定义全局变量
在template中创建自己的yaml文件
安装自己的chart
1
helm install 应用名字 自己的chart名字
更新自己的chart
1
helm upgrade 应用名字 自己的chart名字
使用helm进行yaml文件复用
通过传递参数,动态渲染yaml模板。做到yaml的高效复用。
在values.yaml中定义变量和值
在具体的yaml文件中,获取定义的变量值
表达式:
{{.Values.变量名称 }}执行
1
helm install 应用名字 自己的chart名字