一、helm的主要功能
1、创建新的chart 2、chart打包成tgz格式 3、上传chart到chart仓库或从仓库中下载chart 4、在kubernetes集群中安装或卸载chart 5、管理用helm安装的chart的发布周期
二、helm的三个重要概念
1、chart:包含了创建kubernetes的一个应用实例的必要信息 2、config:包含了应用发布配置信息 3、release:是一个chart及其配置的一个运行实例
三、helm的常用命令
helm repo list //查看仓库 helm repo update //更新仓库 helm search mysql //搜索chart包 helm install stable/mysql --name mydb //安装chart helm list //查看release helm rollback mydb 1 //回滚到某个版本 helm delete mydb //删除release,未彻底删除,helm ls还是能查找到 helm delete mydb --purge //彻底删除release helm ls --all //查看所有release包括已删除的
helm get manifest mydb //查看release具体信息
helm install --dry-run --debug ./mychart //调试不部署chart
四、helm install -f 更新release,
4.1、自定义config.yaml
cat config.yaml mysqlUser: haimaxyUser mysqlDatabase: haimaxyDB persistence: enabled: false //禁用pvc service: type: NodePort
4.2、通过配置文件修改release
helm install -f config.yaml stable/mysql --name mydb //首次生成 helm upgrade -f config.yaml mydb stable/mysql //更新
五、helm create 创建使用chart案例
5.1、创建chart
helm create mychart
NOTES.txt //帮助文档
Chart.yaml //chart的meta信息,包括chart名称、版本、描述信息
values.yaml //针对模板的一些默认值,通过.Values.可以获得
5.2、将mychart/templates下的所有文件删除,自定义一个configmap.yaml
5.3、执行创建release
helm install ./mychart/
六、template的使用
helm的template的语法使用的是go语言的template的语法,有一些内置的参数可以直接调用,如.Release.Name
apiVersion: v1 kind:Configmap metadata: name:{{ .Release.Name }}-configmap //release.name为自带的 data: myvalue:"hello world"
创建之后生成的configmap名称为release名称
release.name只是内置对象的一个举例,还有其他的内置对象如下:
七、values值的来源
1、自带的变量值:如.Release.Name
2、chart.yaml和values.yaml里面的文件,可以通过.Values.变量或者.Chart.Name获取
3、helm install -f 获取的值,custom.yaml的值可以覆盖values.yaml里面的值
4、通过--set获取 //优先级最高
helm install --set replicase=2 .Values.replicase
八、template模板的使用
8.1、管道的使用方法,
upper将.Values.course.k8s的值变成大写
更多模板参考:https://pkg.go.dev/github.com/Masterminds/sprig
8.2、template 的if-else语句,
例:判断等于的话则加上web:true标签
如图:渲染完成后,出现了空格,这是因为{{} if eq .Values.course,python "django"}}这段默认是不输出的,所以出现了空格
处理方法:添加破折号,破折号代表删除空格
重新部署之后,发现空格消失了
8.3 with语句,定义域的范围,
with .Values.hello代表一个域,.k8s和.python代表从.Values.hello域里面取值
8.4、range进行遍历
①、例:想要遍历以下courselist内的字段
解释:红框内的点代表在.Values.courselist这个域内,title代表取出的值首字母大写
②、也可以使用key,value的形式进行遍历
输出结果如下:
8.5、变量的使用
定义变量:$releaseName
8.6、helm模板之命名模板
标签:yaml,--,chart,helm,Values,使用,HELM,release From: https://www.cnblogs.com/wuchangblog/p/16736366.html