首页 > 数据库 > 数据库开发技术 > 三分钟入门Helm工具
相关组件
helm 是一个命令行工具,用于本地开发及管理chart,chart仓库管理等
helm 本质就是一个K8s包管理器
优点
简化部署 :Helm允许使用单个命令轻松部署和管理应用程序,从而简化了整个部署过程;
高度可配置:Helm Charts提供了高度可配置的选项,可以轻松自定义和修改应用程序的部署配置;
版本控制 :Helm允许管理应用程序的多个版本,从而轻松实现版本控制和回滚;
模板化:Helm Charts使用YAML模板来定义Kubernetes对象的配置,从而简化了配置过程,并提高了可重复性和可扩展性;
应用程序库:Helm具有应用程序库的概念,可以轻松地共享和重用Helm Charts,从而简化了多个应用程序的部署和管理;
插件系统:Helm拥有一个强大的插件系统,允许您扩展和定制Helm的功能,以满足特定的需求和要求。
工作流程(v3)

开发者首先创建并编辑chart的配置;
接着打包并发布至Helm的仓库(Repository);
当管理员使用helm命令安装时,相关的依赖会从仓库下载;
接着helm会根据下载的配置部署资源至k8s;
Tiller (helm3 已经移除 helm直接和k8s交互)
Helm 的服务端。Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互,根据chart 来生成一个 release 并管理 release 部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能
chart
Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。
release
使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release
Repoistory
Helm chart 的仓库,Helm 客户端通过 HTTP 协议来访问存储库中 chart 的索引文件和压缩包 Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository
流程相关
Chart Install 过程:
1:Helm从指定的目录或者tgz文件中解析出Chart结构信息2:Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller3:Tiller根据Chart和Values生成一个Release4:Tiller将Release发送给Kubernetes用于生成Release
Chart Update过程:
1:Helm从指定的目录或者tgz文件中解析出Chart结构信息2:Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller3:Tiller生成Release并更新指定名称的Release的History4:Tiller将Release发送给Kubernetes用于更新Release
Chart Rollback过程:
1:Helm将要回滚的Release的名称传递给Tiller2:Tiller根据Release的名称查找History3:Tiller从History中获取上一个Release4:Tiller将上一个Release发送给Kubernetes用于替换当前Release
安装
github 地址
https://github.com/helm/helm/releasesHelm 客户端
k8s所有节点
yum install -y socat主节点
wget https://get.helm.sh/helm-v3.4.0-linux-amd64.tar.gztar xf helm-v3.4.1-linux-amd64ln -s /usr/local/linux-amd64/helm /usr/local/bin/helm
仓库配置
[]$ helm repo add bitnami https://charts.bitnami.com/bitnami[]$ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/chartshelm repo update helm repo llist
使用
安装一个nginx
helm create nginxtree nginx

nginx/├── charts #依赖其他包的charts文件├── Chart.yaml # 该chart的描述文件,包括ico地址,版本信息等├── templates #存放k8s模板文件目录│ ├── deployment.yaml #创建k8s资源的yaml 模板│ ├── _helpers.tpl #下划线开头的文件,可以被其他模板引用.│ ├── hpa.yaml # 配置服务资源CPU 内存│ ├── ingress.yaml # ingress 配合service域名访问的配置│ ├── NOTES.txt #说明文件,helm install之后展示给用户看的内容│ ├── service.yaml #kubernetes Serivce yaml 模板└── values.yaml #给模板文件使用的变量
values.yaml #给模板文件使用的变量
修改values.yam 里的service的type为 NodePort
安装chart任务 (注意后面有个点)
helm install -f values.yaml nginx1 .查询release
helm ls helm list删除release
helm delete nginx1END

添加博主
微信号|yfq940-
点个关注!!!
原文作者:步步运维步步坑;如有侵权,请联系管理员删除。