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来实现参数的修改

 

posted @ 2019-08-13 17:25  阿拉米苏  阅读(6743)  评论(0编辑  收藏  举报