概念:
helm把一系列复杂的有状态和无状态服务的部署封装起来(实际上就是对yaml文件的组织),然后你可以暴露出一些自定义参数信息供用户选择,这样部署就会变得简单很多。有点类似ansible,salt的yaml文件差不多。Helm相当于kubernetes环境下的yum包管理工具
组件:
Helm :是一个命令行下的客户端工具
Tiller: 是 Helm 的服务端,部署在 Kubernetes 集群中
Chart Helm :的软件包,类似YUM 的 RPM 包
Repoistory Helm 的软件仓库:Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository
Release 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release
helm安装
wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
我们的客户端helm已经安装完成了,但是server端的tiller没有安装哈
================================================================
Tiller安装
创建tiller相关的rbac
完成之后初始化
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.3 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
这里要指定阿里云的源,不然无法的下载会失败哈,大家懂得
说明tiller已经创建成功了
=========================================================
创建了tiller的 ServceAccount 后还没完,因为我们的 Tiller 之前已经就部署成功了,而且是没有指定 ServiceAccount 的,所以我们需要给 Tiller 打上一个 ServiceAccount 的补丁:
kubectl patch deploy --namespace kube-system tiller-deploy -p ‘{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}‘
简单的创建一个测试一下
修改nginx镜像
更改 value.yaml 文件下面的 image tag 即可,将默认的 stable 更改为 1.7.9,为了测试方便,我们把 Service 的类型也改成 NodePort
现在我们来尝试安装下这个 Chart :
是不是和salt和ansible功能差不多呢
======================================
查看release
打包chart
删除release
===========================================
Helm 有三个重要概念:
chart:包含了创建Kubernetes的一个应用实例的必要信息
config:包含了应用发布配置信息
release:是一个 chart 及其配置的一个运行实例
现在是不是好理解点了,结合操作
原文地址:https://blog.51cto.com/xiaorenwutest/2487111