认识Helm
每次我们要部署一个应用都需要写一个配置清单(维护一套yaml文件),但是每个环境又不一样。部署一套新的环境成本是真的很高。如果我们能够使用类似于yum的工具来安装我们的应用的话那就太好了。Helm就相当于kubernetes环境下的yum包管理工具。
Helm重要概念
- chart:是helm的一个程序包。包含了创建Kubernetes的一个应用实例的必要信息
- repository: charts仓库,http/https服务
- config:包含了应用发布配置信息
- release:是一个 chart 及其配置的一个运行实例
Helm组件:
Helm Client 是用户命令行工具,其主要负责如下:
- 本地 chart 开发
- 仓库管理
- 与 Tiller sever 交互
- 发送预安装的 chart
- 查询 release 信息
- 要求升级或卸载已存在的 release
Tiller Server是一个部署在Kubernetes集群内部的 server,其与 Helm client、Kubernetes API server 进行交互。Tiller server 主要负责如下:
- 监听来自 Helm client 的请求
- 通过 chart 及其配置构建一次发布
- 安装 chart 到Kubernetes集群,并跟踪随后的发布
- 通过与Kubernetes交互升级或卸载 chart
- 简单的说,client 管理 charts,而 server 管理发布 release
架构图如下:
在这需要注意一下3.x版本已经把Tiller给删除了直接调用Apisever、所以说如果您想使用3.x直接下载
tar.gz
包解压就可以使用、不需要再像2.x版本在安装一个Tiller
Helm集群兼容
Helm版本 | 支持的 Kubernetes 版本 |
---|---|
3.8.x | 1.23.x - 1.20.x |
3.7.x | 1.22.x - 1.19.x |
3.7.x | 1.21.x - 1.18.x |
3.5.x | 1.20.x - 1.17.x |
3.4.x | 1.19.x - 1.16.x |
3.3.x | 1.18.x - 1.15.x |
3.2.x | 1.18.x - 1.15.x |
3.1.x | 1.17.x - 1.14.x |
3.0.x | 1.16.x - 1.13.x |
安装Helm
配置Helm客户端访问权限
Helm在集群上安装tiller
服务以管理charts
. 由于kubeadm默认启用RBAC, 因此我们需要使用kubectl
来创建一个serviceaccount
,clusterrolebinding
才能让tiller具有部署到集群的权限。
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
安装Helm客户端
1、下载预期的版本releases
wget https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz
2、解压缩并将可执行文件helm拷贝到/usr/local/bin
目录下即可
tar zxf helm-v2.17.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/
安装Helm服务端
helm init --service-account tiller --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.17.0 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
验证Helm安装是否成功
helm version
Client: &version.Version{SemVer:“v2.17.0”, GitCommit:“a690bad98af45b015bd3da1a41f6218b1a451dbe”, GitTreeState:“clean”}
Server: &version.Version{SemVer:“v2.17.0”, GitCommit:“a690bad98af45b015bd3da1a41f6218b1a451dbe”, GitTreeState:“clean”}
注意安装完成Helm之后默认是无法Tab的如果想使用Tab键则执行以下内容
1、安装插件
yum -y install bash-completion
2、配置环境
echo 'source <(helm completion bash)' >> ~/.bashrc
3、生效
source ~/.bashrc
Helm常用命令:
release相关命令 :
- install 安装
- delete 删除
- upgrade/rollback 更新/回滚
- history 历史
- list 查看
chart相关命令
- create 创建
- fetch 下载 (打包格式)
- get 下载
- inspect 查看chart详细信息
- verify 校验
- package 打包
- search 查看哪些charts可用