Helm v2简介
Helm把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,而chart被保存到chart仓库。通过chart仓库可用来存储和分享chart。Helm使发布可配置,支持发布应用配置的版本管理,简化了Kubernetes部署应用的版本控制、打包、发布、删除、更新等操作。
Helm v2由两个主要的组件构成:Helm client和Helm Server。
Helm Client是一个面向终端用户的命令行客户端工具。Helm Client的主要职责有:
- 本地chart开发
- 管理repository
- 与Helm server(Tiller)进行交互
1) 发送要安装的chart到Tiller
2)查询release的状态信息
3)升级或删除已经部署的release
Tiller是运行在Kubernetes集群中的一个与Hlem Client进行交互,并最终和Kubernetes API Server进行交互的服务端程序。Tiller的主要职责有:
- 监听从Helm Client来的请求
- 组合chart文件和配置以构建一个release
- 将chart安装到Kubernetes集群中,并跟踪接下来的release
- 与Kubernetes交互以完成Chart的升级和卸载操作
总的来说,Helm Client负责管理charts文件,而Tiller负责管理Releases。
Helm v2安装
Helm Client安装
1. 下载helm安装包:
$ wget https://get.helm.sh/helm-v2.14.2-linux-amd64.tar.gz
2. 解压到当前文件夹:
$ tar -xzvf helm-v2.14.2-linux-amd64.tar.gz
3. 拷贝helm可执行文件到/usr/local/bin/目录下
$ cp linux-amd64/helm /usr/local/bin/
4. 验证Helm命令:
$ helm help
Helm Server端Tiller安装
1. 创建rbac-config.yaml文件:
$ vim rbac-config.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*
2 创建ServiceAccount和ClusterRoleBinding
$ kubectl create -f rbac-config.yaml
3 执行以下命令安装Tiller:
$ helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.2 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts --service-account tiller --history-max 200
Helm使用体验
1 添加alibaba AppHub Repo 并验证
$ helm repo add apphub https://apphub.aliyuncs.com
2 部署guestbook
$ helm install guestbook apphub/guestbook --set service.type=NodePort
$ helm list
卸载Tiller
$ helm reset