Helm入门及自定义Chart
♦ 交互流程: Helm -> Tiller -> API Server
♦ Chart:一个helm程序包,包含运行一个应用的工具和资源定义
♦ Release: 在k8s集群上运行的一个chart实例
♦ Repository:用于存放和共享chart的仓库;http/https服务器
程序架构
♦ Helm 本地客户端,管理本地的chart仓库,管理chart,与tiller服务器交互,发送chart,实例安装、查询、卸载等操作
♦ Tiller 服务端,接收helm发来的chart和config,合并生成release;一般运行在k8s集群上,运行在集群之外,配置起来非常麻烦
安装helm:
# wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
# tar xf helm-v2.14.3-linux-amd64.tar.gz
# cd linux-amd64/
# sudo cp helm /usr/bin/
集群上安装tiller:
♦ RBAC example : https://github.com/helm/helm/blob/master/docs/rbac.md
创建tiller的rbac
# cat tiller-rbac.yaml
apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system
生成rbac:
# kubectl apply -f tiller-rbac.yaml
安装tiller
# helm init --service-account tiller
Helm仓库管理:
♦ helm官方可用的chart: http://hub.kubeapps.com
# helm repo update # 更新repo仓库
# helm repo list # 查看当前使用的仓库
# helm repo add xxx # 添加repo地址
# helm search xxx # 搜索应用
# helm inspect xxx # 查看chart的信息,会把chart下载到本地
# helm install xxx # 安装chart
# helm delete xxx # 删除release
# helm upgrade/rollback xxx # 升级/回滚
# helm list # 列出release
更多用法可以使用 helm --help 查询
Helm自定义Chart:
♦ https://helm.sh/docs/developing_charts/#charts
helm生成基础框架
# helm create myapp
自定义修改myapp下的配置文件
检查chart语法正确性
# helm lint myapp
打包自定义的chart
# help package myapp
打开自身作为web服务器
# helm serve
删除release并释放release name
# helm delete --purge xxx
我们可以自定义修改chart包中的value.yaml来实现参数的修改