helm 是一个命令行工具,用于本地开发及管理chart,chart仓库管理等。
helm 本质就是一个K8s包管理器。
图片
开发者首先创建并编辑chart的配置;
接着打包并发布至Helm的仓库(Repository);
当管理员使用helm命令安装时,相关的依赖会从仓库下载;
接着helm会根据下载的配置部署资源至k8s;
Helm 的服务端。Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互,根据chart 来生成一个 release 并管理 release 部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。
Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。
使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。
Helm chart 的仓库,Helm 客户端通过 HTTP 协议来访问存储库中 chart 的索引文件和压缩包 Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository。
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/releases
yum install -y socat
wget https://get.helm.sh/helm-v3.4.0-linux-amd64.tar.gz tar xf helm-v3.4.1-linux-amd64 ln -s /usr/local/linux-amd64/helm /usr/local/bin/helm
# 添加公用的仓库[bigdata@k8s-master module]$ helm repo add bitnami https://charts.bitnami.com/bitnami# 配置helm阿里源地址[bigdata@k8s-master module]$ 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。
helm install -f values.yaml nginx1 .
helm ls helm list
helm delete nginx1
本文链接:http://www.28at.com/showinfo-26-88720-0.html三分钟入门Helm工具
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com