helm是k8s下的资源包管理工具,将资源对象配置文件组织成chart包。helm3通过kubeconfig文件与k8s集群进行通信
chart.yml:介绍包的基本信息(只有name和version是必填项)
apiVersion: v2
appVersion: 0.2.0
description: A Helm chart to deploy fluid in Kubernetes
name: fluid
type: application
version: 0.2.0
templates 目录:各类Kubernetes资源的配置模板
Helm采用了Go语言的模板,会将values.yaml中的参数值注入到模板中生成标准的YAML配置文件,引用格式为{{ .Values.fuse.hostPath }},还可以基于判断进行选择引用:
{{- if .Values.fuse.nodeSelector }}
{{ toYaml .Values.fuse.nodeSelector | trim | indent 8 }}
{{- else if .Values.nodeSelector }}
{{ toYaml .Values.nodeSelector | trim | indent 8 }}
{{- end }}
以下值是预定义的,可用于每个模板,并且不能被覆盖:
Release.Name:release的名称(不是chart的)
Release.Time:chart版本上次更新的时间。这将匹配Last Released发布对象上的时间。
Release.Namespace:chart release发布的namespace。
Release.Service:处理release的服务。通常是Tiller。
Release.IsUpgrade:如果当前操作是升级或回滚,则设置为true。
Release.IsInstall:如果当前操作是安装,则设置为true。
Release.Revision:版本号。它从1开始,并随着每个helm upgrade增加。
安装helm后可以添加仓库
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/ $ helm repo add xxx https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
移除:
$ helm repo remove stable
列举:
$ helm repo list
更新仓库:
$ helm repo update
搜索可以安装的chart包:
$ helm search repo stable NAME CHART VERSION APP VERSION DESCRIPTION stable/acs-engine-autoscaler 2.2.2 2.1.1 DEPRECATED Scales worker nodes within agent pools stable/aerospike 0.2.8 v4.5.0.5 A Helm chart for Aerospike in Kubernetes stable/airflow 4.1.0 1.10.4 Airflow is a platform to programmatically autho... stable/ambassador 4.1.0 0.81.0 A Helm chart for Datawire Ambassador # ... and many more
只拉取不安装:
$ helm pull
列出已安装的chart:
$ helm list
安装:
$ helm install fluid fluid.tgz $ helm upgrade fluid fluid.tgz $ helm uninstall fluid
安装时,使用的安装包可以是tgz包,也可以是已经解压缩的文件夹
Chart仓库:由index.yaml文件和任意个打包的Chart的tgz文件组成的HTTP服务器。
往仓库加镜像时,需要先把chart包复制到仓库目录下,再通过如下命令重新生成index.yalm文件:
$ helm repo index /Users/qiulingwei/Projects/chartreg --url 127.0.0.1:8000